我在Qt中的新功能,我有问题如何将QAction作为参数传递,如下代码:
connect(fileToolBarAct, SIGNAL(toggled(bool)), this, SLOT(ToggleBar(fileToolBarAct));
这是我的插槽功能:
void MainWindow::ToggleBar(QAction& what)
{
what.isCheckable();
}
答案 0 :(得分:2)
QObject::connect
不能像这样工作。您无法将对象传递给SIGNAL
和SLOT
宏。 SIGNAL
和SLOT
宏应该使用函数签名。另外the signature of a signal must match the signature of the receiving slot
如Qt
文档中所述。
我发现您缺乏对信号和插槽机制的理解,我建议您阅读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);
}