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,或創建一個知道所有主窗口並處理它們之間交互的類。 –