Как обрабатывать кнопку QDialogButtonBox RestoreDefaults - PullRequest
2 голосов
/ 01 февраля 2012

В Qt Designer я создал диалоговое окно, в котором есть QDialogButtonBox с кнопками ОК, Отмена и «Восстановить настройки по умолчанию».Это заняло некоторое время, но я выяснил, как настроить сигналы / слоты в моем файле реализации с помощью:

QPushButton* resetButton = m_ui.buttonBox->button(QDialogButtonBox::RestoreDefaults);
connect(resetButton, SIGNAL(clicked()), this, SLOT(resetDefaultsPressed()));

Мой вопрос такой: есть ли способ настроить сигналы / слоты в QtDesigner, как вы?можно с помощью кнопок ОК и Отмена?Я не смог найти сигнал с именем RestoreDefaults или аналогичный ... У меня есть работающий метод, но было бы неплохо, если бы все настройки сигнала / слота были вместе в файле .h, который генерирует uic.

1 Ответ

1 голос
/ 01 февраля 2012

Qt Designer может обрабатывать только сигналы, объявленные в классе.

Но вы можете написать новый класс, полученный из QDialogButtonBox, использовать сигнал clicked, чтобы узнать, какая роль кнопки была активирована, ииспускать новые сигналы.

Затем вы можете продвинуть свой QDialogButtonBox в этот новый класс в конструкторе, и вам придется вручную добавлять сигналы для каждого файла пользовательского интерфейса (щелкнув левой кнопкой мыши на продвинутом виджете, затем «Изменить сигнал»/ slots ... ") или напишите плагин дизайнера, чтобы ваши пользовательские классы появлялись в списке виджетов дизайнера (см. этот другой ответ для подробной информации).

...