PyQt简单做一个GUI

创建虚拟环境

bash 复制代码
conda create --name PyQt python=3.10.0

进入虚拟环境

下载PyQt

bash 复制代码
pip install pyqt5 pyqt5-tools 

打开Qt中的designer.exe,编写一个简单的界面

保存为*.ui文件,打开终端,利用下面的命令将ui文件转换为python文件

bash 复制代码
pyuic5 -o main_window.py untitled.ui

编写主程序

新建一个*.py文件,与之前ui转换的py文件放在同一目录下,编写代码:

python 复制代码
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from main_window import Ui_MainWindow   #  pyuic5 生成文件的名称 (名称 import class名称)

class MyMainWindow(QMainWindow, Ui_MainWindow):#窗口类 继承 Ui_MainWindow
    def __init__(self):
        super().__init__()
        self.setupUi(self)  # 加载 UI
        self.pushButton.clicked.connect(self.hahh) #按钮点击事件,与ui中的按钮名称一致 pushButton
    def hahh(self):#按钮点击事件,定义一个函数,下面用来写功能
            print("Button clicked!")    

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyMainWindow()
    window.show()
    sys.exit(app.exec_())

运行成功

这里写一个将终端结果输出在界面上的框架,以供日后使用

新建一个空间

python 复制代码
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from main_window import Ui_MainWindow

class EmittingStream:
    def __init__(self, text_widget):
        self.text_widget = text_widget

    def write(self, text):
        self.text_widget.appendPlainText(text)

    def flush(self):
        pass

class MyMainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        # 重定向 stdout/stderr 到 UI 里的 QPlainTextEdit
        sys.stdout = EmittingStream(self.plainTextEdit)
        sys.stderr = EmittingStream(self.plainTextEdit)

        self.pushButton.clicked.connect(self.clickbutton1)

    def clickbutton1(self):
        print("Button clicked!")  # 输出会显示在 plainTextEdit
        # TODO: 如果运行 exe,要用线程或 QProcess

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyMainWindow()
    window.show()
    sys.exit(app.exec_())
相关推荐
民乐团扒谱机3 天前
【超详细】PyQt6 实现 AU 风格波形图编辑器:多级缩放与采样点逐级渲染,附全过程代码
开发语言·python·编辑器·pyqt·audition·时域·频谱图
典典分享指南4 天前
Excel SUMIFS 跨表汇总实战:多表条件求和的完整指南
django·flask·numpy·pyqt·fastapi
狮子雨恋7 天前
【无标题】
pyqt
微小冷9 天前
pyqt+matplotlib多进程图像刷新
pyqt·matplotlib·进程通信·多进程·queue·process
千里码aicood10 天前
PyQt基于卷积神经网络的智慧校园的设计与实现
人工智能·cnn·pyqt
千里码aicood10 天前
基于PyQt心理咨询机器人智能系统的设计与实现
机器人·pyqt
典典分享指南10 天前
Windows 自动化踩坑实录
python·intellij-idea·pyqt·emacs·visual studio
深蓝海拓13 天前
基于QtPy (PySide6) 的PLC-HMI工程实战记录(五)为当前动作画面的信号连接变量
网络·笔记·python·学习·pyqt
智购科技自动售卖机厂家16 天前
2026自动售货机OTA升级系统设计:从全量升级到差分升级的带宽优化工程实践~YH
大数据·人工智能·numpy·pyqt·fastapi
【赫兹威客】浩哥16 天前
【无标题】
python·spring·django·pyqt