gpt4 book ai didi

python - PyQt 无法使用 text() 从 QlineEdit 获取文本

转载 作者:行者123 更新时间:2023-12-01 03:34:23 24 4
gpt4 key购买 nike

我有一个QlineEdit,并使用以下代码从中恢复文本:

doc = self.lineEdit_2.text()

def pushButton_7_clicked(doc):
print(doc)

self.pushButton_7.clicked.connect(pushButton_7_clicked)

我没有收到错误,但无论 QlineEdit 是否包含文本,它都会打印 False

最佳答案

clicked 信号(请参阅 docs )将属性传递给 pushButton_7_clicked 回调:

void QAbstractButton::clicked(bool checked = false)

This signal is emitted when the button is activated (i.e. pressed down then released while the mouse cursor is inside the button), when the shortcut key is typed, or when click() or animateClick() is called. Notably, this signal is not emitted if you call setDown(), setChecked() or toggle().

If the button is checkable, checked is true if the button is checked, or false if the button is unchecked.

因此,当您定义回调时,第一个参数是 checked bool 值。

在回调定义中将其称为 doc 没有任何区别。您没有在这里传递您的文档实例。您在这里得到的是 checked bool 值,它始终是 False

这是一个纯粹的Python问题。

a = 12
def b(a):
print(a)
b(69)

这将打印 69,而不是 12。您正在函数范围内重新定义 a(在您的情况下为 doc)。

此外,这样写也是没有意义的:

doc = self.lineEdit_2.text()

因为这仅在导入时执行一次。

你可以尝试这样的事情。请注意,您需要将该回调放入您的对象中,以便它绑定(bind)到该对象并在 self 中拥有对自身的引用。

class YourObject():

def pushButton_7_clicked(self, checked):
print(self.lineEdit_2.text())

self.pushButton_7.clicked.connect(self.pushButton_7_clicked)

关于python - PyQt 无法使用 text() 从 QlineEdit 获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40528617/

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