2016-05-28 9 views
0

qtデザイナの.UIファイルを使用してpyqtを使用してGUIを構築し、pyuic4で変換しています。pyqtで1つのウィンドウからメインウィンドウに処理されたデータを送信

私は2つの窓があり、
第一 -
第二(一部のラベルやボタンがある)メインウィンドウ - ウィンドウには、テンキー入力ウィンドウです。

私はUIファイルの別々のの.pyを持っていると

class mainwindow(QtGui.QWidget): 
    def __init__(self, parent = None): 
     super(mainwindow, self).__init__(parent) 
     self.ui = Ui_main() 
     self.ui.setupUi(self) 
# this is same for keypad window also.. 
# Inside the keypad window class i have added functions for click & display events. 

により、メインプログラムでそれをロードし、私はメインウィンドウのボタンをクリックすると、num個のキーパッドウィンドウが開きます。

def main(): 
    app = QtGui.QApplication(sys.argv) 
    home = mainwindow() #mainwindow object 
    keypad = keypad()  #keypad object 
    home.ui.set_btn.clicked.connect(keypad.show) #keypad window will show if press set_btn 
    homewindow.show() 
    sys.exit(app.exec_()) 

Iは、キーパッドを使用して値を入力し、それは、同じウィンドウ内に設けられた空間で示され、以下のように

メインコードである(私は正常にこれを行っています)。

これで、入力した値をメインウィンドウに戻して値を更新する必要があります。

これは簡単な質問ですが、私はplzヘルプを見つけることができませんでした。

* qtdesignerまたはpyqtでキーパッド操作の既存の方法はありますか?
アイデアだけでも十分です。

ありがとう!!!

答えて

1

あなたが望むものは、に新しいメソッドを定義して、戻り値を処理することです。

class mainwindow(QtGui.QWidget): 
    def __init__(self, parent = None): 
     super(mainwindow, self).__init__(parent) 
     self.ui = Ui_main() 
     self.ui.setupUi(self) 
    def keypadHandler(self, value): 
     # handle the value here 

そして、あなたはキーパッドウィンドウを表示するにはメインウィンドウからの信号を接続するだけのように、あなたは、キーパッドクラスで信号を作成し、それを接続する:あなたはハンドラを定義あなたmainwaindowで

新しいハンドラーに:

def main(): 
    app = QtGui.QApplication(sys.argv) 
    home = mainwindow() #mainwindow object 
    keypad = keypad()  #keypad object 
    keypad.ui.updated_value.connect(home.keypadHandler) # updated_value show preferably be emitted everytime the value changes 
    home.ui.set_btn.clicked.connect(keypad.show) #keypad window will show if press set_btn 
    homewindow.show() 
    sys.exit(app.exec_()) 
関連する問題