1

いくつかのツールボタンを表示する必要がある GUI に取り組んでいます。スタイルを設定するために外部 CSS ファイルを使用しています。簡単にするために、CSS クラスを (setProperty で) 定義し、CSS ファイルで使用して、クラスに応じてボタンの外観を変更しています。

私のPythonコードは次のようになります:

...
bt = QtGui.QToolButton(parent.qtObject)
bt . setToolButtonStyle ( QtCore.Qt.ToolButtonTextUnderIcon )
bt.setProperty('class','StaticButton')
bt.setStyleSheet(css_content)
...

私のCSSは次のようなものです:

QToolButton.StaticButton
{
    border: 2px solid #4f4f51;
    border-radius: 5px;
    font-size: 10px;
    background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #e4e4c8, stop: 1 #b9b9a9);
}

問題は、ボタンの背景のみが影響を受けることです。QToolButton[class=StaticButton]CSSファイルまたは.StaticButtonのみなど、多くの代替手段を試しました。どちらの選択肢も保存動作につながりました。ボタンにCSSを直接​​適用する場合:

bt.setStyleSheet("border: 2px solid #4f4f51;border-radius: 5px;font-size: 10px;background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #e4e4c8, stop: 1 #b9b9a9);")

すべて完璧に動作しますが、Python コードに CSS を入れたくありません。

誰かが私のコードで何が問題なのか教えてもらえますか? background プロパティが使用されているのに、他のプロパティが使用されていない理由がわかりません。

注: インポートされた CSS を確認しましたが、ファイルは完全に有効です。私はいくつかのテストを行いましたが、毎回 background プロパティのみが機能します...何が起こっていますか?

ありがとう

4

1 に答える 1

1

リファレンスシートによると設定プロパティは動作するはずですが、面倒なところがあります。ps: 私はこの問題に約 1 か月苦しんだ後、敗北を認めました。

私の解決策は回避しようとしています。少しハッキー

bt = QToolButton(.)
bt.setObjectName("btStaticxxx") # xxx to any string

CSS;

QToolButton#btStatic*   //collapses all ToolButton instances that objectname startswith btStatic
{
.
.
}
于 2013-05-14T12:47:42.137 に答える