0
我的应用程序在Qt中包含2个不同的窗口(但都是从QtGui.QMainWIndow继承的),我想知道如何在它们之间进行通信。而且,使用多个QMainWindow通常是一个好方法吗?在Qt中的两个MainWindow()之间进行通信Qt
我的应用程序在Qt中包含2个不同的窗口(但都是从QtGui.QMainWIndow继承的),我想知道如何在它们之间进行通信。而且,使用多个QMainWindow通常是一个好方法吗?在Qt中的两个MainWindow()之间进行通信Qt
实例化它们时,在两个窗口类之间连接信号和插槽。
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window1 = MyMainWindow1()
window1.show()
window2 = MyMainWindow2()
window2.show()
# connect signals to communicate between windows
window1.someSignal.connect(window2.someSlot)
window2.anotherSignal.connect(window1.anotherSlot)
app.exec()
QMainWindow
被设计为用作主应用程序窗口;它简化了常用窗口功能(如工具栏和菜单)的添加。但是,我不认为有多个实例是有害的。
您也可以只使用任何QWidget
:
window = QtWidgets.QWidget() # note that no parent is given
window.show()
这就是我所做的,但在从QApplication继承的上层类中。 – floflo29
你听说过[信号和槽在QT(http://doc.qt.io/qt-4.8/signalsandslots.html)的? –
是的,我经常使用它。我应该建立一个继承自QApplication的类,它的window1和window2(仍然继承自QMainWindow)是属性吗?总而言之,我正在寻找处理Qt中多个Windows应用程序的最佳方式。 – floflo29
Signal/slots,或创建一个知道所有主窗口并处理它们之间交互的类。 –