本文任务是:实现一个案例,文字背景粗细大小等设置以及按钮css演示配置

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_python知识


今天我们实现一个基于QWidget通用窗口的标签、文本框及字体和按钮自定义样式的案例,主要是熟悉基于QWidget下的一些常用的功能。

1 新建窗体

打开QTDesigner,点击新建,创建一个Widget的通用窗体。 

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_python_02

接下来我们进行修改窗体名字,修改后是这样,保存后你可以看到窗体最左上角的名字已经改为了“QWdiget学习案例”

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_Qt_03

 2 向页面添加组件:

2.1 添加 QLabel 标签到面板,并输入内容为“QLabel标签测试文本”

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_pyqt6_04

2.2 添加 Text Edit文本框组件到面板

双击文本框组件可以打开文本编辑面板,如下图:

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_pyqt_05

3 属性设置

3.1 文本标签背景设置

接下来我们进行标签常用属性的设置,设置文字背景。点击标签框,查看右侧属性编辑器,可以看到一个palette的颜色调色板,点击进去:

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_pyqt_06

点击打开颜色调色板就是下图这样,我们可以一个个的属性进行调节,也可以直接进行快速调节。

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_pyqt_07

咱们懒省事了,直接选择“快速”,选择红色即可完成对标签底色的设置,如下图:

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_Qt_08

注意:说到这里,我们看到,用到的palette调色板挺多,接下来我们简单的看一下调色板相关知识点:

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_pyqt_09

  1. 左侧为颜色角色和激活的典型颜色,右边为典型控件激活、非激活和失效调色效果预览,可以将调色结果保存到文件中,或者将已有的调色文件载入。
  2. Qt中调色板palette用于管理控件的一组外观显示设置,对应PyQt6中的QPalette类,可以管理控件和窗体的所有颜色。
  3. 颜色角色:ColorRole:是指界面中对应的部分界面外观组合,通过枚举QPalette.ColorRole.x来定义。x就是颜色值对应的枚举名。
  4. 颜色组:ColorGroup是指同一外观组合在活动状态(active获得焦点)、非活动状态(inactive,未获取焦点)、禁止状态(disable,不能获得焦点)时的对应颜色。
3.2 文本框中字体颜色设置

对于文本框内字体颜色进行设置,仍然使用palette调色板,如下图:

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_python_10

 此时我们直接选择左侧的Text 的颜色,点击颜色激活框,选择颜色为蓝色,确定就可以查看输入框内字体颜色被设置成蓝色了。

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_pyqt6_11

3.3 字体大小粗细设置

我么新拖拽一个Label标签,并在右侧属性哪里找到font,点击后面的三个点,便可以对字体进行大小粗细的设置,很简单,不演示了。

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_python知识_12

3.4 外观样式表

在Qt中用styleSheet来对组件进行样式设置,类似于HTML的CSS,这是专门为Qt中控件开发的,支持跨平台。可以通过QApplication.setStyleSheet()在整个应用程序中设置样式。如果在不同级别设置了多个样式表,Qt将从所有设置的样式表中派生出有效的样式表,称为样式级联。

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_python知识_13

利用PyUic将Ui文件转换成py文件就可以使用了。

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_pyqt_14

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

将窗口置底

通过一个案例简单的演示以下启动窗口的效果:
# -*- coding:utf-8 -*-

import sys

from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QApplication, QLabel

app = QApplication(sys.argv)
lb = QLabel("<font color=blue size=64><b>程序正在启动,请稍后...</b></font>")
lb.setWindowFlags(Qt.WindowType.SplashScreen |Qt.WindowType.FramelessWindowHint)
lb.show()
app.exec()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

效果如下,无窗体、无标题,只有文字显示: 

入门 PyQt6 看过来(基础)03 ~文字、样式、窗体_pyqt6_15

下一篇:PyQt6 事件及信号、槽