實現思路:把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