Программирование GUI в C++ с использованием библиотеки Qt, часть 1
|
В безбрежном океане библиотек для разработки GUI особняком стоит библиотека, известная под названием 'Qt' для C++, разработанная компанией Trolltech AS. 'Qt' была представлена в 1996 году, с тех пор, с помощью этой библиотеки было создано большое количество разнообразных приложений с графическим пользовательским интерфейсом. Qt является кроссплатформенной, есть реализации библиотеки для MS/Windows, Unix/X11 (Linux, Sun Solaris, HP-UX, Digital Unix, IBM AIX, SGI IRIX и пр.), Macintosh ( Mac OS X ) и Embedded платформ. Библиотека является объектно-ориентированной, базирующейся на компонентах и имеет богатое разнообразие различных визуальных элементов - виджетов (widgets), предоставляемых в распоряжение программиста. 'Qt' распространяется в двух ипостасях - коммерческая реализация (имеются 'Qt Professional' и 'Qt Enterprise Editions' версии) и некоммерческая реализация, доступная для свободного скачивания (www.trolltech.com). НачалоПрежде всего вам нужно скачать библиотеку, я полагаю, что вы уже скачали версию Qt/X11 для Linux, поскольку примеры были написаны исходя из этого. Теперь вам потребуются права суперпользователя для установки библиотеки, так что залогируйтесь пользователем 'root'. Теперь разархивируем библиотеку в каталог /usr/local [root@Linux local]# tar -zxvf qt-x11-free-3.0.1 [root@Linux local]# cd qt-x11-free-3.0.1 Теперь нужно скомпилировать библиотеку с набором опций, необходимых для ее использования и установить. Библиотека 'Qt' может компилироваться с целым набором различных опций. Сейчас же мы будем собирать библиотеку с включенной поддержкой gif reading, threading , STL, remote control, Xinerama, XftFreeType (anti-aliased шрифты) и X Session Management, не считая базовых характеристик. Прежде чем продолжить, не забудьте установить некоторые переменные окружения, как показано ниже: QTDIR=/usr/local/qt-x11-free-3.0.1 PATH=$QTDIR/bin:$PATH MANPATH=$QTDIR/man:$MANPATH LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export QTDIR PATH MANPATH LD_LIBRARY_PATH Вы можете включить эти строки в файл .profile в вашем домашнем каталоге. [root@Linux qt-x11-free-3.0.1]# ./configure -qt-gif -thread -stl -remote -xinerama -xft -sm [root@Linux qt-x11-free-3.0.1]# make install Если все прошло успешно, то установку библиотеки 'Qt' можно считать завершенной. Первые шагиПеред тем как начать писать программы на C++, использующие библиотеку 'Qt' , вам необходимо знать о существовании дополнительного инструментария, поставляемого вместе с библиотекой, который предназначен для облегчения вашего труда Qmake
Qmake -- генератор файлов Makefile на основе информации, содержащейся в файле
проекта -- Простой пример файла проекта: SOURCES = hello.cpp HEADERS = hello.h CONFIG += qt warn_on release TARGET = hello Где, 'SOURCES' указывает на файл с исходным текстом программы. Если в вашем проекте несколько таких файлов, то вы можете перечислить их так: SOURCES = hello.cpp newone.cpp или так: SOURCES += hello.cpp SOURCES += newone.cpp Аналогично, 'HEADERS' содержит имена заголовочных файлов. 'CONFIG' содержит информацию о конфигурации приложения Файл проекта должен иметь то же имя, что и исполняемый файл приложения, в нашем случае это 'hello.pro'. Файл Makefile генерируется командой: [root@Linux mydirectory]# qmake -o Makefile hello.pro Qt DesignerQt Designer - это инструмент для визуального проектирования пользовательских интерфейсов. Разработка интерфейса проходит в режиме WYSIWYG, что очень удобно для экспериментирования с различными визуальными элементами. Designer генерирует чистый C++ код графического интерфейса. Вы сможете узнать больше о 'Qt Designer' в следующих статьях. Hello World!Давайте начнем. Напишем нашу первую программу 'Hello World'. С помощью любого текстового редактора наберите следующий код:
Сохраните его как простой текст в файл ('hello.cpp'). Теперь создадим файл проекта (.pro) как приведено ниже:
Сохраните его под именем 'hello.pro' в тот же каталог, что и файл с исходным текстом программы, и создадим Makefile. [root@Linux mydirectory]# qmake -o Makefile hello.pro Скомпилируем программу командой 'make' [root@Linux mydirectory]# make Теперь можно попробовать запустить наше первое 'Qt' приложение командой: [root@Linux mydirectory]# ./hello На экране должно появиться нечто подобное: Теперь разберем каждую строку нашего кода. Первые две строки подключают заголовочные файлы, содержащие определения клавссов QApplication и QPushButton. Запомните, что в приложении должен быть только один экземпляр класса QApplication. Как и в других C++ программах, функция main() является точкой входа в программу. argc - количество аргументов командной строки, argv - массив аргументов командной строки. В следующей строке эти аргументы передаются Qt:
QApplication a(argc, argv)
После этого создается объект кнопка класса QPushButton и инициализируется конструктором с двумя аргументами: надпись на кнопке (label) и родительское окно (0 т.е., в данном случае, сама кнопка). Устанавливается размер кнопки:
hello.resize(100,30);
Qt приложение может по выбору иметь главный виджет, при закрытии которого завершается исполнение приложения. Выбор главного виджета производится в следующей строке:
a.setMainWidget( &hello );
Далее, главный виджет делается видимым. Вам потребуется всегда вызывать show(), чтобы сделать ваш виджет видимым
hello.show();
И наконец - передаем управление Qt.
return a.exec();
Важно запомнить, что функция exec() возвращает управление, когда приложение завершает свою работу. Gaurav TanejaЯ работаю техническим консультантом по Linux/Java/XML/C++ в Нью Дели, Индия. Активно учавствую в проектах open-source на SourceForge. Люблю длительные поездки, теннис. Не прочь посмотреть кино или сходить к друзьям на вечеринку. Кроме того, я работаю в своей собственной консалтинговой компании, которая называется BroadStrike Technologies.
Copyright (C) 2002, Gaurav Taneja.
|
Вернуться на главную страницу |