Читать книгу 📗 "Основы программирования в Linux - Мэтью Нейл"
KstdAccel::shortcut(KstdAccel::New), this, SLOT(newFile()), this, "newaction"); KAction *quit_action = KStdAction::quit(KApplication::kApplication(), SLOT(quit()), actionCollection()); KAction *help_action = KStdAction::aboutApp(this, SLOT(aboutApp()), actionCollection());4. Создайте два меню верхнего уровня и включите их в строку меню
KApplicationQPopupMenu *file_menu = new QPopupMenu;QPopupMenu *help_menu = new QPopupMenu;menuBar()->insertItem("&File", file_menu);menuBar()->insertItem("&Help", help_menu);5. Теперь вставьте действия в меню и панель инструментов, добавив разделительную линию между
new_filequit_action new_file->plug(file_menu); file_menu->insertSeparator(); quit_action->plug(file_menu); help_action->plug(help_menu); new_file->plug(toolBar()); quit_action->plug(toolBar());}6. В заключение несколько определений слотов:
aboutAppKAboutquitKApplicationvoid KDEMenu::newFile() { // Создание нового файла}void KDEMenu::aboutApp() { KAboutDialog *about = new KAboutDialog(this, "dialog"); about->setAuthor(QString("A. N. Author"), QString("[email protected]"), QString("http://url.com"), QString("work")); about->setVersion("1.0"); about->show();}int main(int argc, char **argv) { KApplication app(argc, argv, "cdapp"); KDEMenu* window = new KDEMenu("kdemenu"); app.setMainWidget(window); window->show(); return app.exec();}7. Далее вам нужен файл menu.pro для утилиты
qmakeTARGET = kdemenuMOC_DIR = mocOBJECTS_DIR = objINCLUDEPATH = /usr/include/kdeQMAKE_LIBDIR_X11 += -L$KDEDIR/libQMAKE_LIBS_X11 += -lkdeui -lkdecoreSOURCES = KDEMenu.cppHEADERS = KDEMenu.h8. Теперь запустите
qmake$ <b>qmake menu.pro -о Makefile</b>$ <b>make</b>$ <b>./kdemenu</b>Как это работает
Несмотря на то, что этот пример получился чуть длиннее других, программный код довольно краток, если учесть всю выполняемую им работу по созданию строки меню и самих меню. Лучшее качество виджетов
KActionПостроение приложений KDE требует больше работы, чем создание большинства программ, по крайней мере, на первый взгляд. В действительности файл menu.pro и команда
qmakeНа рис. 17.11 и 17.12 показано, как появляются в окне меню и кнопки панели инструментов.

Рис. 17.11

Рис. 17.12
И вот оно! Мы закончили наш тур по Qt и KDE, рассмотрев базовые элементы, всех приложений GUI, окна, схемы размещения, кнопки, диалоговые окна и меню. Существует бесчисленное множество виджетов Qt и KDE, о которых мы не упоминали, начиная с
QColorDialogKHTMLПриложение для работы с базой данных компакт-дисков с использованием KDE/Qt
Теперь, когда вы можете использовать силу и мощь KDE/Qt, пришло время снова обратить внимание на приложение для работы с компакт-дисками, чтобы привести его в чувство.
Напоминаем, чего вы хотите добиться от вашего приложения для работы с базой данных компакт-дисков:
□ регистрация в базе данных из графического пользовательского интерфейса;
□ поиск компакт-диска в базе данных;
□ вывод информации о компакт-диске и его дорожках;
□ добавление компакт-диска в базу данных;
□ отображение окна About (О программе).
MainWindow
Начнем обсуждение с программного кода для главного окна приложения, которое содержит виджет поля поиска и список для отображения результатов поиска.
1. Начните с ввода программного кода в файл MainWindow.h (или загрузите его с Web-сайта книги). Поскольку окно содержит виджет
QLineEditQListView#include <kde/kmainwindow.h>#include <qlistview.h>