【Hello,PyQt】最简单的一些pyqt5程序

【Hello,PyQt】最简单的一些pyqt5程序

pyqt5中的常用模块

模块 描述
qtWidgets 提供了一系列的 UI 组件,如按钮、文本框、窗口等。
QtGui 包含了绘图、颜色、字体等图形相关的功能。
QtCore 提供了核心的非图形功能,如事件处理、定时器等。
Qt***work 用于网络编程,支持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_())进入应用程序的主事件循环,确保在用户关闭窗口时应用程序能够干净地退出。

窗口居中

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_())

关闭窗口

关闭一个窗口最直接的方式就是点击标题栏的那个叉,这个例子展示的是通过点击一个按钮关闭窗口,这会提前接触到一下信号和槽的知识。

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):
# 显示信息框
QMessageBox.information(None, '标题', '这是一条信息')
  • 警告框 (Warning Box):
# 显示警告框
QMessageBox.warning(None, '标题', '这是一条警告')
  • 错误框 (Error Box):
# 显示错误框
QMessageBox.critical(None, '标题', '发生了错误')
  • 提问框 (Question Box):
# 显示提问框
result = QMessageBox.question(None, '标题', '确定要执行吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if result == QMessageBox.Yes:
    print('用户选择了确定')
else:
    print('用户选择了取消')
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.a***ept()
        else:
            event.ignore()

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
  • 程序预览

创建提示框

创建提示框需要导入QToolTip和QFont模块
QToolTip 用于显示工具提示信息,提供用户鼠标悬停在组件上时的额外信息,通过使用setToolTip即可为组件设置提示信息,这里导入QFont模块是为了给提示框中的文字设置字体。

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_())
  • 程序预览

转载请说明出处内容投诉
CSS教程_站长资源网 » 【Hello,PyQt】最简单的一些pyqt5程序

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买