• 1296阅读
  • 3回复

[提问]自绘的控件如何从全局样式表中获取背景色和文字颜色? [复制链接]

上一主题 下一主题
离线shineryu
 

只看楼主 倒序阅读 楼主  发表于: 2021-10-15
问题背景:
我写了一个Widget程序,通过QSS文件设置程序的界面样式。
界面上有个控件是自定义的,自己写的paintEvent函数。
我希望根据程序的样式风格绘制我的自定义控件,比方说,我想让我的控件的背景色与样式表中QWidget的background-color一致,控件上的文字颜色与QWidget的color一致。
但是我实在查找不出有什么好的办法能从全局样式表中获取这些信息。
当然,我可以把样式表读入QString,然后解析出那些字段来,但是这也太笨了吧?
希望有大神能帮帮我,万分感谢!
离线liudianwu

只看该作者 1楼 发表于: 2021-10-16
如果你再设置qss的同时设置了palette,那可以从palette读取,否则,貌似只能把样式表读入QString,然后解析出那些字段。
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线shineryu

只看该作者 2楼 发表于: 2021-10-20
回 liudianwu 的帖子
liudianwu:如果你再设置qss的同时设置了palette,那可以从palette读取,否则,貌似只能把样式表读入QString,然后解析出那些字段。 (2021-10-16 15:26) 

谢谢您的解答,回去 试一下!
离线nigoole

只看该作者 3楼 发表于: 2021-10-22
还可以用自定义属性定义样式表 比如

#label {
    qproperty-mytext: "hello";
}
然后你控件里面绑定属性
Q_PROPERTY(QString mytext WRITE setMytext READ mytext)

有句话说得好:好好学习,天天向上。加油~~!有上船的朋友联系企鹅393320854
快速回复
限100 字节
 
上一个 下一个