2
我在我的代碼中有一個QAction,它鏈接到一個工具欄按鈕和一個快捷方式。此QAction用於設置焦點並顯示過濾器欄小部件。 QAction在被快捷方式調用時需要特殊事件處理,以便在我的過濾器欄小部件上設置焦點。而如果使用工具欄按鈕觸發,則過濾器欄的可見性將被切換。如何判斷我的QAction是否被快捷方式觸發?
我的QAction是:
QAction* showFilterBar = actionCollection()->addAction("show_filter_bar");
showFilterBar->setText(i18nc("@action:inmenu Tools", "Filter"));
showFilterBar->setToolTip(i18nc("@info", "Toggle the Filter Bar"));
showFilterBar->setIcon(QIcon::fromTheme("view-filter"));
showFilterBar->setCheckable(true);
actionCollection()->setDefaultShortcut(showFilterBar, Qt::CTRL | Qt::Key_I);
connect(showFilterBar, &QAction::triggered, this, &DolphinMainWindow::toggleFilterBar);
而對於我toggleFilterBar函數的代碼是:
void DolphinMainWindow::toggleFilterBar()
{
m_activeViewContainer->setFilterBarVisible(!m_activeViewContainer->filterBarHasFocus());
updateViewActions();
}
因此,我的問題是,我需要弄清楚如果的QAction是按調用工具欄按鈕或者它是否被快捷方式調用。我怎樣才能找到這個?