Читаем Основы программирования в Linux полностью

Диалоговое окно, созданное методом 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 действуют во многом аналогично, поэтому мы не будем на них останавливаться.

<p>Применение <emphasis>qmake</emphasis> для упрощения написания make-файлов</p>

Компиляция приложения с библиотеками 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.

<p>Создание меню и панелей инструментов с помощью KDE</p>

Для того чтобы продемонстрировать мощь виджетов 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);

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT