【Qt】在QTableWidget中添加QCheckBox并使其居中显示【2012-11-21更新】
实现思路:把QCheckBox嵌入式到一个水平布局中
1 QWidget *widget; 2 QHBoxLayout *hLayout; 3 QCheckBox *ckb; 4 ... 5 ckb = new QCheckBox(); 6 hLayout = new QHBoxLayout(); 7 widget = new QWidget(ui->tableWidget); 8 hLayout->addWidget(ckb); 9 hLayout->setMargin(0); // 必须添加, 否则CheckBox不能正常显示 10 hLayout->setAlignment(ckb, Qt::AlignCenter); 11 widget->setLayout(hLayout); 12 ... 13 ui->tableWidget->setCellWidget(row, column, widget);
获取CheckBox的指针的方法
1 QWidget *widget = (QWidget *)ui->tableWidget->cellWidget(row, column); 2 QCheckBox *ckb = (QCheckBox *)widget->children().at(1); 3 ckb->setChecked(true); 4 ...
备注:
可使用 qDebug() << widget->children(); 输出widget的child列表
从而判断CheckBox的index