8

私はかなり奇妙な問題を抱えています。私はそれを持ってQWidgetQHBoxLayoutます。レイアウトには 2 つの が含まれていますQLabels。このウィジェット全体に境界線を設定したい。スタイルシートを使用しています:

 "padding: 10px;"
 "border-style: solid;"
 "border-width: 3px;"
 "border-radius: 7px;"

しかし、ここに問題があります。このスタイルは両方の QLabels に適用され、レイアウトが完全に壊れてしまいます。ラベルではなく、境界線を持つ外側のウィンドウのみが必要です。何か案は?

前もって感謝します!

4

2 に答える 2

9

使用する

.QWidget
{
    // your css rules
}

.QWidgetは、正確にQWidgetであり、QWidgetを継承していないクラスにのみCSSを適用します。

オブジェクト名セレクターを使用することもできます

#YourWidgetObjectName
{
    // your css rules
}

どちらのソリューションも、他のウィジェット(内部のウィジェットも含む)にルールを適用しません

于 2011-10-25T09:55:13.863 に答える
7

スタイルシートは再帰的に機能します。スタイル シートをアプリケーションに適用すると、アプリケーション内のすべてのウィジェットに適用されます。スタイルシートを適用したいものを指定する必要があるかもしれませんか?

ロジックはこのようなものでなければなりません..

QHBoxLayout#layoutbox {
     background-color: red;
     border-style: outset;
     border-width: 2px;
     border-radius: 10px;
     border-color: beige;
     font: bold 14px;
     min-width: 10em;
     padding: 6px;
 }
于 2011-10-25T09:42:02.230 に答える