当前位置: 首页 > news >正文

Qt的Qss用法

Qt 的 Qss 是一种用于定义用户界面的样式表语言。它可以用来定义控件的颜色、字体、边框、背景等样式,可以很方便的实现自定义的样式效果。

Qss 的基本语法和 CSS 类似,主要是由选择器和样式属性构成。

选择器

选择器用来指定要样式化的控件,选择器可以使用控件的名称、类型、ID、类、父子关系等来进行定位。常见的选择器有:

  • 类型选择器: QPushButton
  • 类选择器: .mybutton
  • ID 选择器: #mybutton
  • 属性选择器: QWidget[enabled="false"]
  • 父子选择器: QListWidget > QListWidgetItem

样式属性

在 Qt 的 Qss 中,样式属性可以分为两类:控件属性和子控件属性,其中控件属性用于设置控件自身的样式,子控件属性用于设置控件的子控件的样式。

常用的控件属性和样式如下:

样式属性描述
background控件背景色
border控件边框
color控件文本颜色
font-size控件字体大小
font-family控件字体
padding内边距
margin外边距
text-align控件文本对齐方式
text-indent控件文本缩进
opacity控件透明度

常用的子控件属性和样式如下:

样式属性描述
QScrollBar:vertical竖向滚动条
QScrollBar:horizontal横向滚动条
QScrollBar::handle滚动条滑块
QScrollBar::add-page滚动条向后翻页按钮
QScrollBar::sub-page滚动条向前翻页按钮
QScrollBar::add-line滚动条向后滚动按钮(小箭头)
QScrollBar::sub-line滚动条向前滚动按钮(小箭头)
QComboBox QAbstractItemView下拉框的列表视图
QComboBox QAbstractItemView::item下拉框的列表项

示例

下面是一个简单的 Qss 样式示例:

QPushButton {background: #00bfff;color: #fff;border: 2px solid #fff;font-size: 24px;padding: 4px 8px;margin: 4px;
}QLineEdit {background: #fff;color: #000;border: 2px solid #00bfff;padding: 4px 8px;margin: 4px;
}QComboBox QAbstractItemView {background: #fff;color: #000;border: 2px solid #00bfff;padding: 4px 8px;margin: 4px;
}QComboBox QAbstractItemView::item {background: #00bfff;color: #fff;font-size: 18px;padding: 4px 8px;margin: 4px;
}QScrollBar:vertical {background: #fff;width: 16px;margin: 4px;
}QScrollBar::handle:vertical {background: #00bfff;border-radius: 8px;margin: 2px;
}QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {background: none;
}QScrollBar:horizontal {background: #fff;height: 16px;margin: 4px;
}QScrollBar::handle:horizontal {background: #00bfff;border-radius: 8px;margin: 2px;
}QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {background: none;
}

上面的样式将会应用到 QPushButtonQLineEditQComboBoxQScrollBar 等控件上,并且可以看到各个控件的样式都是不一样的。其中,QComboBox 还设置了下拉列表视图及列表项的样式。

除了上述基本语法外,Qt 的 Qss 还有一些高级特性。

伪状态和伪元素

Qss 支持控件的伪状态和伪元素,用来描述控件处于特定状态时的样式。常见的状态包括:hover(鼠标悬停时)、pressed(鼠标按下时)、checked(选中状态)、disabled(不可用状态)等。

样式示例:

QPushButton:hover {background: #1e90ff;
}QPushButton:checked {color: #ff4500;
}

尺寸和单位

Qss 支持不同的尺寸和单位来定义样式,包括像素(px)、绝对长度(cmmminptpc)、相对长度(emexrem)、百分比(%)等,用于实现不同尺寸的控件效果。

QPushButton {width: 100px;height: 30px;
}QLabel {font-size: 1.5em;
}QTextEdit {padding: 0.5rem;
}QComboBox {width: 50%;
}

颜色和图像

Qss 支持使用颜色和图像来定义控件的背景,边框和文本颜色等样式。

颜色示例:

QWidget {background-color: red;
}QPushButton {color: white;background-color: rgb(0, 255, 0);
}QLineEdit {border: 1px solid #ccc;
}QLabel {color: black;background-color: rgba(255, 255, 0, 0.5);
}

图像示例:

QPushButton {border-image: url(button.png) 5 5 5 5 stretch;
}QLabel {background-image: url(background.png);background-repeat: no-repeat;background-position: center;background-size: cover;
}QTextEdit {background-image: url(paper.jpg);background-attachment: fixed;
}

动画效果

Qss 还支持使用动画效果来实现控件的动态样式,通过 @keyframesanimation 实现。

样式示例:

QPushButton:hover {animation: pulse 0.5s;
}@keyframes pulse {0% {background-color: #1e90ff;}50% {background-color: #00bfff;}100% {background-color: #1e90ff;}
}

总结

Qss 是一个强大的控件样式表语言,可以帮助我们实现各式各样的自定义控件效果。它可以设置控件属性、子控件属性、样式状态、颜色、图像、动画等。了解 Qss 语法和常用样式属性将能够让你更快速地实现丰富的 Qt 界面效果。

http://www.lryc.cn/news/61408.html

相关文章:

  • 数塔dp -A
  • Spring MVC 接收 json 和返回 json (14)
  • 注释和关键字
  • 第一次参加CSDN周赛,这体验很难说···
  • 8.DRF组件之认证、权限
  • 初识Tkinter弹窗
  • 设计模式之责任链模式(C++)
  • 音游判定原理详解——从触摸屏幕到判定音符【Project SEKAI攻略】
  • 【论文阅读】Self-Paced Boost Learning for Classification
  • 通过CSIG—走进合合信息探讨生成式AI及文档图像处理的前景和价值
  • 流程图拖拽视觉编程--概述
  • 深度学习中的卷积神经网络
  • vue3的介绍和两种创建方式(cli和vite)
  • camunda工作流user task如何使用
  • 三元运算符
  • Vue3 Element-plus el-menu无限级菜单组件封装
  • ( “树” 之 BST) 669. 修剪二叉搜索树 ——【Leetcode每日一题】
  • 【C语言】浅涉结构体(声明、定义、类型、定义及初始化、成员访问及传参)
  • 设计模式-结构型模式之装饰模式
  • 【Chatgpt4 教学】 NLP(自然语言处理)第九课 朴素贝叶斯分类器的工作原理 机器学习算法
  • 基于html+css的图片展示17
  • Jupyter Notebook小知识
  • redis原理及进化之路
  • ai智能写作助手-ai自动写作软件
  • redis持久化
  • Vue项目基于driverjs实现新用户导航
  • 自编码器简单介绍—使用PyTorch库实现一个简单的自编码器,并使用MNIST数据集进行训练和测试
  • redis单机最大并发量
  • MTLAB绘图
  • 自媒体必备素材库,免费、商用,赶紧马住~