Python GUI库PyQt5图形和特效样式QSS介绍
什么是PyQt5
PyQt5是Python的一个GUI(图形用户界面)框架,可以帮助开发者在Python语言中创建有吸引力的窗口应用程序。PyQt5是基于Qt库开发的,也就是说Qt库是PyQt5的核心库,它在Python中提供了QWidgets和QPainter等工具来构建强大的窗口应用程序。
如何使用PyQt5
在Python中使用PyQt5,需要先安装PyQt5库。下面是在命令行中使用pip命令安装PyQt5的示例:
pip install pyqt5
安装好PyQt5之后,就可以开始使用它提供的模块和组件了。
PyQt5的组件和模块
PyQt5提供了丰富的组件和模块,使开发者能够快速构建自己的窗口应用程序。下面是一些常用的PyQt5组件和模块:
- QWidget:创建窗口应用程序
- QLabel:显示文本或图片
- QPushButton:按钮
- QCheckBox:复选框
- QRadioButton:单选框
- QComboBox:下拉框
- QLineEdit:输入框
- QGridLayout:网格布局
- QHBoxLayout:水平布局
- QVBoxLayout:垂直布局
- QTimer:定时器
- QThread:线程
PyQt5的特效和样式
PyQt5支持使用CSS样式来美化应用程序的外观。可以使用QSS(Qt Style Sheets)控制样式表,对PyQt5应用程序的外观进行定制化。
下面是一个使用QSS实现美化PyQt5应用程序的示例:
# 导入 PyQt5.QtGui 模块
from PyQt5.QtGui import QIcon
# 导入 PyQt5.QtCore 模块
from PyQt5.QtCore import Qt
# 导入 PyQt5.QtWidgets 模块
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton
class MyWindow(QWidget):
def __init__(self):
super().__init__()
# 设置窗口标题
self.setWindowTitle("My Window")
# 设置窗口图标
self.setWindowIcon(QIcon("./icon.ico"))
# 设置窗口大小
self.resize(400, 300)
# 创建标签控件
self.label = QLabel(self)
self.label.setText("Hello World!")
self.label.move(150, 100)
# 创建按钮控件
self.button = QPushButton(self)
self.button.setText("Click Me!")
self.button.move(150, 150)
# 为按钮控件添加事件处理函数
self.button.clicked.connect(self.btn_clicked)
# 设置窗口样式表
self.setStyleSheet("background-color: #EEE; font-size: 20px; font-weight: bold; border: 1px solid #CCC;")
def btn_clicked(self):
# 按钮单击事件处理函数
self.label.setText("Button Clicked!")
if __name__ == "__main__":
# 创建应用程序对象
app = QApplication([])
# 创建窗口对象
window = MyWindow()
# 显示窗口
window.show()
# 运行应用程序
app.exec_()
在上面的示例中,使用self.setStyleSheet()
方法设置了窗口应用程序的背景颜色、字体大小、字体粗细和边框等样式。
PyQT5 QSS样式应用进阶
为了更好地理解QSS样式表和PyQt5的组件,接下来我们来看一个更复杂的QSS样式表应用示例。
# 导入 PyQt5.QtGui 模块
from PyQt5.QtGui import QFont, QPalette, QColor
# 导入 PyQt5.QtCore 模块
from PyQt5.QtCore import Qt, QFile, QTextStream
# 导入 PyQt5.QtWidgets 模块
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton
class MyWindow(QWidget):
def __init__(self):
super().__init__()
# 设置窗口标题
self.setWindowTitle("My Window")
# 设置窗口图标
self.setWindowIcon(QIcon("./icon.ico"))
# 设置窗口大小
self.resize(400, 300)
# 创建标签控件
self.label = QLabel(self)
self.label.setText("Hello World!")
self.label.move(100, 100)
# 创建按钮控件
self.button = QPushButton(self)
self.button.setText("Click Me!")
self.button.move(100, 150)
# 为按钮控件添加事件处理函数
self.button.clicked.connect(self.btn_clicked)
# 加载样式表
file = QFile("./style.qss")
file.open(QFile.ReadOnly | QFile.Text)
stream = QTextStream(file)
self.setStyleSheet(stream.readAll())
file.close()
def btn_clicked(self):
# 按钮单击事件处理函数
self.label.setText("Button Clicked!")
if __name__ == "__main__":
# 创建应用程序对象
app = QApplication([])
# 创建窗口对象
window = MyWindow()
# 显示窗口
window.show()
# 运行应用程序
app.exec_()
在上面的示例中,使用self.setStyleSheet()
方法加载了一个外部的QSS样式表文件,实现了对应用程序的更多样式定制化。
完整的代码可以在Github上找到。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python GUI库PyQt5图形和特效样式QSS介绍 - Python技术站