gpt4 book ai didi

python - PyQt5 - 类型错误 : signal has 0 argument(s) but 1 provided

转载 作者:行者123 更新时间:2023-12-05 01:44:20 26 4
gpt4 key购买 nike

我正在尝试将“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__":
...

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

最佳答案

定义信号时需要指定参数。此外,您可能应该提供一个虚拟的 flush 方法,以避免属性错误:

class Communicate(QObject):
printText = pyqtSignal(str)

def write(self, text):
self.printText.emit(text)

def flush(self):
pass

关于python - PyQt5 - 类型错误 : signal has 0 argument(s) but 1 provided,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46693355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com