pyqt5中的常用模块
模块 | 描述 |
---|---|
QtWidgets |
提供了一系列的 UI 组件,如按钮、文本框、窗口等。 |
QtGui |
包含了绘图、颜色、字体等图形相关的功能。 |
QtCore |
提供了核心的非图形功能,如事件处理、定时器等。 |
QtNetwork |
用于网络编程,支持TCP、UDP等协议。 |
QtSql |
提供了数据库访问功能,支持多种数据库。 |
QtMultimedia |
处理多媒体相关的功能,如音频、视频。 |
QtPrintSupport |
提供打印支持的模块。 |
QtWebEngine |
用于集成 Web 内容到应用程序中。 |
QtXml |
处理 XML 数据的模块。 |
QtSvg |
用于处理 SVG 图形的模块。 |
QtWebSockets |
提供了 WebSocket 支持。 |
QtTest |
用于编写单元测试的模块。 |
QtDesigner |
用于创建和编辑 Qt 界面的可视化工具。 |
第一个窗口
python
import sys
from PyQt5.QtWidgets import QMainWindow,QApplication,QWidget
class FirstMainWin(QMainWindow):
def __init__(self):
super(FirstMainWin,self).__init__()
#设置窗口尺寸
self.resize(300,300)
#设置窗口标题
self.setWindowTitle("第一个pyqt窗口")
if __name__=="__main__":
app=QApplication(sys.argv)
firstWin=FirstMainWin()
firstWin.show()
sys.exit(app.exec_())
- 程序预览
QMainWindow
用于创建主窗口,QApplication
管理应用程序的控制流,而QWidget
是所有用户界面对象的基类。
每个 PyQt5 应用都必须创建一个应用对象,即QApplication类的实例,这是任何PyQt5应用程序的起点。firstWin是实例化了的FirstMainWin类,并通过show()方法显示了主窗口。最后,通过sys.exit(app.exec_())进入应用程序的主事件循环,确保在用户关闭窗口时应用程序能够干净地退出。
窗口居中
python
mport sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QDesktopWidget
class CenterWindow(QMainWindow):
def __init__(self):
super(CenterWindow, self).__init__()
# 设置窗口尺寸
self.resize(300, 300)
# 设置窗口标题
self.setWindowTitle("窗口居中")
# 窗口居中
def center(self):
# 获取屏幕坐标
screen = QDesktopWidget().screenGeometry()
# 获取窗口坐标
size = self.geometry()
newLeft = (screen.width() - size.width()) / 2
newTop = (screen.height() - size.height()) / 2
self.move(newLeft, newTop)
if __name__ == "__main__":
app = QApplication(sys.argv)
firstWin = CenterWindow()
firstWin.show()
firstWin.center()
sys.exit(app.exec_())
关闭窗口
关闭一个窗口最直接的方式就是点击标题栏的那个叉,这个例子展示的是通过点击一个按钮关闭窗口,这会提前接触到一下信号和槽的知识。
python
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QDesktopWidget
from PyQt5.QtWidgets import QPushButton
class CloseWindow(QMainWindow):
def __init__(self):
super(CloseWindow, self).__init__()
# 设置窗口尺寸
self.resize(300, 300)
# 添加button
self.button = QPushButton("退出应用程序",self)
# 关联信号和槽
self.button.clicked.connect(self.onClick_Button)
def onClick_Button(self):
sender = self.sender()
print(sender.text() + "按钮按下")
app = QApplication.instance()
app.quit()
if __name__ == "__main__":
app = QApplication(sys.argv)
Win = CloseWindow()
Win.show()
sys.exit(app.exec_())
- 程序预览
创建按钮使用了QPushButton(string text, QWidget parent = None)
函数,第一个参数text是按钮上显示的文字,第二个参数指明按钮放在那个组件上
self.button.clicked.connect(self.onClick_Button)
这一行代码建立了一个信号(Signal)和槽(Slot)的连接。在PyQt中,信号和槽是用于处理事件和响应的机制。
简单介绍一下信号和槽
- 信号(Signal): 是一个对象发出的事件,比如按钮被点击、文本框内容改变等。在这里,clicked 是QPushButton类的一个信号,按钮被点击时发出。
- 槽(Slot): 是一个接收信号的方法,用于处理信号触发的事件。在这里,self.onClick_Button 是一个槽,是在按钮被点击发出clicked信号后要执行的方法。
通过使用 connect
方法,告诉 程序当按钮的 clicked
信号被触发时,调用 self.onClick_Button
方法。
onClick_Button
方法被调用时,它获取了发出信号的对象(通过self.sender()
获取),打印出按钮的文本,并通过 QApplication.instance().quit()
退出应用程序。QApplication.instance()
是 PyQt 中的一个静态方法,它返回当前运行的应用程序的唯一实例序。
消息盒子
QMessageBox
通常用于向用户提供一些信息、询问确认或警告等。它是基于 QDialog
类的一种简便的实现,提供了几种预定义的对话框类型。使用时要从PyQt5.QtWidgets
中导入QMessageBox
模块
下面是一些常见的 QMessageBox
- 信息框 (Information Box):
python
# 显示信息框
QMessageBox.information(None, '标题', '这是一条信息')
- 警告框 (Warning Box):
python
# 显示警告框
QMessageBox.warning(None, '标题', '这是一条警告')
- 错误框 (Error Box):
python
# 显示错误框
QMessageBox.critical(None, '标题', '发生了错误')
- 提问框 (Question Box):
python
# 显示提问框
result = QMessageBox.question(None, '标题', '确定要执行吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if result == QMessageBox.Yes:
print('用户选择了确定')
else:
print('用户选择了取消')
python
import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('消息盒子')
self.show()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message',
"确定要退出吗?", QMessageBox.Yes |
QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
- 程序预览
创建提示框
创建提示框需要导入QToolTip和QFont模块
QToolTip 用于显示工具提示信息,提供用户鼠标悬停在组件上时的额外信息,通过使用setToolTip即可为组件设置提示信息,这里导入QFont模块是为了给提示框中的文字设置字体。
python
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QPushButton, QToolTip
from PyQt5.QtGui import QFont
class TooltipWin(QMainWindow):
def __init__(self):
super(TooltipWin, self).__init__()
self.initUI()
def initUI(self):
QToolTip.setFont(QFont('楷体', 12))
self.setToolTip('我是一个窗口')
# 设置窗口位置和尺寸
self.setGeometry(300, 300, 640, 480)
# 设置窗口标题
self.setWindowTitle("ToolTip")
self.btn=QPushButton('button',self)
self.btn.setToolTip('我是一个按钮')
if __name__ == "__main__":
app = QApplication(sys.argv)
firstWin = TooltipWin()
firstWin.show()
sys.exit(app.exec_())
-
程序预览