2
我使用的是最新版本的Qt,並注意到在Windows上,菜單以非常古老的方式呈現(類似於他們在其他跨平臺應用程序(例如Firefox)上的顯示方式)。我希望菜單渲染(顏色,漸變等)呈現更現代的外觀。是否可以皮膚或修改菜單在Qt中呈現的方式?是否可以更改Qt中頂級菜單的外觀?
我使用的是最新版本的Qt,並注意到在Windows上,菜單以非常古老的方式呈現(類似於他們在其他跨平臺應用程序(例如Firefox)上的顯示方式)。我希望菜單渲染(顏色,漸變等)呈現更現代的外觀。是否可以皮膚或修改菜單在Qt中呈現的方式?是否可以更改Qt中頂級菜單的外觀?
我不知道你使用的Qt的或Windows的版本,但我的Windows 7電腦使用Qt 4.8.1安裝上,默認的菜單看起來正常,像任何其他Windows 7菜單。
要更改菜單的外觀,你有兩大(簡單)選項:
使用QStyle將其更改爲不同的「原生」的外觀(使用QApplication::setStyle()
或QWidget::setStyle()
)。例如,你可以使它看起來像這樣的Windows XP中的菜單:
fileMenu->setStyle(new QWindowsXPStyle);
使用Qt style sheets定製你怎麼想的菜單呈現。例如:
fileMenu->setStyleSheet("background-color: red;");
好,但誰是負責刪除new'd風格的實例?那是在應用程序關閉時執行該操作的fileMenu嗎?或者你的答案是否會造成內存泄漏? – 2012-05-01 12:35:37
@ 987S我不能絕對肯定,但是這是它是如何在兩者的文檔和Qt的書我讀過完成。所以,我99%肯定菜單將採取風格的所有權,並在適當的時候將其刪除。 – Anthony 2012-05-01 14:25:02