S Qt Designer — RAD для быстрого построения интерфей-
са. Следует отметить, что это не аналог Delphi, поскольку
предназначен Q t Designer исключительно для визуального
построения внешнего вида программы, а не для написания
кода. Но мы ведь с вами договорились не пользоваться RAD ©,
поэтому не будем рассматривать данную программу за не-
надобностью;
A Q t Linguist — инструментарий для локализации прило-
жений, созданных с помощью Qt;
A Qt Assistant — справочная система по Qt. Очень под-
робно описан каждый класс, каждая функция, есть множест-
во различных туториалов. Если вы хотите действительно хо-
рошо освоить библиотеку Qt, то ярлык к Qt Assistant должен
висеть на самом видном месте вашего Рабочего стола ©.
С библиотекой Q t можно напрямую использовать только
два языка: C++ и Python. Но так как большинство читателей
МК вряд ли имели дело с Питоном, а с С и C++ все-таки
знакомы по циклу статей Тихона Тарнавского «Язык, на ко-
тором говорят везде» (см. МК за 2003 год), мы юзаем C++.
Да и не только мы — сейчас это наиболее популярный язык
для разработки программного обеспечения.
Теперь насчет среды разработки. Лучшим выходом будет
использование текстового редактора вроде встроенного в
FAR (для пользователей Windows) или Midnight Commander
(для линуксоидов). Гише, я знаю, что это позапрошлый век и
все такое, и что все здравомыслящие люди пользуются Visu-
al C++/KDevelop (нужное подчеркнуть). Но есть одно НО. В
вышеперечисленных средах вся забота об управлении про-
tnport Existing P ro je t
ектом лежит на компьютере. Мы же с вами попробуем все
делать напрямую через ятаке, поскольку иначе нам никак
не постигнуть всех тонкостей работы с О і
Операционная система.
.. Вы, наверное, уже догадались,
что я предложу ©. И тем не менее, как говогил товагищ Ле-
нин, «Ііпих, Ьших и еще раз Ьпих! ©» Действительно, все, что
я буду описывать ниже, в первую очередь актуально для пин-
гвина. Хотя и под Windows наверняка заработает. Но не все.
Итак, начнем.
У библиотеки Q t есть своя система общепринятых обо-
значений, и лучше запомнить их сразу, чем постоянно насту-
пать на одни и те же грабли. Во-первых, имена свойств, функ-
ций, методов, конструкторов-деструкторов обозначаются по
принципу
перваяВукваСтрочная,
например,
setBack-
groundPalette, setText, exec
и так далее. Имена классов
обозначаются так:
оимякласса,
например:
QWidget, QPush-
Button, QTextEdit.
Во-вторых, почти каждый класс Q t вы-
несен в отдельный заголовочный файл с одноименным на-
званием. Например, для подключения QPushButton нужно ис-
пользовать
#include <qpushbutton.h>,
для QCheckBox —
#include <qcheckbox.h>.
Есть и некоторые исключения из
этого правила — например, описания всех Layout-классов
объединены в один заголовочный файл qlayout.h.
В тексте программ я буду давать довольно обширные ком-
ментарии. Естественно, вам их писать не нужно ©.
Первым делом напишем простейшую Hello_world!-пpo-
грамму, которая бы выводила но экран окошко с кнопкой
H ello w o rld ! Оригинально, не так ли ©? Приступим к делу.
Для начала нам нужно создать отдельную папочку, где мы
будем хранить программу (рис. 1 ). Назовем ее hello. В этой
директории создадим файл проекта hello.pro со следующим
содержанием:
TEMPLATE=арр
SOURCES=hello.ерр
В первой строчке мы указываем, что будем создавать при-
ложение
(арр
— от application), a во второй — сообщаем пе-
ременной
sources
имена файлов с исходными кодами. Точ-
нее, такой файл у нас всего один, да и то пока не реализо-
ванный © . Давайте исправим этот недостаток:
tfinclude <qapplication.h>
#include <qpushbutton.h>
//подключаем
заголовочные
файлы для использования
классоЕ
QApplication и QPushButton
int maintint arge, char *argv[] )
{
QApplication a(argc, argv) ; //статично создаем объ-
ект, который инкапсулирует в себе необходимые дейст-
вия для запуска Qt-программы
QPushButton *mainwidget =
new QPushButton ("Hello, world!",0); //создаем
кнопку с надписью "Hello, world! " ; второй параметр'
конструктора указывает на дочерний виджет , в данном
случае он равен нулю
а.setMainwidget(mainwidget); //устанавливаем соз-
данную кнопку Е качестве центрального виджета
mainWidget->show{); //показываем окно программы на
экране
return а.ехес() ; //запускаем приложение
}
В любой библиотеке виджетов (в том числе и в Qt) глав-
ным является понятие.
.. угадайте, какое? Правильно, «вид-
жет» © (widget). Я уже несколько раз в этой статье употре-
бил это непонятное слово и только сейчас удосужился о нем
рассказать. Итак, виджеты — это те самые «кирпичики», из
которых строится интерфейс «оконных» программ. Кнопки,
надписи, менюшки, текстовые поля, раскрывающиеся списки —
все это виджеты. Существуют и виджеты-контейнеры, которые
содержат в себе другие виджеты, например, вкладки, пане-
ли, GroupBox'bi и другие. В нашем случае окно программы
состоит только из одного виджета — кнопки m ainwidget.
Теперь пришло время собрать программу. Для этого зай-
дите в каталог с программой и выполните из консоли
qmake
для создания необходимого Makefile, а затем
make
для сбор-
ки программы.
Если вы работаете в Microsoft Visual C++, то командой
qmake -tp vc hello.pro
вы можете создать проект Visual
Studio, а затем скомпилировать программу из этой среды. В
случае с KDevelop все еще проще — данная оболочка спо-
собна самостоятельно импортировать уже существующий
qmake-based проект.
Ну а теперь время запустить программу. Появится вот та-
кое окошко — рис. 2. Вы можете попробовать изменить раз-
меры окна и увидите, что кнопка также увеличивается, за-
полняя всю свободную область окна.
Рекомендую запустить Q t Assistant и почитать документа-
цию no Qt. Очень хорошее руководство по Qt на русском
языке доступно
ПО
ссылке hHp://www.opennet.ru/docs/RUS/qt3_
prog/HTML.tar.gz (5 Мб).
(Продолжение следует)
предыдущая страница 40 Мой Компьютер 2005 06 читать онлайн следующая страница 42 Мой Компьютер 2005 06 читать онлайн Домой Выключить/включить текст