| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import asyncio
- import logging
- import os
- import re
- import sys
- import time
- from typing import TextIO
- import queue
- # sys.path.append(os.path.dirname(__file__))
- # 必须要把 ui 目录添加到系统路径,否则子目录文件 ui_MainWindows.py 无法 import 资源文件
- sys.path.append(os.path.join(os.path.dirname(__file__), 'ui'))
- import threading
- from PySide2.QtWidgets import QApplication, QMainWindow
- from PySide2.QtUiTools import QUiLoader
- from PySide2.QtWidgets import *
- from PySide2.QtCore import *
- from PySide2 import QtCore
- from PySide2.QtGui import QTextCursor
- from ui.ui_MainWindows import Ui_MainWindow
- # from ui.log import Ui_Form
- from ui.ui_TimingAnalyze import Ui_TimingWindow
- from main_windows import MainWindow
- class Stream2(TextIO):
- def __init__(self,sig):
- super().__init__()
- self.newText = sig
-
- def write(self, __s) -> int:
- self.newText.emit(__s)
- # self.
- # return super().write(__s)
- app = None
- mainWindows:MainWindow = None
- sub_thread = None
- exit_flag = False
- def run_forever(GUI):
- global app,mainWindows
- QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts)
- app = QApplication(sys.argv)
- mainWindows = MainWindow(GUI)
- mainWindows.sig.connect(handle_signal)
- # TODO test
- mainWindows.GUI.Elaborate("ela", True)
- app.exec_()
-
- def run_in_thread(GUI:QObject):
- global sub_thread
- sub_thread = threading.Thread(target=run_forever, args=(GUI,))
- sub_thread.setDaemon(True)
- sub_thread.start()
- time.sleep(0.01)
- return sub_thread
- def signale(dat):
- mainWindows.sig.emit(dat)
- def handle_signal(dat):
- # print('dat:', dat)
- if isinstance(dat, str):
- dat = dat.lower()
- if dat == 'start':
- mainWindows.show()
- elif dat == 'stop':
- mainWindows.hide()
- elif dat == 'exit':
- mainWindows.dc_shell_thread.quit()
- mainWindows.dc_shell_thread.wait(5)
- mainWindows.close()
- else:
- mainWindows.sub_win.sig.emit(dat)
-
- def StopGui():
- return mainWindows.hide()
- def StartGui():
- return mainWindows.show()
- def exit():
- signale('exit')
- sub_thread.join()
- if __name__ == '__main__':
- run_forever(1)
- # sys.stdout = Stream()
- # sys.stdout.newText.connect(stderr_)
- # print('ok')
|