您正在将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<>函数来执行安全的运行时类型检查和转换。这样可以避免由于强制转换错误而导致程序崩溃或出现未定义的行为。