Общайтесь между двумя MainWindow() в Qt

80
6

Мое приложение в Qt состоит из двух разных окон (но оба унаследованы от QtGui.QMainWIndow), и мне интересно, как общаться между ними. Более того, использование большого количества QMainWindow обычно является хорошим подходом?

спросил(а) 2016-01-27T18:41:00+03:00 4 года, 8 месяцев назад
1
Решение
69

Подключайте сигналы и слоты между двумя окнами, когда вы их создаете.

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

ответил(а) 2016-01-27T19:44:00+03:00 4 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема