Саммерфилд Марк
Шрифт:
2. Создайте кнопку More (больше) и перенесите ее в вертикальный менеджер компоновки ниже вертикальной распорки. Установите свойство text кнопки More на значение «&More», а свойство checkable — на значение «true». Задайте свойство default кнопки OK на значение «true».
3. Создайте объект «группа элементов (group box)», две текстовые метки, два поля с выпадающим списком (comboboxes) и одну горизонтальную распорку и разместите их где-нибудь на форме.
4. Передвиньте нижний правый угол элемента группа, увеличивая его. Затем перенесите другие виджеты внутрь элемента группа и расположите их приблизительно так, как показано на рис. 2.11 (а).
Рис. 2.11. Размещение дочерних виджетов группового элемента в табличной сетке.
5. Перетащите правый край второго поля с выпадающим списком так, чтобы оно было в два раза шире первого поля.
6. Свойство title (заголовок) группы установите на значение «&PrimaryKey» (первичный ключ), свойство text первой текстовой метки установите на значение «Column:» (столбец), а свойство text второй текстовой метки установите на значение «Order:» (порядок сортировки).
7. Щелкните правой клавишей мышки по первому полю с выпадающим списком и выберите функцию Edit Items (редактировать элементы) в контекстном меню для вызова в Qt Designer редактора списков. Создайте один элемент со значением «None» (нет значений).
8. Щелкните правой клавишей мышки по второму полю с выпадающим списком и выберите функцию Edit Items. Создайте элементы «Ascending» (по возрастанию) и «Descending» (по убыванию).
9. Щелкните по группе и выберите в меню функцию Form | Lay Out in a Grid (Форма | Размещение в сетке). Еще раз щелкните по группе и выберите в меню функцию Form | Adjust Size (Форма | Настроить размер). В результате получите изображение, представленное на рис. 2.11 (б).
Если изображение оказалось не совсем таким или вы ошиблись, то всегда можно выбрать в меню функцию Edit | Undo (Правка | Отменить) или Form | Break Layout (Форма | Прервать компоновку), затем изменить положение виджетов и снова повторить все действия.
Теперь мы добавим групповые элементы для второго и третьего ключей сортировки.
1. Увеличьте высоту диалогового окна, чтобы можно было в нем разместить дополнительные части.
2. При нажатой клавише Ctrl (Alt в системе Mac) щелкните по элементу группы Primary Key (первичный ключ) для создания копии элемента группа (и его содержимого) над оригинальным элементом. Перетащите эту копию ниже оригинального элемента группа, по-прежнему нажимая клавишу Ctrl (или Alt). Повторите этот процесс для создания третьего элемента группа, размещая его ниже второго элемента группа.
3. Измените их свойство title на значения «&Secondary Key» (вторичный ключ) и «&Tertiary Key» (третичный ключ).
4. Создайте одну вертикальную растяжку и расположите ее между элементом группы первичного ключа и элементом группы вторичного ключа.
5. Расположите виджеты в сетке, как показано на рис. 2.12 (а).
6. Щелкните по форме, чтобы отменить выбор любых виджетов, затем выберите функцию меню Form | Lay Out in a Grid (Форма | Расположить в сетке). Форма должна иметь вид, показанный на рис. 2.12 (б).
7. Свойство sizeHint («идеальный» размер) двух вертикальных растяжек установите на значение [20, 0].
В результате менеджер компоновки в ячейках сетки будет иметь два столбца и четыре строки — всего восемь ячеек. Элемент группа первичного ключа, левая вертикальная распорка, элемент группа вторичного ключа и элемент группа третичного ключа — каждый из них занимает одну ячейку. Менеджер вертикальной компоновки, содержащий кнопки OK, Cancel и More, занимает две ячейки. Справа внизу диалогового окна будет две свободные ячейки. Если у вас получилась другая картинка, отмените компоновку, измените положение виджетов и повторите все сначала.
Рис. 2.12. Расположение дочерних элементов формы в сетке.
Переименуйте форму на «SortDialog» (диалоговое окно сортировки) и измените заголовок на «Sort» (сортировка). Задайте имена дочерним виджетам, как показано на рис. 2.13.
Выберите функцию меню Edit | Edit Tab Order. Щелкайте поочередно по каждому выпадающему списку, начиная с верхнего и заканчивая нижним, затем щелкайте по кнопкам OK, Cancel и Моге, которые расположены справа. Выберите функцию меню Edit | Edit Widgets для выхода из режима установки переходов по клавише табуляции.
Теперь, когда форма спроектирована, мы готовы обеспечить ее функциональное наполнение, устанавливая некоторые соединения «сигнал—слот». Qt Designer позволяет устанавливать соединения между виджетами одной формы. Нам требуется обеспечить два соединения.
Выберите функцию меню Edit | Edit Signals/Slots (Правка | Редактировать сигналы и слоты) для входа в режим формирования соединений в Qt Designer. Соединения представлены синими стрелками между виджетами формы. Поскольку нами выбран шаблон «Dialog with Buttons Right», кнопки OK и CanceI уже подключены к слотам accept и reject виджета QDialog. Эти соединения также указаны в окне редактора сигналов и слотов Qt Designer.