На самом деле я работаю над проектом с 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
..survive8
а также born0
..born8
флажки.
При компиляции это не показывает ошибку в Windows, но в Linux у меня есть эта ошибка:
void QAbstractButton :: clicked (bool) ‘защищен в этом контексте
подключения (род [I], &QCheckBox :: clicked, это, &Automate_2D :: on_born_i_clicked);
Что я могу сделать, чтобы это исправить? Я не понимаю, почему это появляется только в Linux.
Я нашел решение, если оно может кому-то помочь.
В QT я зашел в окно «проекта» (слева), а в
Projetct> Deskop QT 5.11.0 GCC 64Bit> Сборка
Я просто изменил путь к файлу для компиляции с новым файлом, который я только что создал и который был пустым.
Затем я снова попытался скомпилировать свой проект, и он сработал!
(Спасибо за вашу помощь)
Других решений пока нет …