qdarkstyle:用了这个库之后,可以使我们的GUI 交互界面变成黑色的
使用方法:
-
先导入 qdarkstyle 库
pip install qdarkstyle
-
在 _ _ init _ _ 文件加入样式设置语句
self.window.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside2'))
-
没有添加暗黑样式之前:
-
添加了暗黑样式之后【部分控件变成了圆角】:
# -*- -*- -*- -*- -*- -*- -*- -*-
# -*- coding: utf-8 -*-
# @Time : 2021/01/25
# @File : demo.py
# -*- -*- -*- -*- -*- -*- -*- -*-
# 导入应用程序
import qdarkstyle
from PySide2.QtWidgets import QApplication
# 导入应用窗口
from PySide2.QtWidgets import QMainWindow
# 导入应用按钮
from PySide2.QtWidgets import QPushButton
# 导入应用纯文本的编辑框
from PySide2.QtWidgets import QPlainTextEdit
# 导入:弹出对话框,弹窗展示运行结果
from PySide2.QtWidgets import QMessageBox
# 导入控件名称文案
from PySide2.QtWidgets import QLabel
# 导入下拉列表控件类
from PySide2.QtWidgets import QComboBox
# 导入纯展示文本框类
from PySide2.QtWidgets import QTextBrowser
# 导入单行输入框控件类
from PySide2.QtWidgets import QLineEdit
# 导入数字输入框控件类
from PySide2.QtWidgets import QSpinBox
# 导入执行窗口的图表样式
from PySide2.QtGui import QIcon
# 导入文案颜色显示类
from PySide2.QtGui import QColor
class Demo():
def __init__(self):
''' 一、首先需要创建一个最外层的窗口 '''
# 创建一个主窗口对象【只做定制处理,并非直接展示】
self.window = QMainWindow()
# resize:控制窗口的尺寸(宽,高)
self.window.resize(651, 629)
# move:打开后窗口出现在显示器的位置
self.window.move(300, 310)
# Title:打开后的窗口的标题栏文案
self.window.setWindowTitle('Demo工具')
# 加载暗黑风格的 Style 样式
self.window.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside2'))
''' 二、新增选项的标签提示文案:QLabel '''
# 创建一个文本框的文案显示控件
self.QLabel_1 = QLabel(self.window)
# Text:页面展示的文案
self.QLabel_1.setText("请输入您的姓名:")
# setStyleSheet:页面展示的文案布局
# 1、background:背景色,最后一位是透明度
# 2、font-family:字体类型,常见的:YouYuan,Microsoft Yahei
# 3、font-size:字体大小
# 4、color:字体颜色
self.QLabel_1.setStyleSheet('''
background: rgba(255, 255, 255,0);
font-family: YouYuan;
font-size: 12pt;
color: green;
''')
# move: 文字显示在纯文本控件的窗格位置
self.QLabel_1.move(10, 20)
# resize:控制文本输入窗口的尺寸(宽,高)
self.QLabel_1.resize(200, 41)
# 创建一个单选框的文案显示控件
self.QLabel_2 = QLabel(self.window)
# Text:页面展示的文案
self.QLabel_2.setText("请选择您的性别:")
# Text:页面展示的文案布局
self.QLabel_2.setStyleSheet('''
font-size: 12pt;
color: red;
''')
# move: 文字显示在纯文本控件的窗格位置
self.QLabel_2.move(10, 80)
# resize:控制文本输入窗口的尺寸(宽,高)
self.QLabel_2.resize(200, 41)
# 创建一个单选框的文案显示控件
self.QLabel_3 = QLabel(self.window)
# Text:页面展示的文案
self.QLabel_3.setText("请输入您的年龄:")
# move: 文字显示在纯文本控件的窗格位置
self.QLabel_3.move(10, 140)
# resize:控制文本输入窗口的尺寸(宽,高)
self.QLabel_3.resize(200, 41)
# 创建一个多行文本框的文案显示控件
self.QLabel_4 = QLabel(self.window)
# Text:页面展示的文案
self.QLabel_4.setText("操作结果:")
# move: 文字显示在纯文本控件的窗格位置
self.QLabel_4.move(40, 310)
# resize:控制文本输入窗口的尺寸(宽,高)
self.QLabel_4.resize(171, 41)
''' 三、新增一个单行输入框控件:QLineEdit'''
self.QLineEdit = QLineEdit(self.window)
# Text:纯文本控件的默认提示文案(输入后会覆盖,清空内容后重现)
self.QLineEdit.setPlaceholderText("请输入...")
# setStyleSheet:页面展示的文案布局
self.QLineEdit.setStyleSheet('''
font-size: 12pt;
color: Purple;
''')
# move: 文字显示在纯文本控件的窗格位置
self.QLineEdit.move(200, 20)
# resize:控制文本输入窗口的尺寸(宽,高)
self.QLineEdit.resize(200, 41)
''' 四、新增一个下拉选择的控件:QComboBox '''
self.comboBox_sex = QComboBox(self.window)
# 下拉选项的选项文案
self.comboBox_sex.addItems(['请选择','男','女','保密'])
# move: 文字显示在纯文本控件的窗格位置
self.comboBox_sex.move(200, 80)
# resize:控制文本输入窗口的尺寸(宽,高)
self.comboBox_sex.resize(200, 41)
''' 五、新增一个数字输入框的控件:QSpinBox '''
self.QSpinBox_age = QSpinBox(self.window)
# move: 文字显示在纯文本控件的窗格位置
self.QSpinBox_age.move(200, 140)
# resize:控制文本输入窗口的尺寸(宽,高)
self.QSpinBox_age.resize(200, 41)
''' 六、新增一个多行输入框的控件:QTextBrowser '''
self.QTextBrowser_result = QTextBrowser(self.window)
# Text:纯文本控件的默认提示文案(输入后会覆盖,清空内容后重现)
self.QTextBrowser_result.setPlaceholderText("这里会显示运行结果")
# move: 文字显示在纯文本控件的窗格位置
self.QTextBrowser_result.move(40, 360)
# resize:控制文本输入窗口的尺寸(宽,高)
self.QTextBrowser_result.resize(561, 201)
''' 七、新增一个点击按钮控件:QPushButton '''
# 在组件窗口里面新增一个按钮功能
self.button_create = QPushButton('检测\n性格', self.window)
# setStyleSheet:页面展示的文案布局
self.button_create.setStyleSheet('''
font-size: 20pt;
color: blue;
''')
# move: 按钮显示在窗格的位置
self.button_create.move(480, 50)
# resize:控制文本输入窗口的尺寸(宽,高)
self.button_create.resize(150, 100)
# 按钮点击怎么触发事件呢?加一段 clicked 代码,调用事件方法
self.button_create.clicked.connect(self.click)
# 定义一个点击方法
def click(self):
send_name = self.QLineEdit.text()
# 弹窗展示打印结果,包含三个参数:(窗口,窗口标题,窗口内容)
QMessageBox.about(self.window, "运行结果", "代 码 执 行 完 毕")
# 结果返回框打印结果
self.QTextBrowser_result.setStyleSheet('''
font-size: 20pt;
color: black;
''')
self.QTextBrowser_result.append("{}是一只舔狗".format(send_name))
# 创建一个实例化对象,QApplication 提供了整个图形界面程序的底层管理功能
app = QApplication([])
# 创建一个实例化对象,接受定义的所有参数配置
Demo = Demo()
# 展示窗口及其所有的控件
Demo.window.show()
# 进入事件处理循环(没有此段代码,窗口将会一闪而过)
app.exec_()