簡體   English   中英

將從一個窗口處理的數據發送到pyqt中的主窗口

[英]Send data processed from one window to mainwindow in pyqt

我正在使用pyqt來構建gui,使用來自qt Designer的.UI文件,然后通過pyuic4進行轉換。

我有兩個窗戶
1st-主窗口(有一些標簽和按鈕)
2nd-窗口是數字小鍵盤輸入窗口。

我將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_())

我使用鍵盤輸入值,它顯示在同一窗口中的空白處。

現在我必須將輸入的值返回到主窗口以更新值。

這似乎是一個簡單的問題,但是我找不到plz幫助我。

*在qtdesigner或pyqt中是否有任何用於鍵盤操作的方法?
僅一個主意就足夠了。

謝謝 !!!

您想要的是定義一個新方法來處理您的返回值。

在您的mainwaindow中 ,定義處理程序:

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

然后,就像連接來自主窗口的信號以顯示小鍵盤窗口一樣,您可以在小鍵盤類中創建一個信號並將其連接到新的處理程序:

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_())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM