C:\Users\22836\Desktop\QT\untitled1\mainwindow.cpp:27: error: No matching member function for call to 'append'
时间: 2023-08-27 09:19:52 浏览: 203
非常抱歉,我的错误。QStringList确实有一个名为`append`的成员函数,而不是`push_back`。因此,你应该使用`append`函数来添加元素到QStringList中。
请将代码修改为以下形式:
```cpp
connect(ui->checkBox, &QCheckBox::stateChanged, [=](int state){
qDebug() << state << endl;
if (state == 2) {
strList.append(ui->checkBox->text());
}
//state 2选中 0未选中
});
```
通过使用`append`函数,你可以将元素添加到QStringList中。
非常抱歉给你带来了困惑。请尝试修改代码并重新编译,看看是否能够解决问题。如果还有其他问题,请随时向我提问。
相关问题
D:\Code\untitled1\mainwindow.cpp:14: error: expected type-specifier before 'knob' ..\untitled1\mainwindow.cpp: In constructor 'MainWindow::MainWindow(QWidget*)': ..\untitled1\mainwindow.cpp:14:22: error: expected type-specifier before 'knob' knob *knob = new knob(this); ^~~~
这个错误提示是因为编译器无法识别 'knob' 类型。可能的原因是您没有正确包含该类的头文件或未定义该类。
请确保您已经包含了 'knob' 类的头文件,并且该类已经定义和实现。另外,'knob' 类名应该是大写的,而不是小写的。
如果您已经包含了正确的头文件并且该类已经定义,您可能需要检查命名空间是否正确,或者您需要在类名前加上命名空间的限定符。
如果您无法解决这个问题,请提供更多的代码和错误信息,以便我能够更好地理解问题所在。
C:\Users\22836\Desktop\QT\untitled1\mainwindow.cpp:27: error: Reference to non-static member function must be called
这个错误是因为你尝试在lambda表达式中引用了非静态成员函数。在lambda表达式中,只能直接引用静态成员函数或者全局函数。
要解决这个问题,你可以使用`this`指针来调用非静态成员函数。修改代码如下:
```cpp
connect(ui->checkBox, &QCheckBox::stateChanged, [=](int state){
qDebug() << state << endl;
if(state == 2){
strList.push_back(this->ui->checkBox->text());
}
//state 2选中 0未选中
});
```
通过使用`this`指针,你可以访问到当前对象的成员变量和成员函数。这样就能够调用非静态成员函数了。请确保在lambda表达式中使用`this`指针时,确保当前对象是有效的。
阅读全文