2016-07-05 10 views
0

Alert.uiファイルに3つのLineEditsを作成しました。私の最初のLineEditオブジェクト名は、がクリックされたときにテキストを読む必要があるlineEditです。しかし、私がワードリーチを印刷してチェックしたところ、lineEditのテキストが何らかの値に変更されても、onChangedメソッドに決して入力されないことを理解しました。なぜこのようなことが起こるのか理解できません。QlineEdit :: text()は、プッシュボタンがクリックされたときに入力されたテキストを返しません。その特定のQlineEditのオブジェクト名は行編集です

import MySQLdb 
    import sys 
    from PyQt4 import QtCore, QtGui, uic 

    qtCreatorFile = "Alert.ui" # Enter file here. 

    Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile) 


    class MyApp(QtGui.QMainWindow, Ui_MainWindow): 
     def __init__(self): 
      QtGui.QMainWindow.__init__(self) 
      Ui_MainWindow.__init__(self) 
      QtGui.QWidget.__init__(self) 

      self.setupUi(self) 

      self.lineEdit=QtGui.QLineEdit(self) 
      print("reach") 

      self.pushButton.clicked.connect(self.pushButton_clicked) 


     def pushButton_clicked(self): 
      self.lineEdit = QtGui.QLineEdit(self) 
      self.lineEdit.textChanged.connect(self.onClicked) 

     def onClicked(self,text): 

       ID=text 
       print(ID) 


if __name__==_main_: 


app = QtGui.QApplication(sys.argv) 
     window = MyApp() 
     window.show() 
     sys.exit(app.exec_()) 
+0

コードは外部データベースと不明なファイル "Alert.ui"に依存します。コード自体や公開されているライブラリだけでなく、問題を再現するためにここにいる人々が実行できる自己完結型のサンプルを作成できますか? – BrenBarn

答えて

0

私はまだあなたのコード内で何が起こっているのかわからないんだけど、一見から、私は次の問題を見つけることができます。

あなたはonClicked方法にあなたの最初にQLineEditを接続することはありません。

+0

もし私が多くのlineEditsを持っていれば、特定のlineEditを一意に識別する方法。オブジェクト名で行うことはできますか?あなたが言ったように私はそれを接続する方法を接続しましたどのような変更を行う必要があります – Gautham

+0

特定の行からテキストを取得する方法 – Gautham

+0

編集するQLineEditの数によって異なります。それが3の場合は、それぞれに変数を割り当てることができます。それ以上あれば、リストや何かに入れるのが最善でしょう。次に、 'yourList [0] .textChanged.connect()'のインデックスを作成することで、特定のQLineEditを取得することができます。 – iSplasher

関連する問題