В строке 12 мы делаем кнопку Find используемой по умолчанию, вызывая функ­цию setDefault(true)1. Кнопка, для которой задан режим использования по умолча­нию, будет срабатывать при нажатии пользователем клавиши Enter (ввод). В строке 13 мы устанавливаем кнопку Find в неактивный режим. В неактивном режиме вид­жет обычно имеет серый цвет и не реагирует на действия пользователя.

15 connect(lineEdit, SIGNAL(textChanged(const QString &)),

16 this, SLOT(enableFindButton(const QString &)));

17 connect(findButton, SIGNAL(clickedO),

18 this, SLOT(findClickedO));

19 connect(closeButton, SIGNAL(clickedO),

20 this, SLOT(closeO));

Закрытый слотenableFindButton(const QString &) вызывается при всяком изме­нении значения в строке редактирования. Закрытый слот f indClicked() вызывается при нажатии пользователем кнопки Find. Само диалоговое окно закрывается при на­жатии пользователем кнопки Close (закрыть). Слот close() наследуется от класса QWidget, и по умолчанию он делает виджет невидимым (но не удаляет его). Програм­мный код слотов enableFindButton() и f indClicked() мы рассмотрим позднее.

Поскольку QObject является одним из прародителей FindDialog, мы можем не указывать префикс QObject:: перед вызовами connect().

21 QHBoxLayout *topLeftLayout = new QHBoxLayout;

22 topLeftLayout->addWidget(label);

23 topLeftLayout->addWidget(lineEdit);

24 QVBoxLayout *leftLayout = new QVBoxLayout;

25 leftLayout->addLayout(topLeftLayout);

26 leftLayout->addWidget(caseCheckBox);

27 leftLayout->addWidget(backwardCheckBox);

28 QVBoxLayout *rightLayout = new QVBoxLayout;

29 rightLayout->addWidget(findButton);

30 rightLayout->addwidget(closeButton);

31 rightLayout->addStretch();

32 QHBoxLayout *mainLayout = new QHBoxLayout;

33 mainLayout->addLayout(leftLayout);

34 mainLayout->addLayout(rightLayout);

35 setLayout(mainLayout);

36 setWindowTitle(tr("Find"));

37 set FixedHeight(sizeHint().height());

38 }

Затем для размещения виджетов в окне мы используем менеджеры компоновки (layout managers). Менеджеры компоновки могут содержать как виджеты, так и дру­гие менеджеры компоновки. Используя


<< назад вперед >>