Вход/Регистрация
Основы программирования в Linux
вернуться

Мэтью Нейл

Шрифт:

Таким образом, вы создали пункт меню New и кнопку панели инструментов, которые вызывают

newFile
при щелчке кнопкой мыши.

Теперь если вам нужно отменить

KAction
— скажем, вы не хотите, чтобы пользователь мог создать новый файл, — вызов централизован:

new_file->setEnabled(FALSE);

Это все, что касается меню и панелей инструментов в среде KDE — на самом деле очень легко и просто. Далее приведен конструктор виджета

KAction
:

#include <kde/kaction.h>

KAction(const QString& text, const KShortcut& cut,

 const QObject* receiver, const char* slot,

 QObject *parent, const char* name = 0);

KDE предоставляет стандартные объекты

KAction
для унификации текста, клавиатурных акселераторов и пиктограмм в разных приложениях KDE:

#include <kde/kaction.h>

KAction* openNew(const QObject* recvr, const char *slot,

 KActionCollection* parent, const char* name = 0)ж

KAction* save ...

KAction* saveAs ...

KAction* revert ...

KAction* close ...

KAction* print ...

И т.д.

Любое стандартное действие принимает одни и те же параметры; слот-приемник и функцию,

KActionCollection
и имя
KAction
. Объект
KActionCollection
управляет в окне объектами
KAction
, и вы можете получить текущий объект с помощью метода
actionCollection
окна
KMainWindow
:

KAction *saveas = KStdAction::saveAs(this, SLOT(saveAs) ,

 actionCollection, "saveas");

Выполните упражнение 17.8.

Упражнение 17.8. Приложение в KDE с меню и панелями инструментов

В приведенном далее примере вы опробуете объекты

KAction
в приложении среды KDE.

1. Начните с заголовочного файла KDEMenu.h.

KDEMenu
— это подкласс
KMainWindow
, являющегося подклассом класса
QMainWindow
.
KMainWindow
управляет сеансом в среде KDE и обладает встроенными панелью инструментов и строкой состояния.

#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
определяется вручную, a
quit_action
и
help_action
используют стандартные определения
KAction
:

KDEMenu::KDEMenu(const char *name = 0) : KMainWindow (0L, name) {

 KAction *new_file = new KAction("New", "filenew",

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
:

  • Читать дальше
  • 1
  • ...
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: