콘솔과 QTextBrowser
위젯 모두에 stdout을 보내려고합니다. 하지만 무한 루프가 발생하고 응용 프로그램이 종료됩니다.표준 출력을 리디렉션하려고 할 때 무한 루프
"C:\...\python.exe" "E:/.../qt_gui.py"
Pressed!
Pressed!
Pressed!
... (totaly 332 times)
Pressed!
Pressed!
Pressed!
Process finished with exit code 1
난 그냥 이해할 수 없다 : 결과
import sys
from PyQt5 import QtWidgets, uic
from PyQt5.QtCore import *
qtCreatorFile = "qt_ui.ui"
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
self.start_button.clicked.connect(printing)
def printing():
print("Pressed!\n")
class Logger(QObject):
def __init__(self):
super().__init__()
self.terminal = sys.stdout
def write(self, message):
self.terminal.write(message)
self.log_browser.setText(message) #problem is in this line
def flush(self):
pass
if __name__ == "__main__":
sys.stdout = Logger()
app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
, 클릭 START_BUTTON이 관찰된다 다음 : 여기
내 코드입니다self.log_browser.setText(message)
1 차 답차 후 편집 :
위의 행을 print(message)
으로 바꾸었지만 여전히 동일한 결과가 나타납니다. 나는 어떤 도움을 주셔서 감사합니다.
는 클래스 (고화질) –
아래에 들여 쓰기 오류가있다 그것은 복사/붙여 넣기 오류가 아닌 원래의 코드에서였다. 나는 그것을 바로 잡았다. – dandepeched