c++ - 从 MainWindow 移动到函数时替换 THIS

标签 c++ qt

我已将以下代码从 MainWindow 构造函数移至 MainWindow 中的一个函数。

void allFilters(QStringList list){
    QWidget *w = new QWidget(this);
    w->setFixedSize(300,200);
    QVBoxLayout *vbox = new QVBoxLayout;

    foreach(QString filt, list){
        QCheckBox *checkbox = new QCheckBox(filt, this);
        checkbox->setChecked(true);
        vbox->addWidget(checkbox);

        connect(checkbox, SIGNAL(stateChanged(int)), this, SLOT(cbstate(int)));

    }

    w->setLayout(vbox);
    w->show();
}

this 现在给我带来了问题。我假设有替代方案,但我不知道它是什么?

希望有人能帮助我!

最佳答案

看起来 allFilters 不是 MainWindow 中的成员函数。 this 仅在非静态成员函数中有效,因为它指向对象的实例。

你需要这样定义它

void MainWindow::allFilters(QStringList list)

关于c++ - 从 MainWindow 移动到函数时替换 THIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18080343/

相关文章:

python - 将 int 打包到字符串中

c++ - 在 paintEvent 之后恢复 TextCursor

c++ - Opencv:向后扭曲

c++ - 只产生一个值的迭代器?

python - 在 QtDesigner GUI 中嵌入 matplotlib 图

c++ - 如何重新定义内置键盘快捷键的行为?

c++ - qml 元素的自定义渲染

c++ - 是否可以只使用 QT 和 WebAssembly(而不是 HTML + CSS + JavaScript)来开发前端 Web?

c++ - 从源代码构建 Qt 5.8 - 配置 : Unknown command line option '-c++11'

c++ - 参数包递归扩展后`no matching function for call`