11from PySide6 .QtCore import Qt
2- from PySide6 .QtWidgets import QFileDialog , QMessageBox , QWidget
2+ from PySide6 .QtWidgets import (
3+ QDialog ,
4+ QFileDialog ,
5+ QMessageBox ,
6+ QTextBrowser ,
7+ QVBoxLayout ,
8+ QWidget ,
9+ )
310
411"""
512由于各种对话框的设置代码较繁琐且独立,故单独在本模块中配置
@@ -86,6 +93,36 @@ def about_text(self) -> str:
8693 return self ._about_text
8794
8895
96+ class SubProcessDlg (QDialog ):
97+ """用于显示子进程信息的对话框"""
98+
99+ def __init__ (self , parent : QWidget = None ) -> None :
100+ super (SubProcessDlg , self ).__init__ (parent = parent )
101+ self .browser = QTextBrowser ()
102+ self ._setup ()
103+
104+ def _setup (self ):
105+ """
106+ 配置子进程信息对话框 \n
107+ """
108+
109+ layout = QVBoxLayout ()
110+ layout .addWidget (self .browser )
111+ self .setLayout (layout )
112+
113+ def handle_output (self , subprocess_output : tuple [int , str ]):
114+ """
115+ 处理子进程的输出 \n
116+ :param subprocess_output: 子进程输出
117+ :return: None
118+ """
119+ output_type , output_text = subprocess_output
120+ if output_type == 2 :
121+ self .browser .append (output_text )
122+ elif output_type == 3 :
123+ self .browser .append (output_text )
124+
125+
89126if __name__ == "__main__" :
90127 import sys
91128
@@ -95,6 +132,7 @@ def about_text(self) -> str:
95132 # window = ScriptFileDlg()
96133 # window = IconFileDlg()
97134 # window.fileSelected.connect(lambda f: print(f)) # type: ignore
98- window = AboutMessage ()
135+ # window = AboutMessage()
136+ window = SubProcessDlg ()
99137 window .open ()
100138 sys .exit (app .exec ())
0 commit comments