2012-07-25 14 views
21

私はPySideのチュートリアルを読んでいて、私は思っていました。すべてのことについて私自身のアイコンを見つける必要があるのですか、いくつかの組み込みアイコンを使用する方法があります。そうすれば、私の小さなguiを別のデスクトップ環境で動かすためには、新しいアイコンセットを見つける必要はありません。私は、これは任意の結合に固有のものではないと思うPyQt/PySideにデフォルトのアイコンがありますか?

答えて

32

必要なものは、Pyside QIcon.fromTheme関数です。 基本的には、現在のシステムテーマから必要なアイコンを持つ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") 

またはOテーマのアイコンをサポートしていないプラットフォームのための保証フォールバックを提供し、あなたは二番目の引数を使用することができます

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

注デフォルトで

を、唯一のX11は、テーマのアイコンをサポートしています。 MacおよびWindowsでテーマのアイコンを使用するには、準拠テーマをPySide.QtGui.QIcon.themeSearchPaths()のいずれかにバンドルし、適切なPySide.QtGui.QIcon.themeName()を設定する必要があります。

は標準釜の一部にアクセスするための別の方法があります

+0

D'OH!私は最終的に標準的なQtアイコンのリストを見つけることにとても興奮していましたが、2番目のリンクは今や壊れているようです。どんな更新? –

+1

@MichaelScheper私が答えを更新したという通知を受け取らなかった場合、答えは関連するテキストと共に新しいリンクで更新されました。 –

0

を取るqtの一般的なドキュメント

を確認することができ、ウィンドウアイコンはですデフォルトのQtロゴ。私はあなたがGUI内のもののためにあなた自身のアイコンを見つける必要があると思います。

5

も参照してください。デフォルトのスタイルで標準のpixmapを使って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'は、' self'が上記のいずれでもない場合、 'QtWidgets.QApplication'(Qt5)または' QtGui.QApplication'(Qt4)を使用することを意味します。 – user136036

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列挙テーブルに写真を持っていた場合、それはいいだろう...