-2

我在为 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,因此至少可以说我对所涉及的复杂性的理解不足。

任何输入都会很棒!

4

1 回答 1

2

正如评论所述,错误在这一行:

self.lineEditUser.setText() = 'John'

您正在尝试将值分配'John'给该函数调用(如错误所述)。如果您查看PyQT 中 QLineEdit的文档,您会看到QLineEdit.setText()需要将字符串传递给它。

因此,您需要做的是将值传递'John'给函数,如下所示:

self.lineEditUser.setText('John')

在另一张纸条上,您认为您的

软件包将有大约 10 个窗口

绝对是你想要重新审视的东西。更多的窗口,尤其是在不停靠和独立浮动时,无疑会导致可用性问题。我强烈建议您在UserExperience.SE上分享您的想法。

于 2013-09-16T00:34:57.190 回答