gpt4 book ai didi

python - 如何从 Pyside 中的 lineEdit 获取文本?

转载 作者:行者123 更新时间:2023-11-30 23:41:57 25 4
gpt4 key购买 nike

我正在学习 Pyside,我似乎无法将 QLineEdit 中的文本获取到我自己的方法中,以便我可以将其输入到查询等中。我知道它与 lineEdit.text() 有关,但它似乎不起作用。在文本进入我的变量之前,我是否需要将其与信号关联?

这就是我一直在尝试的事情。我需要一个 textChanged 信号来更新它还是什么?我尝试添加 self.line ,但这也不起作用,对面向对象编程有点生疏。

line=QtGui.QLineEdit(self)
myVar = line.text()

如果有一个简短的代码示例就太好了。谢谢!

最佳答案

您似乎正在创建该对象并随后立即使用它。当然,你会从 text() 得到一个空字符串。 ;它不是那样工作的。

您应该添加 QLineEdit到 GUI,让用户用它做一些事情,然后使用 QLineEdit.text() 获取文本。要知道用户究竟何时更改了文本,是的,您应该连接到 QLineEdit.<a href="http://doc.qt-project.org/qlineedit#textEdited" rel="noreferrer noopener nofollow">textEdited</a>插槽。

这是一个完整的示例,它使用这种机制来复制 QLineEdit 中的所有文本。到 QLabel一旦修改。

import sys

from PySide.QtCore import *
from PySide.QtGui import *

class MainWindow(QWidget):
def __init__(self):
QWidget.__init__(self)

layout = QVBoxLayout()
self.setLayout(layout)

self.line_edit = QLineEdit()
layout.addWidget(self.line_edit)

self.label = QLabel()
layout.addWidget(self.label)

self.line_edit.textChanged.connect(self.line_edit_text_changed)

self.show()

def line_edit_text_changed(self, text):
self.label.setText(text)

app = QApplication(sys.argv)
mw = MainWindow()
app.exec_()

此示例展示了如何将自己的函数连接到插槽。但自从QLabel有一个 setText 插槽,我们可以做 self.line_edit.textChanged.connect(self.line_edit.setText)并且不定义函数。

附注你真的应该阅读一些教程;我发现this one非常有用。

关于python - 如何从 Pyside 中的 lineEdit 获取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11681984/

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