您似乎在創建對象並在之後使用它。當然,你從text()
得到一個空字符串;它不這樣工作。
您應該將QLineEdit
添加到GUI,讓用戶使用它做一些事情,然後獲取文本QLineEdit.text()
。要知道用戶何時更改文本,是的,您應該連接到QLineEdit. textEdited
插槽。
下面是一個完整的示例,它使用這種機制將所有文本從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)
而不是定義一個函數。
P.S.你真的應該閱讀一些教程;我發現this one非常有用。
我不假設你可以顯示QLineEdit.text()與QLineEdit.textEdited信號一起使用嗎? – Jay 2012-07-27 06:30:07
哦,我一直在閱讀教程,它不是現有信號和插槽之間的數據在預先存在的pyside項目之間移動,這些信息和插槽讓我感到興奮。它將數據移動到我自己的變量中去到數據庫等等。我在屏幕上的內容非常接近你寫的內容,我會一直盯着它,因爲我必須靠近。謝謝您的幫助!!! – Jay 2012-07-27 07:01:20
最後一個應該是'self.line_edit.textChanged.connect(self.label.setText)'(標籤而不是line_edit) – goetzc 2015-09-26 18:46:56