0
我是系统管理员,这是我第一次尝试使用Python实现某些功能。我正在研究一个可以在Qthread中运行bat文件的小型python工具。在GUI上,我有一个textedit框,我想从bat文件更新输出/错误。更新从Qthread到Gui的bat文件输出
这里是我的代码到目前为止,
的QThread -
class runbat(QtCore.QThread):
line_printed = QtCore.pyqtSignal(str)
def __init__(self,):
super(runbat, self).__init__()
def run(self):
popen = subprocess.Popen("install.bat", stdout=subprocess.PIPE, shell=True)
lines_iterator = iter(popen.stdout.readline, b"")
for line in lines_iterator:
self.line_printed.emit(line)
从主 -
self.batfile.line_printed.connect(self.batout)
def batout(self, line):
cursor = self.ui.textEdit.textCursor()
cursor.movePosition(cursor.End)
cursor.insertText(line)
self.ui.textEdit.ensureCursorVisible()
,但我得到 - 类型错误:runbat.line_printed [STR]。 emit():参数1具有意外的类型'字节'。另一个问题是stdout是否捕获错误或者只是输出,我还需要什么来捕获错误?