PyQt6 学习记录1

发布于:2025-02-11 ⋅ 阅读:(70) ⋅ 点赞:(0)

简介

PyQt6 是基于 Python 的一系列模块。它是一个多平台的工具包,可以在包括 Unix、Windows 和 Mac OS 在内的大部分主要操作系统上运行。

安装

pip install PyQt6

模块

- QtCore
- QtGui
- QtWidgets
- QtDBus
- QtNetwork
- QtHelp
- QtXml
- QtSvg
- QtSql
- QtTest

QtCore 模块是非 GUI 的核心库。这个模块用来处理时间、文件、目录、各种类型的数据、流 (stream)、URLs,mime 类型、线程和进程。
QtGui 有窗口系统集成、事件处理、2D 图形,基本图像、字体、文本的类。
QtWidgets 有创建经典风格的用户界面的类。

QtDBus 是使用 D-Bus 处理 IPC 通讯的类。
QtNetwork 是网络变成类,这些类使网络编程变得更容易,可移植性也更好,方便了 TCP/IP 和 UDP 服务端和客户端编程。
QtHelp 包含了创建、查看和搜索文档的类。

QtXml 包含了处理 XML 文件的类,实现了 SAX 和 DOM API。
QtSvg 提供了显示 SVG 的类,可缩放矢量图形 (SVG) 是一种描述二维图像和图像应用的 XML 语言。
QtSql 模块提供了数据库的类,
QtTest 提供了可以对 PyQt6 应用进行单元测试的工具。

第一个程序

#!/usr/bin/python

import sys
from PyQt6.QtWidgets import QApplication, QWidget


def main():
	# 创建一个应用程序对象 ,sys.argv 获取命令行的参数列表
    app = QApplication(sys.argv)

    w = QWidget()
    # 设置窗口尺寸
    w.resize(250, 200)
    # move 移动到屏幕的指定坐标
    w.move(300, 300)
	# 设置窗口标题
    w.setWindowTitle('first PyQt')
    w.show()

    sys.exit(app.exec())


if __name__ == '__main__':
    main()
窗口居中
#!/usr/bin/python

import sys
from PyQt6.QtWidgets import QWidget, QApplication


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.resize(350, 250)
        self.center()

        self.setWindowTitle('Center')
        self.show()

    def center(self):
		# 得到一个矩形的窗口,这里可以放置所有类型的窗口
        qr = self.frameGeometry()
        # 从屏幕属性里计算出分辨率,然后计算出中心点位置。
        cp = self.screen().availableGeometry().center()
		# 把矩形窗口的中心点放置到屏幕窗口的中心点
        qr.moveCenter(cp)
        # 把应用窗口的左上方点坐标移动到矩形窗口的左上方
        self.move(qr.topLeft())


def main():

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec())


if __name__ == '__main__':
    main()
弹窗
#!/usr/bin/python

import sys
from PyQt6.QtWidgets import QWidget, QMessageBox, QApplication


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.setGeometry(300, 300, 350, 200)
        self.setWindowTitle('Message box')
        self.show()

	# 关闭 QWidget 操作会产生 QCloseEvent 事件。重新实现 closeEvent 事件处理,替换部件的默认行为。
    def closeEvent(self, event):
		"""
		带有两个按钮的消息框:是和否。
		第一个参数是标题栏,
		第二个参数是对话框显示的消息文本,
		第三个参数是对话框中的按钮组合,
		最后一个参数是默认选中的按钮
		"""
        reply = QMessageBox.question(self, 'Message',
                    "Are you sure to quit?", QMessageBox.StandardButton.Yes |
                    QMessageBox.StandardButton.No, QMessageBox.StandardButton.No)

        if reply == QMessageBox.StandardButton.Yes:

            event.accept()
        else:

            event.ignore()


def main():
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec())


if __name__ == '__main__':
    main()

网站公告

今日签到

点亮在社区的每一天
去签到