本文任务是:实现一个案例,文字背景粗细大小等设置以及按钮css演示配置
今天我们实现一个基于QWidget通用窗口的标签、文本框及字体和按钮自定义样式的案例,主要是熟悉基于QWidget下的一些常用的功能。
1 新建窗体
打开QTDesigner,点击新建,创建一个Widget的通用窗体。
接下来我们进行修改窗体名字,修改后是这样,保存后你可以看到窗体最左上角的名字已经改为了“QWdiget学习案例”。
2 向页面添加组件:
2.1 添加 QLabel 标签到面板,并输入内容为“QLabel标签测试文本”
2.2 添加 Text Edit文本框组件到面板
双击文本框组件可以打开文本编辑面板,如下图:
3 属性设置
3.1 文本标签背景设置
接下来我们进行标签常用属性的设置,设置文字背景。点击标签框,查看右侧属性编辑器,可以看到一个palette的颜色调色板,点击进去:
点击打开颜色调色板就是下图这样,我们可以一个个的属性进行调节,也可以直接进行快速调节。
咱们懒省事了,直接选择“快速”,选择红色即可完成对标签底色的设置,如下图:
注意:说到这里,我们看到,用到的palette调色板挺多,接下来我们简单的看一下调色板相关知识点:
- 左侧为颜色角色和激活的典型颜色,右边为典型控件激活、非激活和失效调色效果预览,可以将调色结果保存到文件中,或者将已有的调色文件载入。
- Qt中调色板palette用于管理控件的一组外观显示设置,对应PyQt6中的QPalette类,可以管理控件和窗体的所有颜色。
- 颜色角色:ColorRole:是指界面中对应的部分界面外观组合,通过枚举QPalette.ColorRole.x来定义。x就是颜色值对应的枚举名。
- 颜色组:ColorGroup是指同一外观组合在活动状态(active获得焦点)、非活动状态(inactive,未获取焦点)、禁止状态(disable,不能获得焦点)时的对应颜色。
3.2 文本框中字体颜色设置
对于文本框内字体颜色进行设置,仍然使用palette调色板,如下图:
此时我们直接选择左侧的Text 的颜色,点击颜色激活框,选择颜色为蓝色,确定就可以查看输入框内字体颜色被设置成蓝色了。
3.3 字体大小粗细设置
我么新拖拽一个Label标签,并在右侧属性哪里找到font,点击后面的三个点,便可以对字体进行大小粗细的设置,很简单,不演示了。
3.4 外观样式表
在Qt中用styleSheet来对组件进行样式设置,类似于HTML的CSS,这是专门为Qt中控件开发的,支持跨平台。可以通过QApplication.setStyleSheet()在整个应用程序中设置样式。如果在不同级别设置了多个样式表,Qt将从所有设置的样式表中派生出有效的样式表,称为样式级联。
利用PyUic将Ui文件转换成py文件就可以使用了。
4 拓展:窗口类型
4.1 设置窗口类型
设置窗口类型使用setWindowsFlages(窗口类型枚举),其中这些枚举类型如下:
窗口 | 描述 |
Widget | QWidget类的默认类型,也是通用窗口类型 |
Window | QWidget类创建的主窗口。 |
Dialog | 对话框 |
SplashScreen | 启动窗口,表现为启动窗口没有边框和标题,无法条哼大小,是QSplashScreen类的默认值 |
Desktop | 桌面,窗口表现为桌面,不一会在屏幕上显示 |
SubWindow | 子窗口,有边框、标题栏,不能单独存在,也无法用鼠标调整大小 |
Foreign Window | 外部窗口,是另一个进程创建的 |
4.2 设置窗口属性
在设置窗口时可用“|”以此设置多个属性,通过windowFlags函数可获取当前窗口的属性常用的属性如下:
属性 | 描述 |
FramelessWindowHint | 去除边框和标题栏,不能调整移动窗口 |
MSWidowsFixedSizeDialogHint | 禁止调整窗口尺寸 |
NoDropShadowWindowHint | 去除窗口的阴影 |
CustomizeWindowHint | 去除边框和标题栏,但增加bulk效果,尺寸可调整 |
WindowTitleHint | 增加系统菜单和关闭按钮 |
WindowSystemMenuHint | 增加系统菜单和关闭按钮 |
WindowMinimizeButtonHint | 增加最小化按钮 |
WindowMaximizeButtonHint | 增加最大化按钮 |
WindowMinMaxButtonsHint | 增加最大化最小化按钮 |
WindowCloseButtonHint | 增加关闭按钮 |
WindowContextHelpButtonHint | 增加帮助按钮 |
WindowStaysOnTopHint | 将窗口置顶 |
WindowStaysOnBottomHint | 将窗口置底 |
通过一个案例简单的演示以下启动窗口的效果:
效果如下,无窗体、无标题,只有文字显示:
下一篇:PyQt6 事件及信号、槽