Литмир - Электронная Библиотека
Содержание  
A
A

  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. Создайте два меню верхнего уровня и включите их в строку меню

KApplication
:

QPopupMenu *file_menu = new QPopupMenu;

QPopupMenu *help_menu = new QPopupMenu;

menuBar()->insertItem("&File", file_menu);

menuBar()->insertItem("&Help", help_menu);

5. Теперь вставьте действия в меню и панель инструментов, добавив разделительную линию между

new_file
и
quit_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. В заключение несколько определений слотов:

aboutApp
создает диалоговое окно
KAbout
для отображения сведений о программе. Учтите, что слот
quit
определен как часть
KApplication
:

void 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 для утилиты

qmake
:

TARGET = kdemenu

MOC_DIR = moc

OBJECTS_DIR = obj

INCLUDEPATH = /usr/include/kde

QMAKE_LIBDIR_X11 += -L$KDEDIR/lib

QMAKE_LIBS_X11 += -lkdeui -lkdecore

SOURCES = KDEMenu.cpp

HEADERS = KDEMenu.h

8. Теперь запустите

qmake
для создания make-файла, откомпилируйте и выполните программу:

$ <b>qmake menu.pro -о Makefile</b>

$ <b>make</b>

$ <b>./kdemenu</b>

Как это работает

Несмотря на то, что этот пример получился чуть длиннее других, программный код довольно краток, если учесть всю выполняемую им работу по созданию строки меню и самих меню. Лучшее качество виджетов

KAction
— возможность использования каждого из них в разных частях программы, таких как панель инструментов и меню в строке меню, все упомянутые возможности показаны в данном примере.

Построение приложений KDE требует больше работы, чем создание большинства программ, по крайней мере, на первый взгляд. В действительности файл menu.pro и команда

qmake
скрывают большой набор параметров, которые в противном случае вам пришлось бы вставлять вручную в ваш make-файл.

На рис. 17.11 и 17.12 показано, как появляются в окне меню и кнопки панели инструментов.

Основы программирования в Linux - image076.jpg

Рис. 17.11 

Основы программирования в Linux - image077.jpg

Рис. 17.12 

И вот оно! Мы закончили наш тур по Qt и KDE, рассмотрев базовые элементы, всех приложений GUI, окна, схемы размещения, кнопки, диалоговые окна и меню. Существует бесчисленное множество виджетов Qt и KDE, о которых мы не упоминали, начиная с

QColorDialog
— диалогового окна для выбора цвета — и заканчивая
KHTML
— виджетом Web-обозревателя — все они подробно описаны на Web-сайтах компании Trolltech и графической среды KDE. 

Приложение для работы с базой данных компакт-дисков с использованием KDE/Qt

Теперь, когда вы можете использовать силу и мощь KDE/Qt, пришло время снова обратить внимание на приложение для работы с компакт-дисками, чтобы привести его в чувство.

Напоминаем, чего вы хотите добиться от вашего приложения для работы с базой данных компакт-дисков:

□ регистрация в базе данных из графического пользовательского интерфейса;

□ поиск компакт-диска в базе данных;

□ вывод информации о компакт-диске и его дорожках;

□ добавление компакт-диска в базу данных;

□ отображение окна About (О программе).

MainWindow

Начнем обсуждение с программного кода для главного окна приложения, которое содержит виджет поля поиска и список для отображения результатов поиска.

1. Начните с ввода программного кода в файл MainWindow.h (или загрузите его с Web-сайта книги). Поскольку окно содержит виджет

QLineEdit
для поиска компакт-дисков и виджет
QListView
для вывода результатов поиска, вы должны вставить в программный код заголовочные файлы qlistview.h и qlineedit.h:

#include &lt;kde/kmainwindow.h&gt;

#include &lt;qlistview.h&gt;

315
{"b":"285844","o":1}