Диалоговое окно, созданное методом 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);