Qt样式表设置

前言

最近在用Qt写课程设计,把平时遇到的问题在这里记录一下

相关问题及解决

遇到的问题以及解决:

  1. 使用QMenu以及QInputDialog时背景为黑色,看不见字体:
    解决方法:检查QMenu或者QInputDialog继承的父部件或者祖先部件中是否有设置过styleSheet为transparent,原因是子部件会继承父部件及祖先部件的transparent属性,背景显示为黑色,当然也可以在子部件中设置背景为白色;

  2. 使用ID选择器QPushButton#buttonName时设置“不起作用”
    buttonName在使用前需要调用setObjectName()显示指定类型名,不能直接使用实例名

Qt样式表设置
  • Qt设置样式表可以用qss文件,也可以使用setStyleSheet,前期样式比较简单,所有下面的内容都是使用setStyleSheet的相关内容
  • Qt可以在父部件与子部件都使用setStyleSheet,最终生成样式表的原则是:子部件样式表优先,特殊选择器优先(下面会介绍选择器)
  • 子部件会继承父部件的样式表,父部件继承祖先的样式表,以此类推、、
  • Qt样式表选择器
  • 通用选择器 *,匹配所有部件
  • 类型选择器QPushButton,匹配所有QPushButton实例及其子类
  • 属性选择器QPushButton[flat = “false”],匹配QPushButton中属性falg为false的实例
  • 类选择器.QPushButton,注意前面有个点号,匹配所有QPushButton实例但不包括其子类
  • ID选择器QPushButton#buttonName,匹配所有QPushButton中以buttonName为对象名的实例
  • 后代选择器 QDialog QPushButton ,匹配所有QPushButton实例,他们必须是QDialog的子孙部件
  • 孩子选择器 QDialog>QPushButton,匹配所有QPushButton实例,他们必须是QDialog的直接子部件

猜你喜欢

转载自blog.csdn.net/adventural/article/details/90261060