«Здравствуй, Qt»
«Здравствуй, Qt»
Давайте начнем с очень простой Qt—программы. Сначала мы разберем каждую строку этой программы, а затем покажем способы ее компиляции и выполнения.
01 #include <QApplication>
02 #include <QLabel>
03 int main(int argc, char *argv[])
04 {
05 QApplication app(argc, argv);
06 QLabel *label = new QLabel("Hello Qt!");
07 label->show();
08 return app.exec();
09 }
В строках 1 и 2 в программу включаются определения классов QApplication и QLabel. Для каждого Qt—класса имеется заголовочный файл с тем же именем (с учетом регистра), содержащий определение этого класса.
В строке 5 создается объект QApplication для управления всеми ресурсами приложения. Для конструктора QApplication необходимо указывать параметры argc и argv, поскольку Qt сама обрабатывает некоторые из аргументов командной строки.
В строке 7 создается «виджет» текстовая метка QLabel, который выводит на экран сообщение «Hello Qt!» (здравствуй, Qt). По терминологии Qt и Unix виджетом (widget) называется любой визуальный элемент графического интерфейса пользователя. Этот термин происходит от «window gadget» и соответствует элементу управления («control») и контейнеру («container») по терминологии Windows. Кнопки, меню, полосы прокрутки и фреймы являются примерами виджетов. Одни виджеты могут содержать в себе другие виджеты. Например, окно приложения обычно является виджетом, содержащим QMenuBar (панель меню), несколько QToolBar (панель инструментов), QStatusBar (строка состояния) и некоторые другие виджеты. Большинство приложений используют QMainWindow или QDialog в качестве окна приложения, однако Qt настолько гибка, что любой виджет может быть окном. В данном примере QLabel является окном приложения.
Строка 7 делает текстовую метку видимой. Виджеты всегда создаются сначала невидимыми, и поэтому до непосредственного вывода на экран вы можете настроить их и тем самым не допустить мерцания экрана.
Строка 8 обеспечивает передачу управления приложением Qt. В этом месте программа переходит в цикл обработки событий, т.е. в своего рода режим «простоя», ожидая со стороны пользователя таких действий, как щелчок мышки или нажатие клавиши на клавиатуре.
Для простоты мы не делаем вызов оператора delete для объекта QLabel в конце функции main(). Подобная утечка памяти в такой небольшой программе безвредна, поскольку после завершения программы эта память будет возвращена операционной системой.
Рис. 1.1. Вывод приветствия программы Hello в системе Linux
Теперь вы можете проверить работу этой программы на своей машине. Сначала необходимо установить Qt 4.1.1 (или более позднюю версию Qt 4); процесс установки рассмотрен в Приложении А. С этого момента мы будем предполагать, что вы корректно установили библиотеку Qt 4 и ее каталог bin занесен в переменную окружения PATH. (В системе Windows это делается автоматически программой установки Qt.) Вам также потребуется поместить файл hello.cpp с исходным кодом программы Hello в каталог hello. Вы можете набрать файл hello.cpp вручную или взять его с компакт-диска, который входит в состав книги; на компакт-диске этот исходный код находится в файле /examples/chap01/hello/hello.cpp.
Находясь в консольном режиме, войдите в каталог hello и задайте команду:
qmake -project
для создания файла проекта, независимого от платформы (hello.pro), и затем задайте команду:
qmake hello.pro
для создания на основе файла проекта зависимого от платформы файла makefile.
Выполните команду make для построения программы [1]. Затем выполняйте программу, задавая команду hello в системе Windows или ./hello в системе Unix и open hello.app в системе Mac OS X. Для завершения программы нажмите кнопку закрытия окна, расположенную в заголовке окна. Если вы используете Windows и установили версию Qt с открытым исходным кодом вместе с компилятором MinGW, вы получите ярлык для окна DOS, в котором переменные среды правильно настроены на Qt. Вызвав это окно, вы можете компилировать в нем Qt—приложения, используя описанныевыше команды qmake и make. Формируемые исполнительные модули помещаются в папку debug или release, например, C:qt-bookhello eleasehello.exe.
Если вы используете Visual С++ компании Microsoft, то вам потребуется выполнить команду nmake, а не make. Здесь вы можете поступить по-другому и создать проект в Visual Studio на основе файла hello.pro, выполняя команду:
qmake -tp vc hello.pro
и затем выполнить построение программы в системе Visual Studio. Если вы используете Xcode на Mac OS X, то можете сгенерировать проект Xcode с помощью следующей команды:
qmake -spec macx-xcode
Рис. 1.2. Текстовая метка с простым форматированием HTML.
Прежде чем перейти к следующему примеру, позволим себе небольшое развлечение, а именно заменим строку
QLabel *label = new QLabel("Hello Qt!");
на строку
QLabel *label = new QLabel("<h2><i>Hello</i> "
"<font color=red>Qt!</font></h2>");
и снова выполним построение приложения. Как иллюстрирует этот пример, совсем не трудно выделять элементы пользовательского интерфейса Qt—приложения с использованием некоторых простых средств форматирования документов HTML.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Урок 24 Здравствуй, охотник!
Урок 24 Здравствуй, охотник! Данный урок является классическим примером фотомонтажа. Фотомонтаж – это когда берут два (или более) абсолютно не связанных друг с другом изображения, соединяют их в одно, а потом говорят, что так и было. Часто получаются довольно скандальные
Light Peak: здравствуй или прощай? Олег Нечай
Light Peak: здравствуй или прощай? Олег Нечай Опубликовано 02 февраля 2011 года Как заявил исполнительный вице-президент и генеральный директор Intel Architecture Group Дэвид Пёрлмуттер на выставке CES 2011, первые модификации интерфейса Light Peak будут основаны не на
Здравствуй, племя незнакомое, или Почему инопланетяне должны быть похожими на нас? Владимир Комен, генеральный директор WIT Company
Здравствуй, племя незнакомое, или Почему инопланетяне должны быть похожими на нас? Владимир Комен, генеральный директор WIT Company Опубликовано 25 февраля 2013 Наряду с круглой датой — 50-летием первого полёта человека в космос — проходили мероприятия
ПИСЬМОНОСЕЦ: Здравствуй, дедушка Фрейд!
ПИСЬМОНОСЕЦ: Здравствуй, дедушка Фрейд! Автор: Илья ЩуровЗдравствуйте. Когда мне скучно, я начинаю читать или думать. Но письмо не об этом. Хочу призвать читателей подумать о том, есть ли в нашем большом, непростом мире копии нас самих. Те, у которых такие же вкусы, такие же