Диалоговое окно, созданное методом QInputDialog::getText
QLineEdit
. Параметр режима редактирования, передаваемый в функцию getText
, управляет способом отображения набираемого текста точно так же, как аналогичный параметр режима виджета QLineEdit
. Вы можете также задать текст, выводимый по умолчанию, или оставить поле пустым, как показано на рис. 17.9. У всех окон QInputDialog
есть кнопки OK и Cancel, и в метод передается указатель типа bool
для обозначения нажатой кнопки — результат равен TRUE
, если пользователь щелкает мышью кнопку OK.Метод getItem
QComboBox
предлагает пользователю список вариантов:bool result;
QStringList options;
options << "London" << "New York" << "Paris";
QString city = QInputDialog::getItem("Holiday", "Please select a
destination:", options, 1, TRUE, &result, this, "combo");
if (result) selectDestination(city);
Созданное диалоговое окно показано на рис. 17.10.
Рис. 17.10
Функции getInteger
getDouble
действуют во многом аналогично, поэтому мы не будем на них останавливаться.Применение
Компиляция приложения с библиотеками KDE и Qt становится утомительным занятием, поскольку ваш make-файл получается очень сложным из-за необходимости использовать moc
qmake
для создания ваших make-файлов.Если вы уже пользовались комплектом Qt, вам, возможно, знакома утилита tmake
qmake
, поставлявшееся с предыдущими версиями Qt.Утилита qmake
Типичный 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
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);