0
私はシステム管理者です。これはPythonを使用して何かを達成しようとしているとき初めてです。私はQthreadでbatファイルを実行する小さなpythonツールを開発しています。 GUI上では、batファイルから出力/エラーを更新したいtexteditボックスがあります。メインからQthreadからGuiへのバットファイルの出力を更新する
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)
- - ここで
は、私がこれまで持っているコード、QThreadです
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()
が、私は取得しています - 例外TypeError:[STR] runbat.line_printed。 emit():引数1に予期しない型 'bytes'があります。別の質問は、stdoutがエラーをキャッチするか出力するだけで、エラーをキャッチするために何が必要なのでしょうか?