Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

[Предыдущий: Учебное пособие] [Учебное пособие] [Следующий: Урок 2]

Урок 1 - Hello World!

Файлы:

Наша первая программа будет традиционной, она выводит на экран "Hello world". Она содержит необходимый минимум для получения и запуска приложения Qt. Скомпилировав ее вы увидите на экране следующее:

Снимок экрана к Уроку 1

Вот полный исходный код данного приложения:

 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 **
 ****************************************************************************/

 #include <QApplication>
 #include <QPushButton>

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     QPushButton hello("Hello world!");
     hello.resize(100, 30);

     hello.show();
     return app.exec();
 }

Разберем программу строка за строкой

 #include <QApplication>

В этой строке мы подключаем описание класса QApplication. В каждом приложении Qt с графическим интерфейсом (GUI) обязательно должен быть только один объект QApplication. QApplication управляет различными ресурсами приложения, такими как шрифт по умолчанию и курсор.

 #include <QPushButton>

В этой строке подключается описание класса QPushButton. Для каждого класса, являющегося частью открытого API Qt, существует заголовочный файл с таким же именем, содержащий его определения.

QPushButton - это графическая кнопка, которую пользователь может нажимать и отпускать. Кнопка управляет собственным внешним видом и поведением, как все остальные объекты QWidget. Виджет - это объект пользовательского интерфейса, который может обрабатывать ввод пользователя и рисовать графические изображения. Программист может изменить как внешний вид, так и поведение виджета, а также многие второстепенные свойства (например, цвет) так же, как и содержимое виджета. На кнопке QPushButton может быть отображен текст или пиктограмма QIcon.

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

Функция main() является точкой входа в нашу программу. В большинстве случаев при написании приложения Qt, main() нужна только для выполнения определённых действий по инициализации до передачи управления библиотеке Qt, которая затем сообщает программе о действиях пользователя с помощью событий.

Параметр argc - количество аргументов командной строки, а argv - массив этих аргументов. Это стандартная функция C++.

     QApplication app(argc, argv);

Объект app является экземпляром класса QApplication в данной программе. Здесь мы его создаём. Мы передаём параметры argc и argv в конструктор QApplication, чтобы он мог обработать определенные стандартные аргументы командной строки (например, -display при работе с X11). Все переданные аргументы, обработанные Qt, будут удалены из argv, а argc соответственно уменьшен. Для получения подробной информации о работе с этими параметрами посмотрите документацию на метод QApplication::argv().

Объект QApplication должен быть создан прежде, чем вы начнете работать с возможностями Qt, связанными с графическим интерфейсом пользователя.

     QPushButton hello("Hello world!");

Здесь сразу после создания экземпляра объекта QApplication следует первый код, оперирующий с графическим интерфейсом: создаётся кнопка.

Кнопка создается с надписью "Hello world!". Поскольку мы не указали родительское окно (в качестве второго аргумента в конструкторе QPushButton), то кнопка будет являться отдельным окном, с собственной оконной рамкой и заголовком.

     hello.resize(100, 30);

В следуюзей строчке устанавливаем размеры кнопки, 100 пикселей по горизонтали и 30 пикселей по вертикали (эти размеры задают только размеры кнопки, без учета размера окна приложения). Мы могли бы также задать местоположение кнопки, вызвав метод QWidget::move(), но вместо этого позволяем системе управления окнами выбрать местоположение самостоятельно.

     hello.show();

При создании виджет всегда является невидимым. Чтобы сделать его видимым, необходимо вызвать метод QWidget::show().

     return app.exec();
 }

В этом месте main() передаёт управление в Qt. QCoreApplication::exec() вернёт значение, когда приложение закончит работу. (QCoreApplication является базовым классом для QApplication. Он реализует ядро QApplication, функциональность, не связанную с графическим интерфейсом, и может быть использован при разработке приложений без графического интерфейса пользователя.

В методе QCoreApplication::exec() происходит обработка всех пользовательских и системных событий и передача управления соответствующим виджетам.

Теперь можно скомпилировать нашу программу и запустить ее.

Примеры учебного руководства находтся в папке Qt examples/tutorial. Они автоматически собираются при сборке Qt.

Если вы хотите внести изменени в исходный код, вам необходимо собрать C++ приложение, для чего нужен make-файл (файл сборки). Самый простой путь создания этого файла - использование утилиты qmake, которая входит в состав Qt. Если вы сохранили main.cpp в отдельной пустой директории, всё, что вам нужно сделать, это выполнить команды:

 qmake -project
 qmake

Первой командой мы создаем проектный файл qmake (.pro файл). Следующей командой мы создаем make-файл, основанный на проектном файле. Теперь вы можете выполнить команду make (или nmake, если вы используете Visual Studio), и вы получите свое первое Qt приложение!

Запуск приложения

Когда вы запустите свое приложение, то увидите маленькое окно, внутри которого будет одна кнопка, на которой можно прочитать "Hello world!".

Домашнее задание

Попробуйте изменить размеры окна. Нажмите на кнопку. Если вы запустили пограмму под управлением X11, то при запуске укажите опцию -geometry (например, -geometry 100x200+10+20).

[Предыдущий: Учебное пособие] [Учебное пособие] [Следующий: Урок 2]


Copyright © 2008 Trolltech Торговые марки
Qt 4.3.5