Qt控件如何在QTableWidget表格内居中显示的解决方法
使用QRadioButton控件举例:
//创建控件
QRadioButton *rbtn = new QRadioButton();
rbtn->setObjectName("checkSelect");//用来获取rbtn的状态时会用到
//增加widget+布局巧妙实现居中
QWidget *widget = new QWidget();
QHBoxLayout *layout = new QHBoxLayout();
layout->setMargin(0);//一定要有
layout->addWidget(rbtn);
layout->setAlignment(rbtn, Qt::AlignCenter);//控件在布局中居中显示
widget->setLayout(layout);
//添加到表格中
TableWidget->setCellWidget(0, 0, widget);
代码完成效果:
布局完成后,希望点击按钮对其状态进行修改,可通过以下代码获取其状态:
//获得控件
QWidget * pWidget = (QWidget *)TableWidget->cellWidget(0, 0);
//获取pWidget的子控件,其中checkSelect是前面设置的setObjectName的值
QCheckBox * pCheckBox = pWidget->findChild<QCheckBox *>("checkSelect");
if (pCheckBox->isChecked())
{
……
}