您好,欢迎来到易妖游戏网。
搜索
您的当前位置:首页Qt-QtableView实现的表格中添加复选框checkBox控件

Qt-QtableView实现的表格中添加复选框checkBox控件

来源:易妖游戏网

一、需求描述

需求的描述:基于View/Model视图/模型实现的表格中,某一列添加复选框控制这一列的选择状态。

二、目的样式

三、实现方案

在网上查到有相关四种解决方案,目前在四种解决方案中没有找到理想的解决方式,后续可能会用到delegate代理相关的内容。

第三种静态显示实现方法:

void AddDisposPolicyWindow::add_checkBox(QTableView *table, int row)
{
    QWidget *widget = new QWidget(table);
    QCheckBox *checkbox = new QCheckBox();
    QHBoxLayout *hLayout = new QHBoxLayout();
    
    hLayout->addWidget(checkbox);
    hLayout->setMargin(0);                              // 必须添加, 否则CheckBox不能正常显示
    hLayout->setAlignment(checkbox, Qt::AlignCenter);   // 居中显示复选框
    
    widget->setLayout(hLayout);
    table->setIndexWidget(table->model()->index(row , 0), widget);

}

项目使用的解决方式是对model中的item元素设置其属性,即可实现添加复选框的功能。

void AddDisposPolicyWindow::add_checkBox_model(QStandardItemModel *model, int row)
{

  QStandardItem *item = new QStandardItem();
  item->setCheckable(true);
  item->setCheckState(Qt::Unchecked);
  item->setEditable(false); 

  model->setItem(row, 0, item);
  model->item(row, 0)->setTextAlignment(Qt::AlignHorizontal_Mask); 
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- vipyiyao.com 版权所有 湘ICP备2023022495号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务