Qt - QAction

0

Mam pytanie które jest dość ogólne.
Czy QAction jest tym samym co przycisk QPushButon ? Jaka jest różnica między nimi ? Czy QAction dziedziczy jakieś elementy po QPushButton ?

Bo w sumie w widgecie wygląda on jak przycisk

https://www.bogotobogo.com/Qt/Qt5_QAction.php

0

Wystarczy czytać oryginalną dokumencję. https://doc.qt.io/qt-5/qaction.html

QAction to klasa która dostarcza abstrakcyjne pojęcie akcji do wykonania, wykorzystywanej przez różne widgety, a która nie ma swojej własnej reprezentacji graficznej.
Przeklejam przykład prosto z dokumentacji:

    const QIcon openIcon = QIcon::fromTheme("document-open", QIcon(":/images/open.png"));
    QAction *openAct = new QAction(openIcon, tr("&Open..."), this);
    openAct->setShortcuts(QKeySequence::Open);
    openAct->setStatusTip(tr("Open an existing file"));
    connect(openAct, &QAction::triggered, this, &MainWindow::open);
    fileMenu->addAction(openAct);
    fileToolBar->addAction(openAct);
1

czyli mam rozumieć, że to taka "imitacja" przycisku

NIE! To jest opis właściwości jakiejś czynności. Opis ten może zawierać kilka właściwości akcji użytkownika:

  • samą akcję
  • jej nazwę
  • skrót klawiszowy
  • ikonę
  • stan/dostępność (aktywny/nieaktywny, wybrany/niewybrany)

Teraz takie jedno QAction można przyczepić do wielu menu/przycisku itp i zmiany stany w QAction będą automatycznie odwzorowane we wszystkich podpiętych elementach UI.

1 użytkowników online, w tym zalogowanych: 0, gości: 1