2011-11-16 38 views
2

我創建新的應用程序並使用close,最大化和最小化按鈕來移除標題欄(只需將windowFlags設置爲Qt::CustomizeWindowHint)。我創建了我自己的按鈕。現在我必須搜索刪除按鈕的圖標,但我找不到它們(關閉,最小化,最大化)。Qt C++邊框圖標

問題:我可以使用Windows 7圖標嗎?它不違反許可證嗎?

回答

0

將按鈕分配爲位圖圖像或嵌入到應用程序中很可能違反了Windows的EULA。

但是,如果您的應用在Windows上運行,則不需要分發它們。只要找到關閉,最小化和最大化按鈕存儲在Windows 7(可能是系統文件夾中的某個DLL)的位置,然後當您運行應用程序時,直接使用這些圖標(我相信QIcon可以加載它們)。這樣,就沒有侵犯版權的行爲。

+0

謝謝,我會嘗試 – Outsider

4

你可以使用Qt的將QStyle來獲得Qt使用繪製自己的標題欄和這樣的圖標:

QStyle* style = QApplication::style(); 
QIcon icon = style->standardIcon(QStyle::SP_TitleBarCloseButton); 

看一看在QStyle::StandartPixmap enum爲Qt的可用標準的圖標的列表。

+0

謝謝,它的工作原理。但是這個圖標看起來像Windows XP風格。我可以獲得Windows 7圖標嗎? – Outsider

+0

您可以使用QStyleFactory :: keys()來枚舉可用的樣式。我很確定只有在Windows 7上運行應用程序時,才能使用Windows 7樣式。 – JediLlama

+0

結果QStyleFactory的::鍵()是: 的Windows, 的WindowsXP,WindowsVista的 , 主題, CDE, Plastique,該 Cleanlooks。 我爲這種風格類型的每一種設置應用風格,風格發生了變化,但圖標(關閉按鈕)看起來像默認的Windows7按鈕(顏色不是紅色,沒有美麗的燈光)。我的操作系統是Windows 7,具有默認主題。 – Outsider