28

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

4

8 に答える 8

45

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

使用法:

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

「元に戻す編集」 - アイコンの名前「タイプ」/「機能」はここにあります

これは X11 システムで動作します。MacOSX と Windows については、QIcon のドキュメント QIcon.fromThemeを確認してください。

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

static PySide.QtGui.QIcon. fromTheme ( name[, 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() の 1 つにバンドルし、適切なPySide.QtGui.QIcon.themeName( )を設定する必要があります。

こちらもご覧ください

于 2012-09-05T19:51:57.587 に答える
13

デフォルト スタイルの標準 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

于 2014-06-10T21:27:08.733 に答える
6

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

ここここを見てください

関連する質問

于 2012-07-25T05:39:28.677 に答える
3

標準アイコンの画像がなかなか見つからないので、参考までに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 ドキュメントの standardIcons 列挙テーブルに写真があればいいのですが...

于 2015-10-03T21:59:40.517 に答える
0

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

于 2012-07-27T17:46:24.950 に答える