2024-09-29 19:15:07 发布
网友
我正在学习Pyside,我似乎无法将QLineEdit中的文本输入到我自己的方法中,以便将其输入到查询中等。我知道这与lineEdit.text()有关,但似乎不起作用。在文本进入变量之前,我需要将它与信号关联吗??
这是我一直在尝试的类型。我需要一个文本改变的信号,使它更新或什么??我试过添加self.line,但也没用,对面向对象编程有点生疏。
line=QtGui.QLineEdit(self) myVar = line.text()
一个简短的代码示例会很好。谢谢!
你似乎正在创建对象并在之后使用它。当然,您可以从text()获得一个空字符串;它不是这样工作的。
text()
您应该将QLineEdit添加到一个GUI中,让用户使用它做一些事情,然后使用QLineEdit.text()获取文本。要知道用户何时更改了文本,是的,您应该连接到QLineEdit.textEdited插槽。
QLineEdit
QLineEdit.text()
QLineEdit.textEdited
下面是一个完整的示例,它使用这样的机制,在修改文本后立即将所有文本从QLineEdit复制到QLabel。
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有一个^{}插槽,我们可以只做self.line_edit.textChanged.connect(self.line_edit.setText)而不定义函数。
self.line_edit.textChanged.connect(self.line_edit.setText)
你真的应该读一些教程;我发现this one非常有用。
你似乎正在创建对象并在之后使用它。当然,您可以从
text()
获得一个空字符串;它不是这样工作的。您应该将
QLineEdit
添加到一个GUI中,让用户使用它做一些事情,然后使用QLineEdit.text()
获取文本。要知道用户何时更改了文本,是的,您应该连接到QLineEdit.textEdited
插槽。下面是一个完整的示例,它使用这样的机制,在修改文本后立即将所有文本从
QLineEdit
复制到QLabel
。下面的示例演示如何将自己的函数连接到插槽。但是由于} 插槽,我们可以只做
QLabel
有一个^{self.line_edit.textChanged.connect(self.line_edit.setText)
而不定义函数。你真的应该读一些教程;我发现this one非常有用。
相关问题 更多 >
编程相关推荐