사용자 지정 컨트롤에서 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으로 정의되어 있으며, 버튼의 이름으로 QSS에서 버튼의 속성을 설정하면 효과가 없습니다. QSS는이 제어에 대해 알지 못하기 때문입니다. 이 컨트롤이 있음을 QSS에 알리려면 setObjectName ()으로 지정해야합니다.

button->setObjectName("minBtn");

그런 다음 QSS에서 이름 minBtn을 사용하여 적용 할 설정 단추 속성을 지정합니다.

추천

출처blog.csdn.net/VOlsenBerg/article/details/112979276