我使用pyqt构建一个gui,使用qt Designer中的.UI文件,然后通过pyuic4进行转换。
我有两个窗户,
1st - 主窗口(有一些标签和按钮)
2nd - Window是一个数字键盘输入窗口。
我将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_())
我使用键盘输入值,它显示在同一窗口中提供的空格中。
现在我必须将输入的值返回到主窗口以更新值。
这似乎是一个简单的问题,但我找不到帮助我。
*是否存在键盘操作的现有方法,在qtdesigner或pyqt中 只有一个想法也足够了..
谢谢!!!
答案 0 :(得分:1)
您想要的是定义一个新方法来处理您的返回值。
在 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_())