Qt-界面优化控件样式设置(72)

目录

描述

QPushButton

自定义复选框

输入框

列表框

菜单

实现登入界面

设置背景图

改变样式表


描述

这里介绍一些控件的样式设置

QPushButton

相关属性

|------------------|---------------------------|
| font-size | 设置⽂字⼤⼩. |
| border-radius | 设置圆⻆矩形. 数值设置的越⼤, ⻆就 "越圆". |
| background-color | 设置背景颜⾊ |

本人设置的不好看

css 复制代码
QPushButton {
	font-size: 20px;
	border: 2px soild rgb(120, 23, 255);
	border-radius:10px;
	background-color:rgb(0, 0, 0);
	color: rgb(0, 0, 255)
}
QPushButton:pressed {
	background-color: rgb(255, 0, 0)
}

自定义复选框

相关属性

|-------------|-----------------------------|
| 要点 | 说明 |
| ::indicator | ⼦控件选择器. 选中 checkbox 中的对钩部分. |
| :hover | 伪类选择器.选中⿏标移动上去的状态 |

|------------|-----------------------------------------------------|
| :pressed | 伪类选择器. 选中⿏标按下的状态. |
| :checked | 伪类选择器. 选中 checkbox 被选中的状态. |
| :unchecked | 伪类选择器. 选中 checkbox 未被选中的状态. |
| width | 设置⼦控件宽度. 对于普通控件⽆效 (普通控件使⽤ geometry ⽅式设定尺⼨). |
| height | 设置⼦控件⾼度. 对于普通控件⽆效 (普通控件使⽤ geometry ⽅式设定尺⼨). |
| image | 设置⼦控件的图⽚. 像 QSpinBox, QComboBox 等可以使⽤这个属性来设置⼦控件的图⽚. |

创建⼀个 resource.qrc ⽂件, 并导⼊以下图⽚,可以去矢量图网站中下载,有很多的

使⽤**⿊⾊**作为 默认 形态.

使⽤**蓝⾊**作为 hover 形态.

使⽤**红⾊**作为 pressed 形态.

添加qrc资源

运行

可以使用添加资源的方式,来保证地址输入的正确

css 复制代码
QCheckBox{
	font-size: 20px;
}
QCheckBox::indicator{
	width: 20px;
	height: 20px;
}
QCheckBox::indicator:unchecked {
	image: url(:/checkbox-off.png);
}
QCheckBox::indicator:unchecked:hover {
	image: url(:/checkbox_hover_off.png)
}
QCheckBox::indicator:unchecked:pressed {
	image: url(:/checkbox_pressed_off.png)
}
QCheckBox::indicator:checked {
	image: url(:/checkbox-on.png);
}
QCheckBox::indicator:hover {
	image: url(:/checkbox_hover_on.png);
}
QCheckBox::indicator:pressed {
	image: url(:/checkbox_pressed_on.png);
}

输入框

相关属性

|----------------------------|--------------|
| 属性 | 说明 |
| border-width | 设置边框宽度. |
| border-radius | 设置边框圆⻆. |
| border-color | 设置边框颜⾊. |
| border-style | 设置边框⻛格. |
| padding | 设置内边距. |
| color | 设置⽂字颜⾊. |
| background | 设置背景颜⾊. |
| selection-background-color | 设置选中⽂字的背景颜⾊. |

|-----------------|--------------|
| selection-color | 设置选中⽂字的⽂本颜⾊. |

使用

css 复制代码
QLineEdit {
	border-width: 2px;
	border-color: rgb(56, 255, 53);
	border-style: solid;
	border-radius: 20px;
	padding-left: 10px;
	color: rgb(170, 255, 0);
	font-size: 24px;
	background-color: rgb(255, 255, 127);
	selection-color: rgb(85, 255, 255);
	selection-background-color: rgb(255, 85, 255);
}

列表框

相关属性

|-----------------|----------------------|
| ::item | 选中 QListView 中的具体条⽬. |
| :hover | 选中⿏标悬停的条⽬ |
| :selected | 选中某个被选中的条⽬. |
| background | 设置背景颜⾊ |
| border | 设置边框. |
| qlineargradient | 设置渐变⾊ |

css 复制代码
QListWidget::item:hover {
	background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #FAFBFE, stop: 1 #DCDEF1);
}
QListWidget::item:selected {
	background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6a6ea9, stop: 1 #888dd9);
}

菜单

相关属性

|----------------|------------|
| QMenuBar::item | 选中菜单栏中的元素. |

|-------------------------|-----------------|
| QMenuBar::item:selected | 选中菜单来中的被选中的元素. |
| QMenuBar::item:pressed | 选中菜单栏中的⿏标点击的元素. |
| QMenu::item | 选中菜单中的元素 |
| QMenu::item:selected | 选中菜单中的被选中的元素. |
| QMenu::separator | 选中菜单中的分割线. |

使用

代码

css 复制代码
QMenuBar {
	background-color: #f0f0f0;
	spacing: 5px;
}
QMenuBar::item {
	border-radius: 10px;
	padding: 3px 10px;
	background-color: rgb(255, 255, 210);
}
QMenuBar::item:selected {
	background-color: rgb(170, 85, 0);
}
QMune:item {
	border: 2px solid transparent;
	padding: 2px 10px;
}
QMenu::item:selected {
	border: 2px solid red;
}
Qmenu::separator {
	height: 2px;
	background-color: green;
	nargin: 0 5px;
}

实现登入界面

首先拉取需要用到的控件,使用垂直布局管理器管理后,可以看到很不友好,我们需要设置一下它们的属性

因为使用了布局管理器,所以我们无法直接设置它们的高度和宽度

我们可以通过设置最小高度和最大高度来设置好控件的高度,当然宽度也可以这样设置

设置好之后,好看一些了

设置背景图

在 Qt 中我们无法直接在 QWidget 顶层窗口中去添加背景图

窗口背景设置方法

添加背景图

添加一层 Qframe

改变样式表

图片变扁扁的了

css 复制代码
QFrame {
	border-image: url(:/cat.jpg);
}

QLineEdit {
	color: white;
	background-color: #405361;
	padding: 0 5px;
	font-size: 20px;
	border: none;
	border-radius: 10px;
}

QCheckBox {
	color: white;
	font-size: 18px;
}

QPushButton {
	font-size: 20px;
	color: white;
	background-color: #555;
	border-radius: 10px;
}

QPushButton:pressed {
	color: black;
	background-color: orange;
}

总结

相关推荐
前端爆冲5 分钟前
项目中无用export的检测方案
前端
热爱编程的小曾32 分钟前
sqli-labs靶场 less 8
前端·数据库·less
gongzemin44 分钟前
React 和 Vue3 在事件传递的区别
前端·vue.js·react.js
Apifox1 小时前
如何在 Apifox 中通过 Runner 运行包含云端数据库连接配置的测试场景
前端·后端·ci/cd
树上有只程序猿1 小时前
后端思维之高并发处理方案
前端
庸俗今天不摸鱼2 小时前
【万字总结】前端全方位性能优化指南(十)——自适应优化系统、遗传算法调参、Service Worker智能降级方案
前端·性能优化·webassembly
黄毛火烧雪下2 小时前
React Context API 用于在组件树中共享全局状态
前端·javascript·react.js
Apifox2 小时前
如何在 Apifox 中通过 CLI 运行包含云端数据库连接配置的测试场景
前端·后端·程序员
一张假钞2 小时前
Firefox默认在新标签页打开收藏栏链接
前端·firefox
高达可以过山车不行2 小时前
Firefox账号同步书签不一致(火狐浏览器书签同步不一致)
前端·firefox