小编Jer*_*Yip的帖子

PyQt5 - 类型错误:信号有 0 个参数,但提供了 1 个参数

我正在尝试将“sys.stdout”重定向到QTextEdit,这是我的代码:

class Communicate(QObject):  
    printText = pyqtSignal()
    def write(self, text):
        self.printText.emit(str(text))

class UI(QWidget):
    def __init__(self, parent = None):
        QWidget.__init__(self)
        ...
        self.textedit = QTextEdit(self)
        self.textedit.setGeometry(400,20,220,300)
        self.c = Communicate()
        self.c.printText.connect(self.textedit.insertPlainText)
        sys.stdout = self.c


if __name__ == "__main__":
    ...
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我得到了TypeError: Communicate.printText[] signal has 0 argument(s) but 1 provided. 但是当我试图不提供任何参数时self.printText.emit(),它说self.textedit.insertPlainText需要 1 个参数。我错过了什么?您的回答将不胜感激。

python stdout signals-slots qtextedit pyqt5

3
推荐指数
1
解决办法
2666
查看次数

标签 统计

pyqt5 ×1

python ×1

qtextedit ×1

signals-slots ×1

stdout ×1