QTableWidget,居中 cellWidgets

Nia*_*ite 6 c++ qt qtablewidget qtablewidgetitem qcheckbox

有没有办法将QCheckBox单元格小部件放置在单元格QTableWidget的中心,而不是在左侧,而不需要额外的QWidget并将复选框添加到它的布局中?

Far*_*had 7

使用setCellWidget到QCheckBox添加到表:

QWidget *checkBoxWidget = new QWidget(); //create QWidget
QCheckBox *checkBox = new QCheckBox();   //create QCheckBox
QHBoxLayout *layoutCheckBox = new QHBoxLayout(checkBoxWidget); //create QHBoxLayout 
layoutCheckBox->addWidget(checkBox);     //add QCheckBox to layout
layoutCheckBox->setAlignment(Qt::AlignCenter); //set Alignment layout
layoutCheckBox->setContentsMargins(0,0,0,0);

ui->tableWidget->setCellWidget(0,0, checkBoxWidget);
Run Code Online (Sandbox Code Playgroud)

截屏

还可以使用这些行来调整内容的大小:

ui->tableWidget->resizeRowsToContents();
ui->tableWidget->resizeColumnsToContents();
Run Code Online (Sandbox Code Playgroud)

setCellWidget:设置要在给定行和列的单元格中显示的给定小部件,将小部件的所有权传递给表格。

参考:https : //evileg.com/en/post/79/