如何给应用程序中的某一个窗口部件单独设置样式表?一个小细节,要设置它的objectName。

这是一个网友和我交流时提到的问题,研究了一下,是个比较基础的问题,但是在手写代码的情况下容易忽略。

 

问:如何给应用程序中的某一个窗口部件单独设置样式表,我怎么设置都没有效果?这是QT 帮助文档里自带的说将stylesheet应用到具体对象上的方法,但似乎不起作用。

 

 

 ID Selector
     QPushButton#okButton
     Matches all QPushButton instances whose object name is okButton. 

 

 

答:我还真没有注意这个,仔细试了一下。发现其实解答就含在了你提供的这段说明中。即:如果要对这个窗口中的某一个对象单独设置stylesheet的话,一定要设置它的objectName属性。当然这是指用代码写的情况,如果使用Qt Designer的话,则一般有默认的objectName,则就会起作用的。不过,使用Qt Designer一般很难达到理想的样式表。

 

具体示例如下:

 

 

 

 

 

 

 

 QDialog myDialog;
     myDialog.setObjectName("mydialog");//如果要对这个对象单独设stylesheet的话一定要设置它的objectName

然后再像下面这样写就可以了:

     QDialog#mydialog {background-image: url(2.bmp);

你可能感兴趣的:(object,url,文档,qt,stylesheet)