/home/wuyan/farPoint/src/apps/MultimasterTest/mainwindow.cpp:292: error: invalid use of non-static member function 'void QWidget::customContextMenuRequested(const QPoint&)' connect(tableWidget &QTableWidget::customContextMenuRequested, this, [ = ]() { ^~~~~~~~~~~~~~~~~~~~~~~~~~
时间: 2023-07-03 21:30:47 浏览: 112
这个错误是因为 `connect` 函数的第一个参数应该是信号,而不是槽函数。而 `QTableWidget::customContextMenuRequested` 是一个信号,所以你需要将其作为第一个参数传递给 `connect` 函数。
正确的写法应该是:
```
connect(tableWidget, &QTableWidget::customContextMenuRequested, this, [ = ]() {
// 槽函数的实现
});
```
注意,第一个参数是 `tableWidget`,而不是 `tableWidget &QTableWidget::customContextMenuRequested`。
相关问题
/home/wuyan/farPoint/src/apps/MultimasterTest/mainwindow.cpp:245: error: invalid use of incomplete type 'class QScrollBar' ui->packetTable->verticalScrollBar()->setContextMenuPolicy(Qt::NoContextMenu); ^~
这个错误是因为在使用QScrollBar类之前没有包含相应的头文件。请确保在包含QScrollBar类之前包含了相应的头文件。例如,在使用QScrollBar类之前,您应该包含以下头文件之一:
```
#include <QScrollBar>
#include <QtWidgets/QScrollBar>
```
如果仍然存在问题,请检查您的Qt版本是否正确,并检查您的代码是否正确使用了Qt的命名空间。
/home/wuyan/farPoint/src/apps/MultimasterTest/mainwindow.cpp:4304: error: 'error' is not a member of 'QMessageBox' QMessageBox::error(this, tr("错误"), tr("未搜索到点号%1").arg(ui->spinBox->text().toInt()),"确认"); ^~~~~
根据错误信息,您的代码中使用了QMessageBox的error静态方法,但是编译器报错说error不是QMessageBox的一个成员。这可能是因为您的Qt版本太低而不支持这个方法。
建议您尝试使用其他QMessageBox提供的方法,比如critical或warning。这些方法也可以用于显示错误信息和警告信息。
例如,您可以将代码修改为:
```
QMessageBox::critical(this, tr("错误"), tr("未搜索到点号%1").arg(ui->spinBox->text().toInt()), QMessageBox::Ok);
```
其中,critical方法用于显示错误信息,第四个参数QMessageBox::Ok表示消息框上只有一个确认按钮。
如果您的Qt版本确实支持error方法,您可以检查是否正确引入了QMessageBox头文件,并且是否使用了正确的命名空间。例如:
```
#include <QMessageBox>
// ...
QMessageBox::StandardButton ret = QMessageBox::error(this, tr("错误"), tr("未搜索到点号%1").arg(ui->spinBox->text().toInt()), QMessageBox::Ok);
if (ret == QMessageBox::Ok) {
// 用户点击了确认按钮
}
```
阅读全文