Доступ к пользовательскому интерфейсу Qt другого класса из класса MainWindow

#c #qt #qwidget #qt-signals

Вопрос:

Я хочу понять, возможна ли следующая последовательность? Если да, то как мы можем добиться того же самого?

  1. В графическом интерфейсе Qt главного окна есть кнопка Qpush
  2. Когда мы нажимаем кнопку qpush, она должна открыть другое окно Qt GUI (другой класс, скажем «dialogClass»).
  3. В недавно открывшемся окне Qt GUI у нас есть QLineEdit и QPushButton
  4. Пока мы вводим данные в QLineEdit и нажимаем кнопку QPUSH (класса dialogClass), класс MainWindow должен получать данные, введенные в QLineEdit

Любая помощь по этому вопросу будет признательна. Заранее спасибо!

Комментарии:

1. В диалоговом окне есть сигнал, подключенный к какому-либо слоту в главном окне. Смотрите документацию Qt по сигналам и слотам .

2. Это правильный ответ. Не оставляйте это в комментариях

Ответ №1:

Qt предусматривает свой подход к сигналам и слотам для таких целей.

QPushButton Ваш класс предлагает сигнал clicked , который вы подключаете к пользовательскому (самописному) слоту вашего диалога. Затем слот диалогового окна должен прочитать содержимое QLineEdit и опубликовать их в собственном (пользовательском) сигнале диалогового окна, который подключен к (пользовательскому) слоту вашего главного окна, который затем может обработать значение, первоначально содержащееся в правке строки.

Детали будут в значительной степени напоминать пример документации Qt по сигналам и слотам, поэтому я не буду более подробно описывать.