![](/img/trans.png)
[英]PYQT: How to send a custom signal from the mainwindow(parent) to a child window?
[英]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.