
Рис. 2.13. Имена виджетов формы
Для установки соединения между двумя виджетами щелкните по виджету, передающему сигнал, соедините красную стрелку с виджетом - получателем сигнала и отпустите клавишу мышки. В результате будет выдано диалоговое окно, позволяющее выбрать для соединения сигнал и слот.

Рис. 2.14. Соединение виджетов формы
Сначала устанавливается соединение между moreButton и secondaryGroupBox. Соедините эти два виджета красной стрелкой, затем выберите toggled(bool) в качестве сигнала и setVisible(bool) в качестве слота. По умолчанию Qt Designer не имеет в списке слотов setVisible(bool), но он появится, если вы включите режим «Show all signals and slots» (Показывать все сигналы и слоты).

Рис. 2.15. Редактор соединений в Qt Designer
Второе соединение устанавливается между сигналом toggled (bool) виджета moreButton и слотом setVisible(bool) виджета tertiaryGroupBox. После установки соединения выберите функцию меню Edit|Edit Widgets для выхода из режима установки соединений.
Сохраните диалог под именем sortdialog. ui в каталоге sort. Для добавления программного кода в форму мы будем использовать тот же подход на основе множественного наследования, который нами применялся в предыдущем разделе для диалога «Go-to-Cell».
Сначала создаем файл sortdialog. h со следующим содержимым:
#ifndef S0RTDIAL0G_H #define S0RTDIAL0G_H
#include <QDialog>
#include "ui_sortdialog.h"
class SortDialog : public QDialog, public Ui::SortDialog {
Q_0BJECT public:
SortDialog(QWidget *parent = 0);
void setColumnRange(QChar first, QChar last);
};
#endif
Затем создаем sortdialog. cpp:
1 #include <QtGui>
2 #include "sortdialog.h"
3 SortDialog::SortDialog(QWidget *parent)
4 : QDialog(parent)
5 {
6 setupUi(this);
7 secondaryGroupBox->hide();
8 tertiaryGroupBox->hide();
9 layout()->setSizeConstraint(QLayout::SetFixedSize);
10 setColumnRange('A', 'Z');
11 }
12 void SortDialog::setColumnRange(QChar first, QChar last)
13 {
14 primaryColumnCombo->clear();
15 secondaryColumnCombo->clear();
16 tertiaryColumnCombo->clear();
17 secondaryColumnCombo->addItem(tr("None"));
<< назад вперед >>