オブジェクトを作成し、その直後に使用しているようです。もちろん、text()
;から空の文字列を取得します。そのようには機能しません。
GUIにを追加しQLineEdit
、ユーザーにGUIを使用して何かを実行させてから、を使用してテキストを取得する必要がありますQLineEdit.text()
。ユーザーがいつテキストを変更したかを正確に知るには、はい、スロットに接続する必要があります。QLineEdit.textEdited
これは、このようなメカニズムを使用して、変更されるとすぐにすべてのテキストをaQLineEdit
から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あなたは本当にいくつかのチュートリアルを読むべきです。これはとても便利だと思いました。