действуют во многом аналогично, поэтому мы не будем на них останавливаться.
Применение qmake для упрощения написания make-файлов
Компиляция приложения с библиотеками KDE
и Qt становится утомительным занятием, поскольку ваш make-файл получается очень сложным из-за необходимости использовать
moc
и иметь библиотеки здесь, там и везде. К счастью, Qt поставляется с утилитой
qmake
для создания ваших make-файлов.
Примечание
Если вы уже пользовались комплектом Qt, вам, возможно, знакома утилита
tmake
— более раннее (и теперь устаревшее) воплощение
qmake
, поставлявшееся с предыдущими версиями Qt.
Утилита
qmake
принимает в качестве входного файл .pro. Этот файл содержит самые существенные сведения, необходимые для компиляции, такие как исходные тексты, заголовочные файлы, результирующий двоичный файл и местонахождения библиотек KDE/Qt.
Типичный pro-файл среды KDE выглядит следующим образом:
TARGET = app
MOC_DIR = moc
OBJECTS_DIR = obj
INCLUDEPATH = /usr/include/kde
QMAKE_LIBDIR_X11 += /usr/lib
QMAKE_LIBS_X11 += -lkdeui -lkdecore
SOURCES = main.cpp window.cpp
HEADERS = window.h
Вы задаете результирующий двоичный файл, временные каталоги moc и объектных файлов, путь к библиотеке KDE и исходные тексты, и заголовочные файлы, из которых формируется приложение. Учтите, что местонахождение файлов библиотек и заголовочных файлов KDE зависит от вашего дистрибутива. Пользователи SUSE должны приравнять
INCLUDEPATH
путь /opt/kde3/include и
QMAKE_LIBS_X11
путь /opt/kde3/lib.
$ qmake file.pro -о Makefile
Затем вы можете выполнить команду
make
как обычно, что не вызовет затруднений. Для упрощения процедуры построения приложения следует использовать
qmake
с программами любой сложности, применяющими KDE/Qt.
Создание меню и панелей инструментов с помощью KDE
Для того чтобы продемонстрировать мощь виджетов KDE, мы оставили меню и панели инструментов напоследок, поскольку они — уж очень наглядные примеры того, как библиотеки KDE экономят время и усилия по сравнению с применением только Qt или любых других комплектов с элементами графического пользовательского интерфейса.
Обычно в библиотеках GUI элементы меню и панелей инструментов — отличающиеся элементы, каждый со своим собственным виджетом. Вы должны создавать отдельные объекты для каждого элемента и отслеживать изменения, например, делая недоступными определенные варианты, каждый отдельно.
У программистов KDE появилось лучшее решение. Вместо такого обособленного
подхода в KDE определен виджет
KAction
для представления действия, которое может выполнить приложение. Это действие может открыть новый документ, сохранить файл или вывести окно справки.
KAction
присваивается текст, клавиатурный акселератор, пиктограмма и слот, который вызывается при активизации действия:
KAction *new_file = new KAction("New", "filenew",
KstdAccel::shortcut(KstdAccel::New), this,
SLOT(newFile), this, "newaction");
Затем
KAction
может быть вставлено в меню и панель инструментов без дополнительного описания:
new_file->plug(a_menu);
new_file->plug(a_toolbar);
Таким образом, вы создали пункт меню New и кнопку панели инструментов, которые вызывают
newFile
при щелчке кнопкой мыши.
Теперь если вам нужно отменить
KAction
— скажем, вы не хотите, чтобы пользователь мог создать новый файл, — вызов централизован:
new_file->setEnabled(FALSE);
Это все, что касается меню и панелей инструментов в среде KDE — на самом деле очень легко и просто. Далее приведен конструктор виджета