如何将QAction从QMenu传递到Qt槽

时间:2014-12-02 15:00:17

标签: c++ qt5 qt-signals qaction

我在Qt中的新功能,我有问题如何将QAction作为参数传递,如下代码:

connect(fileToolBarAct, SIGNAL(toggled(bool)), this, SLOT(ToggleBar(fileToolBarAct));

这是我的插槽功能:

void MainWindow::ToggleBar(QAction& what)
{
    what.isCheckable();
}

2 个答案:

答案 0 :(得分:2)

QObject::connect不能像这样工作。您无法将对象传递给SIGNALSLOT宏。 SIGNALSLOT宏应该使用函数签名。另外the signature of a signal must match the signature of the receiving slotQt文档中所述。

我发现您缺乏对信号和插槽机制的理解,我建议您阅读Qt Signals and Slots文档以获取更多信息。阅读Qt Signals and Slots文档将为您清除所有内容。

答案 1 :(得分:0)

onnect(fileToolBarAct, SIGNAL(toggled(bool)), this, SLOT(ToggleBar(bool));


void MainWindow::ToggleBar(bool checked)
{
    QAction* action = qobject_cast<QOAction*>(sender());
    if (action) 
         action->setChecked(checked);
}