[Error] invalid use of member 'void QAction::triggered(bool)' (did you forget the '&' ?)该怎么解决
时间: 2024-11-27 18:23:59 浏览: 10
for循环中删除map中的元素valgrind检测提示error:Invalid read of size 8
错误提示 `[Error] invalid use of member 'void QAction::triggered(bool)' (did you forget the '&' ?)` 是因为你试图直接调用 `QAction::triggered` 函数而不是通过成员指针或引用去调用。在Qt中,如果想连接一个信号(如`triggered`)到一个槽(函数),通常需要使用 `&` 来获取该信号的成员函数地址。
你需要做的是修改连接语句,将 `triggered` 后面加上 `()` 并在其前面添加 `&` 符号,使其成为指向信号处理函数的函数指针。例如,如果你想要连接 `openAct` 的 `triggered` 信号到 `openFile` 槽函数,正确的做法应该是:
```cpp
connect(openAct, &QAction::triggered, this, &MyMainWindow::openFile);
```
这里 `&QAction::triggered` 表示 `QAction` 类的 `triggered` 信号,`&this->openFile` 表示当前类 `MyMainWindow` 中 `openFile` 成员函数的地址。记得确保你已经声明了 `openFile` 作为 `public slots` 或者至少是 `protected slots`,这样才能从其他地方通过信号进行调用。
阅读全文