Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
HEADERS = window.h
Вы задаете результирующий двоичный файл, временные каталоги moc и объектных файлов, путь к библиотеке KDE и исходные тексты, и заголовочные файлы, из которых формируется приложение. Учтите, что местонахождение файлов библиотек и заголовочных файлов KDE зависит от вашего дистрибутива. Пользователи SUSE должны приравнять
INCLUDEPATH
QMAKE_LIBS_X11
$ <b>qmake file.pro -о Makefile</b>
Затем вы можете выполнить команду
make
qmake
Создание меню и панелей инструментов с помощью 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);
new_file->plug(a_toolbar);
Таким образом, вы создали пункт меню New и кнопку панели инструментов, которые вызывают
newFile
Теперь если вам нужно отменить
KAction
new_file->setEnabled(FALSE);
Это все, что касается меню и панелей инструментов в среде KDE — на самом деле очень легко и просто. Далее приведен конструктор виджета
KAction
<b>#include <kde/kaction.h></b>
<b>KAction(const QString& text, const KShortcut& cut,</b>
<b> const QObject* receiver, const char* slot,</b>
<b> QObject *parent, const char* name = 0);</b>
KDE предоставляет стандартные объекты
KAction
<b>#include <kde/kaction.h></b>
<b>KAction* openNew(const QObject* recvr, const char *slot,</b>
<b> KActionCollection* parent, const char* name = 0)ж</b>
<b>KAction* save ...</b>
<b>KAction* saveAs ...</b>
<b>KAction* revert ...</b>
<b>KAction* close ...</b>
<b>KAction* print ...</b>
И т.д.
Любое стандартное действие принимает одни и те же параметры; слот-приемник и функцию,
KActionCollection
KAction
KActionCollection
KAction
actionCollection
KMainWindow
KAction *saveas = KStdAction::saveAs(this, SLOT(saveAs()) ,
actionCollection(), "saveas");
Выполните упражнение 17.8.
В приведенном далее примере вы опробуете объекты
KAction
1. Начните с заголовочного файла KDEMenu.h.
KDEMenu
KMainWindow
QMainWindow
KMainWindow
#include <kde/kmainwindow.h>
class KDEMenu : public KMainWindow {
Q_OBJECT
public:
KDEMenu(const char * name = 0);
private slots:
void newFile();
void aboutApp();
};
2. Файл KDEMenu.cpp начните с директив
#include
#include "KDEMenu.h"
#include <kde/kapp.h>
#include <kde/kaction.h>
#include <kde/kstdaccel.h>
#include <kde/kmenubar.h>
#include <kde/kaboutdialog.h>
3. В конструкторах, создающих три виджета
KAction
new_file
quit_action
help_action
KAction
KDEMenu::KDEMenu(const char *name = 0) : KMainWindow (0L, name) {
KAction *new_file = new KAction("New", "filenew",