QT5QListView表格中添加复选框CheckBox
由于最近项⽬中需要⽤到在表格每⾏第⼀列添加复选框checkBox,⽤于选择是否打开IO板对应外部界接⼝,拟实现类似如下效果(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();
qt listviewQStandardItem *Item = new QStandardItem();
Item->setCheckable( true );
Item->setCheckState( Qt::Checked );
model->setItem( 0, Item );
listView->setModel( model );
我的具体项⽬,⽤到第⼆中类型,QT中实现如下:
在UI界⾯中添加TableView表格控件
(1)MainWindow.h中声明
QStandardItemModel *modelTabIOOut; //Tab表模型
QStandardItem *Item_IOCheckBox[32]; //表格共设置32⾏,需要32个Item_IOCheckBox复选框类对象
此处需注意⽤到对象数组动态初始化
类名称[] 对象数组名 = new 类名称[3];
对象数组名[0] = 对象;
对象数组名[1] = 对象;
对象数组名[2] = 对象;
在MainWindow.cpp的构造函数中
modelTabIOOut = new QStandardItemModel();//输出IO表格
for(int i=0;i<32;i++)
{
Item_IOCheckBox[i] = new QStandardItem();
}
在MainWindow.cpp的初始化函数中
//输出IO表格模型
modelTabIOOut->setColumnCount(3);//设置列数
modelTabIOOut->setRowCount(32);//设置⾏数
modelTabIOOut->setHeaderData(0,Qt::Horizontal," ");
modelTabIOOut->setHeaderData(1,Qt::Horizontal,"位");
modelTabIOOut->setHeaderData(2,Qt::Horizontal,"标签");
//输出IO表属性
for(int i=0;i<32;i++)
{
Item_IOCheckBox[i]->setCheckable(true);
Item_IOCheckBox[i]->setCheckState( Qt::Checked );
modelTabIOOut->setItem( i, Item_IOCheckBox[i] );
modelTabIOOut->setItem( i, 1, new QStandardItem(QString::number(i)));
}
ui->tableView_IOOut->horizontalHeader()->setDefaultAlignment(Qt::AlignCenter);//字体居中ui->tableView_IOOut->verticalHeader()->setDefaultSectionSize(20);//固定⾏⾼度为6
ui->tableView_IOOut->verticalHeader()->setVisible(false);    //列表头不可见
ui->tableView_IOOut->setShowGrid(true);//表中⽹格线可见
ui->tableView_IOOut->setModel(modelTabIOOut);
ui->tableView_IOOut->setColumnWidth(0,40);
ui->tableView_IOOut->setColumnWidth(1,40);
ui->tableView_IOOut->setColumnWidth(2,320);
最终效果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。