实战PyQt5: 111-可以使用QSS样式表的部件


实战PyQt5: 111-可以使用QSS样式表的部件文章插图
可以使用QSS样式表的部件QSS样式表支持各种部件 , 属性 , 伪状态和子控件 , 从而可以实现定制部件的外观 , 下面我们将详细列出可以使用QSS样式表的部件:

  • QAbstractScrollArea:所有派生自QAbstractScrollArea类的子类 , 包括QTextEdit, QAbstractItemView(所有项目视图类) , 都可以通过设置background-attachment属性来实现可滚动背景 。 通过给background-attachment设置fixed和scroll , 背景会固定不动或者跟随滚动 。
  • QChecBox: QCheckBox的勾选符号可以使用::indicator子控件来定制 。 默认情况下 , 勾选标记位于部件矩形的左上角 。 QCheckBox的spacing属性可以用于指定勾选标记和文本内容之间的间距 。
  • QColumnView:可以使用image属性来设置握柄(grip)的样式 , 可以使用::left-arrow子控件和::right-arrow子控件来设置箭头的样式
  • QComboBox:组合下拉框的框架可以使用盒模型(Box Model)设置样式 。 可以使用:: drop-down子控件设置下拉按钮的样式 。 默认情况下 , 下拉按钮位于部件的填充矩形的右上角 。 可以使用:: down-arrow子控件设置下拉按钮内的箭头标记的样式 。 默认情况下 , 箭头位于下拉子控件的内容矩形的中心 。
  • QSpinBox(QDoubleSpinBox, QDateEdit,QTimeEdit,QDateTimeEdit):旋转框的框架可以使用盒模型(Box Model)设置样式 。
可以使用:: up-button和:: up-arrow子控件设置向上按钮和箭头的样式 。 默认情况下 , 向上按钮位于小部件的“填充”矩形的右上角 。 如果没有明确的尺寸 , 则它占据其参考矩形高度的一半 。 向上箭头放置在向上按钮的“内容”矩形的中心 。
可以使用::down-button和::down-arrow子控件设置向下按钮和箭头的样式 。 默认情况下 , 向下按钮位于小部件的“填充”矩形的右下角 。 如果没有明确的尺寸 , 则它占据其参考矩形高度的一半 。 底部箭头位于底部按钮的“内容”矩形的中心 。
  • QDialog:仅支持background , background-clip和background-origin属性 。
  • QDialogButton: 可以使用button-layout属性更改按钮的布局 。
  • QDockWidget:支持停靠时标题栏和标题栏按钮的样式 。
【实战PyQt5: 111-可以使用QSS样式表的部件】 可以使用border属性设置停靠窗口小部件边框的样式 。 ::title子控件可以用于自定义标题栏 。
关闭按钮和浮动按钮分别使用相对于::title子控件的::close-button和::float-button来进行定位 。 标题栏为垂直时 ,
当标题栏垂直时 , 需要设置:vertical伪状态 。 另外 , 根据QDockWidget.DockWidgetFeature设置:closable , :floatable和:movable pseudo状态 。
注意:使用QMainWindow :: separator设置调整大小句柄(handle)的样式 。
警告:取消QDockWidget时 , 样式表无效 , 因为Qt退出时 , Qt使用本机顶级窗口 。
  • QFrame:自Qt4.3开始 , 在QLabel上设置样式表会自动将QFrame的 ::frameStyle属性设置为QFrame :: StyledPanel 。
  • QGroupBox:QGroupBox的标题用::title子控件进行定制 , 标题的位置依QGroupBox::textAlignment的具体值而言 。 对于可选的QGroupBox而言 , 标题中还会包含一个勾选标记 , 勾选标记用::indicator来定制 , spacing仍然用于设置勾选标记与文本的间距 。
  • QHeaderView:QHeaderView是Model/View框架中的一部分 。 标题视图的各小节(section)使用:: section子控件设置样式 。 ::section支持 :middle, :first, :last, :only-one, :previous-selected, :selected, :checked等伪状态 。 ::up-arrow和::down-arrow用于定制表头的排序标记 。
  • QLabel:QLabel不支持:hover伪状态 , 自Qt4.3开始 , 给QLabel设置样式表也就隐式指定了QFrame::frameStyle属性 。
  • QLineEdit:selection-color, selection-background-color属性分别指定了选中文本的文本颜色和背景色 , 使用lineedit-password-character属性设置密码字符的样式 。 使用lineedit-password-mask-delay更改密码掩码延迟时间 。
  • QListView(QListWidget):当view支持斑马色条时 , alternate-background-color属性指定备选色实现斑马色带 。
当前所选条目的的颜色和背景 , 可以使用selection-color和selection-background-color属性来设置 。
选择行为由show-decoration-selected属性控制 。
使用::item子控件可以更精细地控制QListView中的条目 。