您似乎正在创建对象并在之后立即使用它。当然,你会从text()
;得到一个空字符串。它不是那样工作的。
您应该将 添加QLineEdit
到 GUI,让用户对其进行操作,然后使用QLineEdit.text()
. 要知道用户何时更改了文本,是的,您应该连接到插槽。QLineEdit.textEdited
这是一个完整的示例,它使用这种机制在修改后立即将所有文本从 a 复制QLineEdit
到 a 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_()
这个示例展示了如何将自己的函数连接到插槽。但是由于 aQLabel
有一个setText
槽,我们可以只做self.line_edit.textChanged.connect(self.line_edit.setText)
而不定义一个函数。
PS你真的应该阅读一些教程;我发现这个非常有用。