Чтение онлайн

на главную - закладки

Жанры

QT 4: программирование GUI на С++

Саммерфилд Марк

Шрифт:

Задайте свойства каждого виджета, используя редактор свойств Qt Designer.

1. Щелкните по текстовой метке. Убедитесь, что свойство objectName (имя объекта) имеет значение «label» (текстовая метка), а свойство text (текст) установите на значение «&Cell Location» (расположение ячейки).

2. Щелкните по строке редактирования. Убедитесь, что свойство objectName имеет значение «lineEdit» (строка редактирования).

3. Щелкните по первой кнопке. Установите свойство objectName на значение «okButton» (кнопка подтверждения),

свойство enabled (включена) на значение «false» (ложь), свойство default (режим умолчания) на «true» (истина), свойство text на значение «OK» (подтвердить).

4. Щелкните по второй кнопке. Установите свойство objectName на значение «cancelButton» (кнопка отмены) и свойство text на значение «Cancel» (отменить).

5. Щелкните по свободному месту формы для выбора самой формы. Установите objectName на значение «GoToCellDialog» (диалоговое окно перехода на ячейку) и windowTitle (заголовок окна) на значение «Go to Cell» (перейти на ячейку).

Теперь все виджеты выглядят привлекательно, кроме текстовой метки &Cell Location. Выберите Edit | Edit Buddies (Правка | Редактировать партнеров) для входа в специальный режим, позволяющий задавать партнеров. Щелкните по этой метке и перенесите красную стрелку на строку редактирования, а затем отпустите кнопку мышки. Теперь эта метка будет выглядеть как

C
ell Location и иметь строку редактирования в качестве партнера. Выберите Click Edit | Edit Widgets (Правка | Редактировать виджеты) для выхода из режима установки партнеров.

Рис. 2.7. Вид формы после установки свойств виджетов.

На следующем этапе виджеты размещаются в форме требуемым образом:

1. Щелкните по текстовой метке Cell Location и нажмите клавишу Shift одновременно со щелчком по полю редактирования, обеспечив одновременный выбор этих виджетов. Выберите в меню Form | Lay Out Horizontally (Форма | Горизонтальная компоновка).

2. Щелкните по растяжке, затем, удерживая клавишу Shift, щелкните по клавишам OK и Cancel. Выберите в меню Form | Lay Out Horizontally.

3. Щелкните по свободному месту формы, аннулируя выбор любых виджетов, затем выберите в меню функцию Form | Lay Out Vertically (Форма | Вертикальная компоновка).

4. Выберите в меню функцию Form | Adjust Size для установки предпочитаемого размера формы.

Красными линиями на форме обозначаются созданные менеджеры компоновки. Они невидимы при выполнении программы.

Рис. 2.8. Форма с менеджерами компоновки.

Теперь выберите в меню функцию Edit | Edit Tab Order (Правка | Редактировать порядок перехода по клавише табуляции). Рядом с каждым виджетом, которому может передаваться фокус, появятся синие прямоугольники. Щелкните по каждому виджету, соблюдая необходимую вам последовательность перевода фокуса, затем выберите в меню функцию Edit | Edit Widgets для выхода из режима редактирования переходов по клавише табуляции.

Рис. 2.9. Установка последовательности перевода фокуса по

виджетам формы.

Для предварительного просмотра спроектированного диалогового окна выберите в меню функцию Form | Preview (Форма | Предварительный просмотр). Проверьте последовательность перехода фокуса, нажимая несколько раз клавишу табуляции. Нажмите одновременно клавиши Alt+C для перевода фокуса на строку редактирования. Нажмите на кнопку Cancel для прекращения работы.

Сохраните спроектированное диалоговое окно в файле gotocelldialog.ui в каталоге с названием gotocell и создайте файл main.cpp в том же каталоге с помощью обычного текстового редактора.

01 #include <QApplication>

02 #include <QDialog>

03 #include "ui_gotocelldialog.h"

04 int main(int argc, char *argv[])

05 {

06 QApplication app(argc, argv);

07 Ui::GoToCellDialog ui;

08 QDialog *dialog = new QDialog;

09 ui.setupUi(dialog);

10 dialog->show;

11 return app.exec;

12 }

Теперь выполните команду qmake для создания файла с расширением .pro и затем создайте файл makefile (команды qmake —project; qmake gotocell.pro). Программе qmake «хватит ума» обнаружить файл пользовательского интерфейса gotocelldialog.ui и сгенерировать соответствующие команды для вызова uic — компилятора пользовательского интерфейса, входящего в состав средств разработки Qt. Компилятор uic преобразует gotocelldialog.ui в инструкции С++ и помещает результат в ui_gotocelldialog.h.

Полученный файл ui_gotocelldialog.h содержит определение класса Ui::GoToCellDialog, который содержит инструкции С++, эквивалентные файлу gotocelldialog.ui. В этом классе объявляются переменные—члены, в которых содержатся дочерние виджеты и менеджеры компоновки формы, а также функция setupUi, которая инициализирует форму. Сгенерированный класс выглядит следующим образом:

class Ui::GoToCellDialog

{

public:

QLabel *label;

QLineEdit *lineEdit;

QSpacerItem *spacerItem;

QPushButton *okButton;

QPushButton *cancelButton;

void setupUi(QWidget *widget) {

}

};

Сгенерированный класс не наследует никакой Qt—класс. При использовании формы в main.cpp мы создаем QDialog и передаем его функции setupUi.

Поделиться:
Популярные книги

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Отчий дом. Семейная хроника

Чириков Евгений Николаевич
Проза:
классическая проза
5.00
рейтинг книги
Отчий дом. Семейная хроника

Скандальная свадьба

Данич Дина
1. Такие разные свадьбы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Скандальная свадьба

Путанабус. Трилогия

Старицкий Дмитрий
Фантастика:
боевая фантастика
6.93
рейтинг книги
Путанабус. Трилогия

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Кодекс Крови. Книга ХVI

Борзых М.
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVI

Проданная невеста

Wolf Lita
Любовные романы:
любовно-фантастические романы
5.80
рейтинг книги
Проданная невеста

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

С Д. Том 16

Клеванский Кирилл Сергеевич
16. Сердце дракона
Фантастика:
боевая фантастика
6.94
рейтинг книги
С Д. Том 16

Переиграть войну! Пенталогия

Рыбаков Артем Олегович
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Переиграть войну! Пенталогия

От Советского Информбюро - 1941-1945 (Сборник)

Неизвестен 3 Автор
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
От Советского Информбюро - 1941-1945 (Сборник)

Санек 3

Седой Василий
3. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Санек 3

Прометей: повелитель стали

Рави Ивар
3. Прометей
Фантастика:
фэнтези
7.05
рейтинг книги
Прометей: повелитель стали

Отмороженный 14.0

Гарцевич Евгений Александрович
14. Отмороженный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Отмороженный 14.0