QSS或setStyleSheet如何不影响子窗口风格?

diligent60 2011-10-17 03:44:21
对QWidget的用setStyleSheet,如何使其子窗口widget都保持默认状态,仅仅是父窗口有背景色或背景图片?


class A : public QWidget
{
QLabel m_labelTopic;
QLabel m_labelRight;
}

A::A()
{
this->setStyleSheet("QWidget:!hover {background-image:"aaa.png"});
}

如何使其stylesheet不影响m_labelTopic和 m_labelRight?
我使用了QSS的ID选择器:
setStyleSheet("QWidget#myA:!hover {background-image:"aaa.png"});

A myWidget;
myWidget.setObjectName("myA");但没有作用。
恳请各位指点。
...全文
1528 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
鹏鹏123 2012-02-23
  • 打赏
  • 举报
回复
谢谢了
困扰了蛮久时间的一个问题......
diligent60 2011-10-24
  • 打赏
  • 举报
回复
我已经改用setPalette和event配合来实现鼠标进入退出的背景图片更换了。谢谢各位。
刀刀亮 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 inhibitory 的回复:]

使用类选择器
.QWidget {
background: gray;
}

注意在QWidget前面那个小点,即是使用类选择器:这个style sheet只影响名为QWidget的对象,不会影响他的子组件。
[/Quote]
学习了……
Inhibitory 2011-10-20
  • 打赏
  • 举报
回复
使用类选择器
.QWidget {
background: gray;
}

注意在QWidget前面那个小点,即是使用类选择器:这个style sheet只影响名为QWidget的对象,不会影响他的子组件。
念茜 2011-10-19
  • 打赏
  • 举报
回复
想不影响上面的控件,widget就不要使用setStyleSheet


QPalette pal = palette();
pal.setBrush(backgroundRole(), QBrush(QPixmap("xxx.png")));
setPalette(pal);
lei_yuming 2011-10-19
  • 打赏
  • 举报
回复
把myA换成myWidget试试看

16,820

社区成员

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

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