web-dev-qa-db-ja.com

PyQt / PySideにデフォルトのアイコンはありますか?

私はPySideのチュートリアルを読んでいて、考えていました。すべてのものに独自のアイコンを見つける必要があるのですか、それとも組み込みのアイコンを使用する方法があるのですか?そうすれば、小さなGUIを別のデスクトップ環境で実行したいのであれば、まったく新しいアイコンセットを見つける必要はありません。

25
user1155844

必要なのはPyside QIcon.fromTheme関数です。基本的に、現在のシステムテーマから必要なアイコンでQIconオブジェクトを作成します。

使用法:

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

"元に戻す編集"-アイコンの名前 "タイプ"/"関数"が見つかります ここ

これはX11システムで動作し、MacOSXおよびWindowsの場合はQIconのドキュメントを確認してください QIcon.fromTheme

編集前回リンク切れだったので、これをウェブサイトから挿入します。

staticPySide.QtGui.QIcon。fromThemename [、fallback = QIcon()]

パラメータ:

戻り値のタイプ:

PySide.QtGui.QIcon

現在のアイコンテーマの名前に対応する PySide.QtGui.QIcon を返します。現在のテーマにそのようなアイコンが見つからない場合は、代わりにフォールバックが返されます。

Freedesktopアイコン仕様と命名仕様の最新バージョンは、次の場所で入手できます。

現在のアイコンテーマからアイコンを取得するには:

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

または、テーマアイコンをサポートしていないプラットフォームにフォールバックを保証したい場合は、2番目の引数を使用できます。

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

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

も参照してください

38
Paweł Jarosz

デフォルトスタイルの標準ピクスマップを使用して、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

10
Nimar

これはバインディングに固有のものではないと思います。qtの一般的なドキュメントを確認できます

ご覧ください ここここ

関連質問

6
tovmeod

PyQt5、再生アイコン付きのプッシュボタンを作成する簡単な例を次に示します。

play_button = QtGui.QPushButton('Play video')
play_button.setIcon(QtGui.QApplication.style().standardIcon(QtGui.QStyle.SP_MediaPlay))

Qt5のドキュメントでは、可能なSP( "Standard Pixmap")アイコンのリストを提供しています。enum QStyle::StandardPixmapここ: http://doc.qt.io/qt-5/qstyle.html

3
eqzx

標準アイコンの画像を見つけるのに苦労しているので、今後の参考のために 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 enumテーブルに画像を持っているといいですね...

2
kitsu.eb

標準アイコン を使用した別のPyQt5の例==( eqzx の答えは私には機能しませんでした):

 from PyQt5.QtWidgets import QApplication, QStyle
 from PyQt5.QtGui import QIcon

 desktop_icon = QIcon(QApplication.style().standardIcon(QStyle.SP_DesktopIcon)
1
pediatrictactic

pyQtでは、ウィンドウアイコンはデフォルトでQtロゴです。 GUI内にあるものについて、独自のアイコンを見つける必要があると思います。

0
user1557602