创建虚拟环境
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_())
