Qt tableView小结

萧英睿
2023-12-01

Qt QTableView 详细总结

QTableView常用于实现数据的表格显示。

添加表头

//数据定义
QStandardItemModel  *itemModel = new QStandardItemModel ;
QTableView * tableView = new QTableView;
//数据模型 
itemModel ->setHorizontalHeaderItem(0, new QStandardItem(QObject::tr("xxx")));
itemModel ->setHorizontalHeaderItem(1, new QStandardItem(QObject::tr("xxx")));
itemModel ->setHorizontalHeaderItem(2, new QStandardItem(QObject::tr("xxx")));
//利用setModel()方法将数据模型与QTableView绑定
ui->tableView ->setModel(itemMode)l

设置表格属性

    //设置列宽不可变动,即不能通过鼠标拖动增加列宽        
    ui->tableView ->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);  
    //用户可设置,也可被程序设置成默认大小 
    ui->tableView ->horizontalHeader()->setResizeMode(1, QHeaderView::Interactive); 
    //根据空间,自动改变列宽,用户与程序不能改变列宽  
    ui->tableView ->horizontalHeader()->setResizeMode(2, QHeaderView::Stretch);   
    //根据内容改变列宽,用户与程序不能改变列宽
    ui->tableView ->horizontalHeader()->setResizeMode(3, QHeaderView::ResizeToContents);   

设置行列属性

    //设置某一列的列宽
    void QTableView::​setColumnWidth(int column, int width);
    //设置列宽最大值
    void setMaximumSectionSize(int size);
    //设置列宽最小值
    void  setMinimumSectionSize(int size);
    //默认显示行头,可以将隐藏        
    ui->tableView ->verticalHeader()->hide();   
    //隐藏行序号
	ui->tableView->verticalHeader()->hide(); 
    //设置选中时为整行选中        
    ui->tableView ->setSelectionBehavior(QAbstractItemView::SelectRows);    
    
    //获取选中单元格的属性
	ui->tableView->currentIndex();					//获取选中单元格的index  
	ui->tableView->currentIndex().column();			//当前选中单元格的列号  
	ui->tableView->currentIndex().row();			//当前选中单元格行号  
	ui->tableView->currentIndex().data();			//当前选中单元格内的数据
	//设置自动排列
	ui->tableView->setSortingEnabled(true);
	删除行:
	//x是指定删除哪一行
	itemModel ->removeRow(x);
	//删除所有行
	itemModel ->removeRows(0,model->rowCount());
	//设置隔行变色
    tableView->setAlternatingRowColors(true);

表格编辑

//表格禁止编辑
tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
//任何时候都可以编辑
tableView->setEditTriggers(QAbstractItemView::CurrentChanged );
//双击单元格
tableView->setEditTriggers(QAbstractItemView::DoubleClicked );
//单击已选中的内容
tableView->setEditTriggers(QAbstractItemView::SelectedClicked );
//按下编辑
tableView->setEditTriggers(QAbstractItemView::EditKeyPressed );
//按下任意键修改
tableView->setEditTriggers(QAbstractItemView::AnyKeyPressed );
//以上条件全包括
tableView->setEditTriggers(QAbstractItemView::AllEditTriggers );

表格选择

//整行选中
tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
//选中单个单元格
tableView->setSelectionMode(QAbstractItemView::SelectItems);
//选中一行
tableView->setSelectionMode(QAbstractItemView::SelectRows );
//选中一列
tableView->setSelectionMode(QAbstractItemView::SelectColumns );

单个选中和多个选中

//单个选中 
tableView->setSelectionMode(QAbstractItemView::SingleSelection);
//多个选中 
tableView->setSelectionMode(QAbstractItemView::ExtendedSelection);
//不能选择
tableView->setSelectionMode(QAbstractItemView::NoSelection );
//多个选中
tableView->setSelectionMode(QAbstractItemView::MultiSelection );

表格属性

//表头信息显示居左 
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft); .
//表头信息显示居右
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignRight); 
表头信息显示水平居中
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter ); 
表头信息显示可用空间文本对齐
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignJustify ); 
 类似资料: