qt多个复选框如何获取选中状态与被选中的对象?

w971433060 2017-10-06 11:06:13
小白请教一些问题,望各位多多支持

//生成复选框(根据传入Excel类)
void MainWindow::genCheckBox(ExcelInformation excelInf){
if(excelInf.colNum > 0){
QCheckBox *box[excelInf.colNum];
//QCheckBox *box = new QCheckBox[excelInf.colNum];
int i=0;
for(i=0; i<excelInf.colNum; i++){
box[i] = new QCheckBox(this);
box[i]->setGeometry(QRect(30+100*i, 200, 100, 20));
box[i]->setText(excelInf.qstrList[i]);
box[i]->setVisible(true);
connect(box[i], SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int)));
}
}
else{
QCheckBox *box = new QCheckBox[0];
}
}

以上代码是根据读取到的Excel文件的第一行数据,动态生成若干个复选框,用户点击选中复选框,最后点击“生成文本”按钮,我想获取用户选择了哪些框,然后做一些处理,现在在槽函数里面可以收到状态改变值,比如选中是2,未选中是0,但是不知道是哪几个框。

本来一个比较不妥的办法,我想在一个全局数组里面记录勾选的框的序号,但是也获取不到是哪一个框。
...全文
2758 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
橙儿稻香 2017-10-07
  • 打赏
  • 举报
回复
引用 2 楼 u014430031 的回复:
[quote=引用 1 楼 u014430031 的回复:] 看你的代码是把传入Excel类的数量来生成checkbox并且选中。
qt多个复选框如何获取选中状态与被选中的对象 给一个思路 for循环checkbox的数量 if(box[i]->isvalue ==true) [/quote] connect(box[i], SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int))); 如果要用槽 不建议connect写在循环内 用上面的办法获取了之后 emit stateChanged(i)
橙儿稻香 2017-10-07
  • 打赏
  • 举报
回复
引用 1 楼 u014430031 的回复:
看你的代码是把传入Excel类的数量来生成checkbox并且选中。
qt多个复选框如何获取选中状态与被选中的对象 给一个思路 for循环checkbox的数量 if(box[i]->isvalue ==true)
橙儿稻香 2017-10-07
  • 打赏
  • 举报
回复
看你的代码是把传入Excel类的数量来生成checkbox并且选中。

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧