'void QAbstractButton :: clicked(bool)'受到保护

时间:2018-06-13 19:45:21

标签: c++ qt qabstractbutton

我实际上正在使用Qt 5.10.1开展项目。我正在使用Linux,而我的合作伙伴正在使用Windows。

我们写了这段代码:

QCheckBox* _survive[9] = {
        ui->survive0, ui->survive1, ui->survive2, ui->survive3,
        ui->survive4, ui->survive5, ui->survive6, ui->survive7, ui->survive8
    };
QCheckBox* _born[9] = {
        ui->born0, ui->born1, ui->born2, ui->born3,
        ui->born4, ui->born5, ui->born6, ui->born7, ui->born8
    };
    std::copy_n(_survive, 9, survive); // because arrays are not directly assignable
    std::copy_n(_born, 9, born);


for (int i = 0; i < 9; i++) {
        connect(born[i], &QCheckBox::clicked, this, &Automate_2D::on_born_i_clicked);
        connect(survive[i], &QCheckBox::clicked, this, &Automate_2D::on_survive_i_clicked);
    }

其中survive0 .. survive8born0 .. born8是复选框。

编译时,它不会在Windows上显示错误,但在Linux上我有这个错误:

  

void QAbstractButton :: clicked(bool)'在此上下文中受到保护

  connect(born [i],&amp; QCheckBox :: clicked,this,&amp; Automate_2D :: on_born_i_clicked);

我该怎么做才能修复它?我不明白为什么它只出现在Linux上。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,如果它可以帮助某人。 在QT中,我进入了“项目”窗口(左侧)和

  

Projetct&gt; Deskop QT 5.11.0 GCC 64Bit&gt;构建

我刚刚使用刚刚创建的新文件更改了编译的文件路径,该文件为空。

然后我尝试再次编译我的项目并且它有效!

(感谢您的帮助)