由于最近项目中需要用到在表格每行第一列添加复选框checkBox,用于选择是否打开IO板对应外部界接口,拟实现类似如下效果
在C#中对于ListView表格,可通过直接设置属性ListView.CheckBoxes=true来实现,但是QT中QStandardItemModel没有对应的function,需要通过其他方式来实现,可参考以下博文:https://www.cnblogs.com/godcity/p/5957256.html。博文中的实现方式可根据继承的不同类表格实现该功能
(1)对于QListWidgetItem类表格
QListWidgetItem *item = new QListWidgetItem;
item->setData( Qt::DisplayRole, "text" );
item->setData( Qt::CheckStateRole, Qt::Checked );
listWidget->addItem( item );
(2)对于QStandardItemModel类表格
QStandardItemModel *model = new QStandardItemModel();
QStandardItem *Item = new QStandardItem();
Item->setCheckable( true );
Item->setCheckState( Qt::Checked );
model->setItem( 0, Item );
listView->setModel( model );
我的具体项目,用到第二中类型,QT中实现如下:
在UI界面中添加TableView表格控件