我在为QLineEdit分配值时遇到了一些麻烦。我已阅读文档,并认为将在某些时候使用QLineEdit.SetText()命令。
我使用Qt Designer为我的软件设计GUI。在主窗口(MainWindow.py,附带ui_MainWindow.py设置文件)上,我有一个强烈关注的LineEdit(lineEditScanBarcode)。我已经设法很好地从LineEdit中获取输入。我想做的是:
如果LineEditScanBarcode = x中的输入,则将名称“John Smith”分配给具有零焦点策略的辅助QLineEdit(lineEditUser)。这就是我到目前为止所做的:
def ScanBarcode(self):
barcode = self.lineEditScanBarcode.text()
self.lineEditScanBarcode.clear()
if barcode == '12345':
print("Welcome John")
self.lineEditUser.setText() = 'John'
else: print("Sorry, user not recognised.")
运行此操作后,我收到以下错误:
Syntax Error: can't assign to function call
我已经看过上面的错误,但我仍然不确定这里发生了什么。我仍然不知道打开另一个窗口(这个软件包将有大约10个窗口),但这是另一个故事!
我的逻辑是否在轨道上?我之前从未使用过Qt,所以我对所涉及的错综复杂的理解至少是缺乏的。
任何输入都会很棒!
答案 0 :(得分:1)
正如评论所述,错误就在这一行:
self.lineEditUser.setText() = 'John'
您正尝试将值'John'
分配给该功能调用(作为错误状态)。如果您查看QLineEdit in PyQT的文档,则会看到QLineEdit.setText()
需要传递一个字符串。
所以,你需要做的是将值'John'
传递给函数,如下所示:
self.lineEditUser.setText('John')
另一方面请注意您的想法
软件包将有大约10个窗口
绝对是您想要重新审视的内容。更多的窗户,特别是在脱离和独立浮动时无疑会导致可用性问题。我强烈建议您在UserExperience.SE分享您的想法。