Qt界面设计

sdhwo 2013-07-09 05:23:18
我在程序中用代码实现了动态生成控件到界面上去,但是现在有一个问题,因为我生成的都是QCheck类的,但是现在要使用qss设计风格,我在qss里面是这样写的:
QCheckBox:!checked{
border-image: url(:/file/123.jpg);
color: rgb(69,113,156);
text-align:center;
padding:1px 10px 3px 25px;
font-weight:bold;
font-size:18px;
border-color:black;
border-width:1px;
border-style:outset;
border-right:0px;
border-bottom:0px;}


QCheckBox:checked{
background:#82A5C8;
color: rgb(69,113,156);
padding:1px 10px 3px 25px;
font-weight:bold;
font-size:18px;
border-color:black;
border-width:1px;
border-style:inset;
border-right:1px;
border-bottom:1px;
}

QCheckBox::indicator{
border-style:none;}
但是我有的界面上的控件图片要求是不一样的,如上我这样设计的话,所有的QCheck类的控件都是同样的风格了,这个问题我不会解决,请问如何的解决。比较的急
...全文
624 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xcyl 2013-07-10
  • 打赏
  • 举报
回复

看看这段
xcyl 2013-07-10
  • 打赏
  • 举报
回复
引用 11 楼 sdhwo 的回复:
QCheckBox* checkBox;但是我所有的控件都是这样定义的,然后动态生成的呢,这样好像不能用你所说的方法吧,你的方法好像是要给每个控件起个名字呢,我不是这样做的呢,我都是统一他们为QCheckBox额,所以说才有我所说的弊端。
晕死,这种方法是把所有你需要设置的checkBox都设置一种属性为true 那段QSS的意思是所有这种属性为true的都设置成这样的样式表 //需要设置的checkbox添加一种属性为EspecialCheckBox,并设置为true,不需要的不添加 yourCheckBox->setProperty("EspecialCheckBox", true); //将所有拥有这种属性并为true的,都应用这种样式表 setStyleSheet("*[EspecialCheckBox="true"] { /*样式表内容*/ }"); 懂了没?
sdhwo 2013-07-10
  • 打赏
  • 举报
回复
QCheckBox* checkBox;但是我所有的控件都是这样定义的,然后动态生成的呢,这样好像不能用你所说的方法吧,你的方法好像是要给每个控件起个名字呢,我不是这样做的呢,我都是统一他们为QCheckBox额,所以说才有我所说的弊端。
xcyl 2013-07-10
  • 打赏
  • 举报
回复
引用 9 楼 sdhwo 的回复:
请问这个参数是什么意思呢EspecialCheckBox?
这是自己起的名字,随便你起什么名字。。。
sdhwo 2013-07-10
  • 打赏
  • 举报
回复
请问这个参数是什么意思呢EspecialCheckBox?
xcyl 2013-07-10
  • 打赏
  • 举报
回复
引用 7 楼 cai6811376 的回复:
[quote=引用 5 楼 sdhwo 的回复:] 楼上的现在所有的控件都是QCheckBox的,被定死了,无法在继承新的了,如果想要继承新的话代码就要大改的呢,如果改动的话,我怕有些功能就没办法实现了额

yourCheckBox->setProperty("EspecialCheckBox", true);
setStyleSheet("*[EspecialCheckBox="true"] { /*样式表内容*/ }");
[/quote] 把你需要特别设置这样样式表的都setProperty("EspecialCheckBox", true);
xcyl 2013-07-10
  • 打赏
  • 举报
回复
引用 5 楼 sdhwo 的回复:
楼上的现在所有的控件都是QCheckBox的,被定死了,无法在继承新的了,如果想要继承新的话代码就要大改的呢,如果改动的话,我怕有些功能就没办法实现了额

yourCheckBox->setProperty("EspecialCheckBox", true);
setStyleSheet("*[EspecialCheckBox="true"] { /*样式表内容*/ }");
sdhwo 2013-07-10
  • 打赏
  • 举报
回复
请问能帮我解决吗
引用 4 楼 cai6811376 的回复:
继承一个QCheckBox,比如MyCheckBox 你需要指定这个样式表的都用MyCheckBox定义 然后

MyCheckBox:!checked{
                      border-image: url(:/file/123.jpg);
                       color: rgb(69,113,156);
                       text-align:center;
                       padding:1px  10px  3px   25px;
                       font-weight:bold;
                        font-size:18px;
                       border-color:black;
                       border-width:1px;
                       border-style:outset;
                       border-right:0px;
                       border-bottom:0px;
}
sdhwo 2013-07-10
  • 打赏
  • 举报
回复
楼上的现在所有的控件都是QCheckBox的,被定死了,无法在继承新的了,如果想要继承新的话代码就要大改的呢,如果改动的话,我怕有些功能就没办法实现了额
xcyl 2013-07-10
  • 打赏
  • 举报
回复
继承一个QCheckBox,比如MyCheckBox 你需要指定这个样式表的都用MyCheckBox定义 然后

MyCheckBox:!checked{
                      border-image: url(:/file/123.jpg);
                       color: rgb(69,113,156);
                       text-align:center;
                       padding:1px  10px  3px   25px;
                       font-weight:bold;
                        font-size:18px;
                       border-color:black;
                       border-width:1px;
                       border-style:outset;
                       border-right:0px;
                       border-bottom:0px;
}
Inhibitory 2013-07-09
  • 打赏
  • 举报
回复
仔细看文档,有很多种不同的选择器
zhxianbin 2013-07-09
  • 打赏
  • 举报
回复
If we want the property to apply only to one specific QLineEdit, we can give it a name using QObject::setObjectName() and use an ID Selector to refer to it: myDialog->setStyleSheet("QLineEdit#nameEdit { background-color: yellow }");
zhxianbin 2013-07-09
  • 打赏
  • 举报
回复
可以指定某一个控件的风格。 http://qt-project.org/doc/qt-4.8/stylesheet-examples.html

16,815

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧