目录
前言
PyQt5是一款Python语言的GUI编程工具包,基于Qt库开发。Qt是一个跨平台的C++应用程序开发框架,可以用于开发桌面应用程序、移动应用程序、嵌入式应用程序等。PyQt5可以帮助开发者快速构建出美观、现代化的用户界面,并且支持多种操作系统平台,如Windows、Linux、MacOS等。PyQt5还提供了许多丰富的功能和工具,下面本文就介绍下其中最常用的模块PyQt5.QtWidgets, 它包含了GUI界面的所有窗口的控件。
一、PyQt5的QtWidgets介绍
PyQt5的QtWidgets模块包含了很多类,用于创建GUI应用程序的各种控件和窗口部件。其中一些主要的类包括:
-
QApplication:应用程序类,负责管理应用程序的控制流程和事件循环。
-
QMainWindow:主窗口类,提供了一个应用程序的主界面。
-
QWidget:窗口部件类,是所有用户界面元素的基类。
-
QLabel:标签类,用于显示文本或图像。
-
QPushButton:按钮类,用于触发事件。
-
QLineEdit:单行文本框类,用于输入单行文本。
-
QTextEdit:多行文本框类,用于输入和显示多行文本。
-
QComboBox:下拉框类,用于选择列表中的一个选项。
-
QSpinBox:微调框类,用于输入和显示数字。
-
QCheckBox:复选框类,用于选择一个或多个选项。
-
QRadioButton:单选框类,用于选择一个选项。
-
QProgressBar:进度条类,用于显示任务的进度。
-
QSlider:滑块类,用于调整数值。
-
QTableWidget:表格类,用于显示和编辑表格数据。
-
QTreeView:树形视图类,用于显示树形结构。
-
QDockWidget:停靠窗口类,用于显示可停靠的窗口。
二、主要类的用法
下面我会对上面提到的所有模块都进行一个简单的举例说明。
1.QApplication
import sys
from PyQt5.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
window = QWidget()
window.show()
sys.exit(app.exec_())
这段代码创建了一个空白的窗口并显示出来,实现了一个最简单的GUI应用程序。其结果如下图所示:
2.QMainWindow
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
app = QApplication(sys.argv)
window = QMainWindow()
window.show()
sys.exit(app.exec_())
这段代码创建了一个带有菜单栏、工具栏和状态栏的主窗口,并显示出来。结果如下图所示:
3.QWidget
import sys
from PyQt5.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('My First PyQt5 App')
window.setGeometry(100, 100, 400, 300)
window.show()
sys.exit(app.exec_())
这段代码创建了一个带有标题和初始位置大小的窗口,并显示出来。结果如下图所示:
4.QLabel
import sys
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication(sys.argv)
label = QLabel('Hello, PyQt5!')
label.show()
sys.exit(app.exec_())
这段代码创建了一个显示文本的标签,并显示出来。结果如下图所示:
5.QPushButton
import sys
from PyQt5.QtWidgets import QApplication, QPushButton
app = QApplication(sys.argv)
button = QPushButton('Click me')
button.show()
sys.exit(app.exec_())
这段代码创建了一个带有文本的按钮,并显示出来。结果如下图所示:
6.QLineEdit
import sys
from PyQt5.QtWidgets import QApplication, QLineEdit
app = QApplication(sys.argv)
lineedit = QLineEdit()
lineedit.show()
sys.exit(app.exec_())
这段代码创建了一个单行文本框,并显示出来。结果如下图所示,其中的文字可以自行编写。
7.QTextEdit
import sys
from PyQt5.QtWidgets import QApplication, QTextEdit
app = QApplication(sys.argv)
textedit = QTextEdit()
textedit.show()
sys.exit(app.exec_())
这段代码创建了一个多行文本框,并显示出来。结果如下图所示,其中文字可自行编写。
8.QComboBox
import sys
from PyQt5.QtWidgets import QApplication, QComboBox
app = QApplication(sys.argv)
combobox = QComboBox()
combobox.addItems(['Apple', 'Banana', 'Orange'])
combobox.show()
sys.exit(app.exec_())
这段代码创建了一个下拉框,并添加了三个选项,然后显示出来。结果如下图所示:
9.QSpinBox
import sys
from PyQt5.QtWidgets import QApplication, QSpinBox
app = QApplication(sys.argv)
spinbox = QSpinBox()
spinbox.setMinimum(1)
spinbox.setMaximum(10)
spinbox.show()
sys.exit(app.exec_())
这段代码创建了一个微调框,并设置了范围,然后显示出来。结果如下图所示,其中数字通过上下按键可以调节到1~10中任意数:
10.QCheckBox
import sys
from PyQt5.QtWidgets import QApplication, QCheckBox
app = QApplication(sys.argv)
checkbox = QCheckBox('Check me')
checkbox.show()
sys.exit(app.exec_())
这段代码创建了一个复选框,并显示出来。结果如下图所示:
11.QRadioButton
import sys
from PyQt5.QtWidgets import QApplication, QRadioButton
app = QApplication(sys.argv)
radiobutton = QRadioButton('Select me')
radiobutton.show()
sys.exit(app.exec_())
这段代码创建了一个单选框,并显示出来。结果如下图所示:
12.QProgressBar
import sys
from PyQt5.QtWidgets import QApplication, QProgressBar
app = QApplication(sys.argv)
progressbar = QProgressBar()
progressbar.setValue(50)
progressbar.show()
sys.exit(app.exec_())
这段代码创建了一个进度条,并设置了进度值50%,然后显示出来。结果如下图所示:
13.QSlider
import sys
from PyQt5.QtWidgets import QApplication, QSlider
app = QApplication(sys.argv)
slider = QSlider()
slider.setMinimum(0)
slider.setMaximum(100)
slider.show()
sys.exit(app.exec_())
这段代码创建了一个滑块,并设置了范围,然后显示出来。结果如下图所示:
14.QTableWidget
import sys
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
app = QApplication(sys.argv)
tablewidget = QTableWidget()
tablewidget.setRowCount(2)
tablewidget.setColumnCount(2)
tablewidget.setItem(0, 0, QTableWidgetItem('Apple'))
tablewidget.setItem(0, 1, QTableWidgetItem('Red'))
tablewidget.setItem(1, 0, QTableWidgetItem('Banana'))
tablewidget.setItem(1, 1, QTableWidgetItem('Yellow'))
tablewidget.show()
sys.exit(app.exec_())
这段代码创建了一个表格,并设置了行列数和单元格内容,然后显示出来。结果如下图所示:
15.QTreeView
import sys
from PyQt5.QtWidgets import QApplication, QTreeView, QFileSystemModel
app = QApplication(sys.argv)
treeview = QTreeView()
model = QFileSystemModel()
model.setRootPath('')
treeview.setModel(model)
treeview.show()
sys.exit(app.exec_())
这段代码创建了一个树形视图,并显示出当前目录的文件和文件夹。结果如下图所示:
16.QDockWidget
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QDockWidget, QTextEdit
app = QApplication(sys.argv)
window = QMainWindow()
dockwidget = QDockWidget('Dock')
textedit = QTextEdit()
dockwidget.setWidget(textedit)
window.addDockWidget(1, dockwidget)
window.show()
sys.exit(app.exec_())
这段代码创建了一个停靠窗口,并将一个文本框添加到其中,然后显示出来。结果如下图所示,其中Dock窗口可以悬浮也可以停靠。
总结
以上就是今天要讲的内容,本文简单介绍了PyQt5.QtWidgets的常用类的使用方法,希望对大家有所帮助。