Na ovoj stranici

Core::ActionManager Class

class Core::ActionManager

Klasa ActionManager odgovorna je za registraciju izbornika, stavki izbornika i tipkovničkih prečaca. Više...

Header: #include <coreplugin/actionmanager/actionmanager.h>
Inherits: QObject

Signali

void commandAdded(Utils::Id id)
void commandListChanged()

Statični javni članovi

Core::ActionContainer *actionContainer(Utils::Id id)
Core::Command *command(Utils::Id id)
QList<Core::Command *> commands()
Core::Command *createCommand(Utils::Id id)
Core::ActionContainer *createMenu(Utils::Id id)
Core::ActionContainer *createMenuBar(Utils::Id id)
Core::ActionContainer *createTouchBar(Utils::Id id, const QIcon &icon, const QString &text = QString())
Core::ActionManager *instance()
bool isPresentationModeEnabled()
Core::Command *registerAction(QAction *action, Utils::Id id, const Core::Context &context = Context(Constants::C_GLOBAL), bool scriptable = false)
void unregisterAction(QAction *action, Utils::Id id)
QString withNumberAccelerator(const QString &text, const int number)

Detaljan opis

Upravitelj radnji je središnji registar radnji, njihovih prečaca i rasporeda. To je singleton koji uglavnom sadrži statičke funkcije. Ako trebate pristup instanci, na primjer za povezivanje s signalima, pozovite njezinu funkciju ActionManager::instance() .

Upravitelj radnji omogućuje centralno mjesto gdje korisnici mogu definirati sve svoje prečace na tipkovnici i pruža rješenje za radnje koje se trebaju drugačije ponašati u različitim kontekstima (poput radnji kopiraj/zamijeni/otkaži/ponovi).

Pogledajte Upravitelj akcija i naredbe za pregled interakcije između Core::ActionManager, Core::Command i Core::Context.

Registrirajte globalno aktivnu akciju "My Action" stavljanjem sljedećeg u funkciju ExtensionSystem::IPlugin::initialize() vašeg dodatka.

QAction *myAction = new QAction(Tr::tr("My Action"), this);
Command *cmd = ActionManager::registerAction(myAction, "myplugin.myaction", Context(C_GLOBAL));
cmd->setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Alt+u")));
connect(myAction, &QAction::triggered, this, &MyPlugin::performMyAction);

connect Registracija akcije vrši se na vaš primjerak QAction. Ako, na primjer, kreirate gumb alata koji bi trebao predstavljati akciju, dodajte mu akciju iz Command::action().

QToolButton *myButton = new QToolButton(someParentWidget);
myButton->setDefaultAction(cmd->action());

Također upotrijebite upravitelj akcija za dodavanje stavki u registrirane spremnike akcija, poput izbornika aplikacije ili podizbornika u tom izborniku. Registrirajte svoju akciju putem funkcije Core::ActionManager::registerAction(), dohvatite spremnik akcija za određeni ID (kao što je navedeno, na primjer, u imenskom prostoru Core::Constants) pomoću funkcije Core::ActionManager::actionContainer() i dodajte svoju naredbu u taj spremnik.

Nadovezujući se na primjer, dodavanje "Moje akcije" u izbornik "Alati" izvršilo bi se pomoću

ActionManager::actionContainer(Core::Constants::M_TOOLS)->addAction(cmd);

Vidi također Core::ICore, Core::Command, Core::ActionContainer, Core::IContext i The Action Manager and Commands.

Dokumentacija funkcija članova

[static] Core::ActionContainer *ActionManager::actionContainer(Utils::Id id)

Vraća instancu ActionContainera koja je stvorena pomoću createMenu(), createMenuBar(), createTouchBar() za navedeni id.

Koristite ID Core::Constants::MENU_BAR za dohvaćanje glavne trake izbornika.

Koristite ID-ove Core::Constants::M_FILE, Core::Constants::M_EDIT i slične konstante za dohvaćanje različitih zadaničkih izbornika.

Koristite ID Core::Constants::TOUCH_BAR za dohvaćanje glavne trake za dodir.

Vidi također ActionManager::createMenu() i ActionManager::createMenuBar().

[static] Core::Command *ActionManager::command(Utils::Id id)

Vraća instancu Command koja je stvorena pomoću registerAction() za navedeni id.

Vidi također registerAction().

[signal] void ActionManager::commandAdded(Utils::Id id)

Emitira se kada se doda naredba (s id).

[signal] void ActionManager::commandListChanged()

Emitira se kada se promijenio popis naredbi.

[static] QList<Core::Command *> ActionManager::commands()

Vraća sve registrirane naredbe.

[static] Core::Command *ActionManager::createCommand(Utils::Id id)

Stvara naredbu ili vraća postojeću naredbu s navedenim id om.

Stvorena naredba još nema pridruženih radnji pa se zapravo ne može pokrenuti. No sustav je upoznat s njom, pojavljuje se u postavkama prečaca na tipkovnici i za nju se kasnije mogu registrirati QActions. Ako već imate QAction, ID i Context koje želite registrirati, nema potrebe pozivati ovu metodu. Jednostavno izravno pozovite registerAction().

[static] Core::ActionContainer *ActionManager::createMenu(Utils::Id id)

Stvara novi spremnik radnje izbornika ili vraća postojeći spremnik s navedenim id. ActionManager posjeduje vraćeni ActionContainer. Dodajte svoj izbornik u neki drugi izbornik ili u traku izbornika pomoću funkcija actionContainer() i ActionContainer::addMenu().

Vidi također actionContainer() i ActionContainer::addMenu().

[static] Core::ActionContainer *ActionManager::createMenuBar(Utils::Id id)

Stvara novi spremnik radnje u traci izbornika ili vraća postojeći spremnik s navedenim id. ActionManager posjeduje vraćeni ActionContainer.

Vidi također createMenu() i ActionContainer::addMenu().

[static] Core::ActionContainer *ActionManager::createTouchBar(Utils::Id id, const QIcon &icon, const QString &text = QString())

Stvara novi (pod) touch bar akcijski spremnik ili vraća postojeći spremnik s navedenim id-om. ActionManager posjeduje vraćeni ActionContainer.

Imajte na umu da je moguće stvoriti samo jednu razinu pod-touch barova. Pod-touch bar bit će predstavljen gumbom s metodama icon i text (od kojih bilo koja može biti prazna), koji otvara pod-touch bar pri dodiru.

Vidi također actionContainer() i ActionContainer::addMenu().

[static] Core::ActionManager *ActionManager::instance()

Vraća pokazivač na instancu. Koristi se samo za povezivanje sa signalima.

[static] bool ActionManager::isPresentationModeEnabled()

Vraća informaciju je li način prezentacije omogućen.

Režim prezentacije je omogućen pri pokretanju Qt Creator s argumentom naredbenog retka -presentationMode. U režimu prezentacije Qt Creator prikazuje svaku pritisnutu prečacu u prozorčiću iznad.

[static] Core::Command *ActionManager::registerAction(QAction *action, Utils::Id id, const Core::Context &context = Context(Constants::C_GLOBAL), bool scriptable = false)

Omogućuje da action bude poznat sustavu pod navedenim id om.

Vraća instancu Command koja predstavlja radnju u aplikaciji i pripada ActionManager u. Možete registrirati više radnji s istim id sve dok je context različit. U tom slučaju pokretanje radnje prosljeđuje se registriranom QAction u za trenutno aktivni kontekst. Ako nije naveden neobavezni argument context, pretpostavit će se globalni kontekst. Radnju scriptable može se pozvati iz skripte bez potrebe za korisničkom interakcijom.

[static] void ActionManager::unregisterAction(QAction *action, Utils::Id id)

Uklanja znanje o akciji pod nazivom " action " unutar navedenog id-a.

Obično nije potrebno odjaviti akcije. Jedini valjani slučaj za odjavu akcija je za akcije koje predstavljaju korisnički definirane radnje, poput prilagođenih filtara Locatora. Ako korisnik ukloni takvu akciju, ona se također mora odjaviti iz upravitelja akcija kako bi nestala iz postavki prečaca itd.

[static] QString ActionManager::withNumberAccelerator(const QString &text, const int number)

Ukrašava navedenu text u numeriranom tipkom za ubrzanje number, u stilu izbornika Recent Files.

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.