2012-07-25 79 views
21

我正在閱讀PySide上的一個教程,我在想,我是否需要爲每個事物找到自己的圖標,或者是否有一些方法來使用一些內置的圖標。這樣我就不需要找到一組全新的圖標,如果我想讓我的小鬼在另一個桌面環境中運行。PyQt/PySide中是否有默認圖標?

回答

32

你需要的是Pyside QIcon.fromTheme函數。 Basicaly它創建QIcon對象與當前系統主題需要的圖標。

用法:

undoicon = QIcon.fromTheme("edit-undo")

「編輯撤消」 - 圖標 「類型」/ 「功能」,可以發現here

這適用於X11系統,MacOSX的和Windows檢查的名稱QIcon文檔 QIcon.fromTheme

編輯從網站插入這一點,因爲它最後一次是一個斷開的鏈接。

static PySide.QtGui.QIcon。 fromTheme名稱[,回退= QIcon()]

參數:

返回類型:

PySide.QtGui.QIcon

返回PySide.QtGui.QIcon對應於當前的圖標主題來命名。如果在當前主題中找不到這樣的圖標 則會返回回退。

Freedesktop的圖標規範和命名規範的最新版本可以在這裏獲得:

要從當前的圖標主題取一個圖標

undoicon = QIcon.fromTheme("edit-undo") 

或者如果你想要t o爲不支持主題圖標平臺,保證回退,則可以使用第二個參數:

undoicon = QIcon.fromTheme("edit-undo", QIcon(":/undo.png")) 

注意

默認情況下,只有X11將支持主題的圖標。爲了在Mac和Windows上使用主題圖標,您必須在PySide.QtGui.QIcon.themeSearchPaths()之一中捆綁符合主題的主題,並設置合適的PySide.QtGui.QIcon.themeName()

+0

D'oh!我很興奮終於找到一個標準的Qt圖標列表,但第二個鏈接現在似乎被打破了。任何更新? – 2016-05-13 17:03:22

+1

@MichaelScheper如果您沒有收到我更新答案的通知,則答案已隨新鏈接及相關文本一起更新。 – 2016-06-17 14:55:48

0
在PyQt的

,窗口圖標是默認的Qt標誌。我想你必須在gui中找到你自己的圖標。

5

看到有另一種方式來訪問某些標準BUIL的在PyQt/PySide中使用默認樣式中的標準像素圖標。例如,下面打開文件創建一個圖標:

self.style().standardIcon(QtGui.QStyle.SP_DialogOpenButton) 

對於標準的像素圖的完整列表,請參閱:

http://srinikom.github.io/pyside-docs/PySide/QtGui/QStyle.html#PySide.QtGui.PySide.QtGui.QStyle.StandardPixmap

+0

'self'指的是'QtWidgets.QApplication'(在Qt5中)或'QtGui.QApplication'(在Qt4中),如果你想使用它'self'不是上述之一。 – user136036 2018-02-22 00:30:51

2

我一直很難找到標準圖標圖像,所以以供將來參考:http://nukesaq88.hatenablog.com/entry/2013/04/12/005525

和代碼我使用(PyQt4的,Pyside大概類似):

# In method of QMainWindow subclass 
    stdicon = self.style().standardIcon 
    style = QtGui.QStyle 
    reload_foo = QtGui.QAction(stdicon(style.SP_BrowserReload), '&Reload', self) 

如果(顯然是自動生成的)Qt docs在standardIcons枚舉表中有圖片會很好...