Как закрыть пользовательский интерфейс виджета qt при нажатии кнопки в продвигаемом виджете?

У меня есть форма пользовательского интерфейса qt Designer, в нижней части которой есть qwidget. qwidget имеет продвигаемый виджет.

Рекламируемый виджет имеет ряд ярлыков и кнопок. Одна из кнопок — это кнопка «Домой». Нажав эту кнопку, пользователь должен закрыть форму и открыть домашнюю форму.

Если я использую традиционные методы реализации слота clicked() и скажу this->close();, будет закрыт только продвинутый виджет.

Я хочу, чтобы весь пользовательский интерфейс был закрыт, а затем открыта домашняя форма. Как мне это сделать? Есть ли вызов формы пользовательского интерфейса qt Designer из продвигаемого виджета, чтобы указать, что нажата домашняя кнопка?

Любая помощь приветствуется. Спасибо


person gfernandes    schedule 25.11.2013    source источник


Ответы (1)


Вам нужно добавить SIGNAL в свой класс (скажем, с именем close()), а затем всякий раз, когда нажимается кнопка, этот СИГНАЛ отключается, и, подключив свой класс к этому сигналу, вы можете настроить форму для закрытия. Здесь вы можете найти базовое руководство по SIGNALS. Если вы укажете свой код в вопросе, я также могу провести вас по коду.

person Vahid Nateghi    schedule 25.11.2013
comment
ну.. Это раскрученные виджеты. Это часть пользовательского интерфейса. Таким образом, традиционный излучаемый сигнал и подключение к основному слоту пользовательского интерфейса не работают. Я пробовал это раньше. По нажатию кнопки я написал emit this-›home() и в основном пользовательском интерфейсе подключил сигнал этого класса к слоту gotoHome(), где указал this-›close(); Это не работает. - person gfernandes; 25.11.2013
comment
я использовал объект в качестве базового класса продвигаемого виджета, а затем взял оттуда сигнал home(). Это сработало. Ранее я создал экземпляр продвигаемого класса виджета и попытался подключить испускаемый сигнал. Я не понимал, что qwidget базового класса в основной форме пользовательского интерфейса был фактическим объектом. Спасибо за помощь. :) - person gfernandes; 25.11.2013
comment
@DmitrySazonov Проблема решена. Должен ли я опубликовать решение? Как в примере кода? - person gfernandes; 25.11.2013
comment
@Giz Извините, меня не было в сети, чтобы ответить на ваш первый вопрос. Без проблем :) - person Vahid Nateghi; 25.11.2013