QT开发中文网

dev_buttonList = this->ui->groupBox_dev->findChildren();报错error: no match for 'operator=' (operand types are 'QList' and 'QList') dev_buttonList = this->ui->groupBox_dev->findChildren(...

您正在将QList<QCheckBox*>类型的列表赋值给dev_buttonList变量,但是该变量似乎声明为了QList<QPushButton*>类型,因此编译器会报错。

为了解决这个问题,您需要确保变量类型与实际数据类型相匹配。如果您想使用一个包含多种控件类型的列表,则可以将其声明为QWidget的指针列表,并在需要时进行动态转换。

以下是一些可能有用的示例代码:

// 声明 QWidget 指针列表
QList<QWidget*> dev_buttonList;

// 查找所有 QCheckBox 控件并将它们添加到 dev_buttonList 中
QList<QObject*> obj_list = this->ui->groupBox_dev->children();
for (int i = 0; i < obj_list.count(); ++i) {
    if (qobject_cast<QCheckBox*>(obj_list[i])) {
        dev_buttonList.append(qobject_cast<QCheckBox*>(obj_list[i]));
    }
}

以上代码首先声明一个包含QWidget指针的列表,然后使用QObject::children()函数获取所有子控件,并使用qobject_cast<>函数对每个子控件进行动态转换以确保它是一个QCheckBox对象。最后,只有当动态转换成功时,才将其添加到dev_buttonList中。

请注意,在本例中,我们使用了qobject_cast<>函数来执行安全的运行时类型检查和转换。这样可以避免由于强制转换错误而导致程序崩溃或出现未定义的行为。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=1639

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?