目前进展
使用PySide2写了图形化界面,目前只修改了一点bug,基本能保证软件的流畅运行,几个注意点:
- 界面更新在主线程中进行,更新的数据在QThread线程中获得,切忌在python的线程中,否则会导致界面卡死,QThread使用方法见下
- 当主界面存在两个QLabel,需要显示两张图时,第二张图会对第一张产生影响,需要为每个QLabel添加box边框并且设置sizepolicy为ignore
- 使用访问本地文件浏览器时,如果卡死,可以使用和本地浏览器不同的浏览器
- 别在虚拟环境中pyinstaller,会导致虚拟环境直接G!很难受,重新搞环境
import time import sys
from PyQt5.QtWidgets import QApplication
from gui.mainwindow import MainWindow
from PyQt5.QtWidgets import QMainWindow from PyQt5.QtCore import QThread, pyqtSignal from .ui_mainwindow import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setupUi(self)
self.thread = Worker() self.thread.sig.connect(self.updateLabel)
self.pushButton.clicked.connect(self.buttonClicked)
def buttonClicked(self): self.thread.start()
def updateLabel(self, text): self.label.setText(text)
class Worker(QThread): sig = pyqtSignal(str)
def __init__(self, parent=None): super(Worker, self).__init__(parent) self.count = 0
def run(self):
while True: time.sleep(1) self.count += 1 if (self.count % 5 == 0): self.sig.emit(f"已执行{self.count}秒")
if __name__ == '__main__': app = QApplication(sys.argv) main_window = MainWindow() main_window.show() sys.exit(app.exec_())
|
写出来的界面还可以,嘿嘿
下一步打算
有时间优化优化界面(其实也不需要了,基本功能都满足)
从 pytorch——>onnx——>tensorrt 路线实现加速推理