首页| 论坛| 消息

标题:讨论 界面的解决方案,有关于stylesheet!
作者:radium_sql
日期:2008-09-03 14:14
内容:

比如说我现在有一个大的Dialog,然后设置其stylesheet,
如果我是这样设的:
QDialog d;
d.setStyleSheet("background-p_w_picpath: url(2.bmp);");
那么后续在这个Dialog上的大部分控件一加上来,比如像Label,就会直接应用这个Stylesheet,界面乱乱的。
如果我如下这样设的:
QDialog d;
d.setStyleSheet("QDialog {background-p_w_picpath: url(2.bmp);}");
后续加在这个Dialog上的控件就不会应用这个Stylesheet
但这样好像只能给某一类的控件加上stylesheet,如果有多个QDialog,我这样一指定,则所有的QDialog都变成同一个stylesheet,如果我只想给当中的某个QDialog设置stylesheet,就没办法了。
当然我也在assistant上看到了可以指定应用到一个对像的,但使用起来好像没有效果。
有兴趣的网友可以一起讨论一下,试验一下。

我的问题贴子
http://www.qtcn.org/bbs/read.php?tid=12491
http://www.qtcn.org/bbs/read.php?tid=12478


#1 [radium_sql 09-03 14:17]
这是QT 帮助文档里自带的说将stylesheet应用到具体对象上的方法,但似乎不起作用。
ID Selector
QPushButton#okButton
Matches all QPushButton instances whose object name is okButton.
#2 [radium_sql 09-03 14:18]
自己顶一下。
#3 [suraid 09-03 15:05]
怎么会不起作用呢?我一直都这样用的啊,用的很爽的说~
QDialog myDialog;
如果要对这个对象单独设stylesheet的话一定要设置它的objectName
myDialog.setObjectName("mydialog");
然后QDialog#mydialog {background-image: url(2.bmp);就可以了
#4 [radium_sql 09-03 15:32]
太感谢了,太感谢了,问题解决了,原来我没用setObjectName这个方法,我一直以为那个变量名就是他的object name,太感谢了。原来还要这样设一下的。
#5 [liudianwu 01-25 14:42]
恍然大悟!

<< 1 2 >> (1/2)

回复 发表
主题 版块