【发布时间】:2021-04-04 23:06:30
【问题描述】:
我希望用户在lineEdit_0 中输入一个值并在文本浏览器中打印该值。但我发现了以下错误。请问我知道怎么解决吗?
printf() takes 2 positional arguments but 3 were given
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
#MainWindow Title
self.setWindowTitle("Pandora Box")
#Set Window Icon
self.setWindowIcon(QtGui.QIcon(r''))
# Background Palette
palette = QtGui.QPalette()
palette.setBrush(self.backgroundRole(), QtGui.QColor(70,70,70))
self.setPalette(palette)
#StatusBar
self.statusBar().showMessage("Coming Soon")
# Text Browser
self.tb = self.ui.textBrowser
self.tb.setAcceptRichText(True)
self.tb.setOpenExternalLinks(True)
#Click Button Effect
self.ui.pushButton.setText('Display')
text = self.ui.lineEdit_0.text() #Error
self.ui.pushButton.clicked.connect(self.printf(self, text)) #Error
def printf(self, mes):
self.tb.append(mes)
self.cursot = self.tb.textCursor()
self.tb.moveCursor(self.cursot.End)
if __name__ == '__main__':
app = QtWidgets.QApplication([])
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec())
【问题讨论】:
-
这里没有必要将self作为agrument:
self.ui.pushButton.clicked.connect(self.printf(self, text)) #Error尝试使用self.ui.pushButton.clicked.connect(self.printf(text)) -
弹出另一个错误“argument 1 has unexpected type 'NoneType'”
-
好的,你能给我 Ui_MainWindow 类,这样我就可以重新创建代码并运行它。请检查 text 变量是否不是 None 类型
-
@crackanddie 用户界面无关紧要,原因很简单:信号连接需要对可调用对象的引用。