1010from threading import Thread
1111
1212from PySide6 .QtCore import QTimer
13- from je_editor import error_color , output_color
13+ from je_editor import user_setting_color_dict
1414
1515from automation_editor .automation_editor_ui .show_code_window .code_window import CodeWindow
1616from automation_editor .utils .exception .exception_tags import compiler_not_found_error
@@ -77,7 +77,8 @@ def start_test_process(self, package: str, exec_str: str):
7777 exec_str
7878 ],
7979 stdout = subprocess .PIPE ,
80- stderr = subprocess .PIPE
80+ stderr = subprocess .PIPE ,
81+ shell = True
8182 )
8283 self .still_run_program = True
8384 # program output message queue thread
@@ -104,18 +105,19 @@ def start_test_process(self, package: str, exec_str: str):
104105 # Pyside UI update method
105106 def pull_text (self ):
106107 try :
107- self .main_window .code_result .setTextColor (error_color )
108- if not self .run_error_queue .empty ():
109- error_message = self .run_error_queue .get_nowait ()
110- error_message = str (error_message ).strip ()
111- if error_message :
112- self .main_window .code_result .append (error_message )
113- self .main_window .code_result .setTextColor (output_color )
108+ self .main_window .code_result .setTextColor (user_setting_color_dict .get ("normal_output_color" ))
114109 if not self .run_output_queue .empty ():
115110 output_message = self .run_output_queue .get_nowait ()
116111 output_message = str (output_message ).strip ()
117112 if output_message :
118113 self .main_window .code_result .append (output_message )
114+ self .main_window .code_result .setTextColor (user_setting_color_dict .get ("error_output_color" ))
115+ if not self .run_error_queue .empty ():
116+ error_message = self .run_error_queue .get_nowait ()
117+ error_message = str (error_message ).strip ()
118+ if error_message :
119+ self .main_window .code_result .append (error_message )
120+ self .main_window .code_result .setTextColor (user_setting_color_dict .get ("normal_output_color" ))
119121 except queue .Empty :
120122 pass
121123 if self .process is not None :
@@ -144,23 +146,10 @@ def exit_program(self):
144146 self .print_and_clear_queue ()
145147 if self .process is not None :
146148 self .process .terminate ()
147- print (f"Task exit with code { self .process .returncode } " )
149+ self . main_window . code_result . append (f"Task exit with code { self .process .returncode } " )
148150 self .process = None
149151
150152 def print_and_clear_queue (self ):
151- try :
152- for std_output in iter (self .run_output_queue .get_nowait , None ):
153- std_output = str (std_output ).strip ()
154- if std_output :
155- self .main_window .code_result .append (std_output )
156- self .main_window .code_result .setTextColor (error_color )
157- for std_err in iter (self .run_error_queue .get_nowait , None ):
158- std_err = str (std_err ).strip ()
159- if std_err :
160- self .main_window .code_result .append (std_err )
161- self .main_window .code_result .setTextColor (output_color )
162- except queue .Empty :
163- pass
164153 self .run_output_queue = queue .Queue ()
165154 self .run_error_queue = queue .Queue ()
166155
0 commit comments