カスタムコントロールでは、QSSを使用してQPushButonコントロールオブジェクトのプロパティを正確に設定しても効果がありません。

QSSにも同様の使用法があります。

QPushButton#minBtn {
border-radius:2px;
border-image:url(:/images/btn_mini_normal.png);
}

#minBtnは、objectNameがminBtnであるボタンコントロールを正確に指定するプロパティであり、他のボタンコントロールには影響しません。

ただし、minBtnは、クラスで定義したQPushButtonオブジェクトの名前ではなく、objectName()インターフェイスを使用してQSSによって指定された名前であることに注意してください。例:

class XWidget : public QWidget {
  Q_OBJECT
 public:
  explicit XWidget(QWidget *parent = nullptr);
private:
   QPushButton *button;
 };

このオブジェクトでは、QPushButtonのbuttonという名前の変数が定義されています。ボタンのプロパティがbuttonという名前でQSSに設定されている場合、ボタンは有効になりません。QSSはこのコントロールについてさえ知らないからです。このコントロールがあることをQSSに通知するには、setObjectName()で指定する必要があります。

button->setObjectName("minBtn");

次に、QSSでminBtnという名前を使用して、有効にする設定ボタンのプロパティを指定します。

おすすめ

転載: blog.csdn.net/VOlsenBerg/article/details/112979276