Qt之QTableWidget详细使用
来源:互联网 发布:淘宝哪些店铺书包好看 编辑:程序博客网 时间:2024/06/10 11:08
一、QTableWidget简介
QTableWidget是QT对话框设计中常用的显示数据表格的控件。
QTableWidget继承于类QTableView,所以在学习QTableWidget之前可以先看一下QTableWidget,他们两者的区别是:QTableView可以使用自定义的数据模型来显示内容(也就意味着使用时先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型。QTableWidget单元格数据是QTableWidgetItem对象来实现的(即就是不需要数据源,单元格内的信息需要逐个填充即可)。 这主要由于QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。
使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的其中一个单元格,整个表格都需要用逐个单元格对象QTableWidgetItem构建起来。
二、QTableWidget控件属性
(1)禁止编辑表格
在默认情况下,表格里的字符是可以更改的。比如双击一个单元格,就可以修改原来的内容,如果想禁止用户的这种操作,让这个表格对用户只读,可以这样:
ui.qtablewidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
(2)设置表格为选择整行
/*设置表格为整行选中*/ui.qtablewidget->setSelectionBehavior(QAbstractItemView::SelectRows);
(3)设置单个选中和多个选中
单个选中意味着每次只可以选中一个单元格,多个就是相当于可以选择”一片“那种模式。/*设置允许多个选中*/ ui.qtablewidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
(4)表格表头的显示与隐藏
对于水平或垂直方向的表头,如果不想显示可以用以下方式进行(隐藏/显示)设置:ui.qtablewidget->verticalHeader()->setVisible(true); ui.qtablewidget->horizontalHeader()->setVisible(false);
(5)设置具体单元格中字体的对齐方式
ui.qtablewidget->item(0, 0)->setTextAlignment(Qt::AlignHCenter);
(6)设置具体单元格中字体格式
ui.qtablewidget->item(1, 0)->setBackgroundColor(QColor(0,60,10)); ui.qtablewidget->item(1, 0)->setTextColor(QColor(200,111,100)); ui.qtablewidget->item(1, 0)->setFont(QFont("Helvetica"));
(7)设置具体单元格的值
ui.qtablewidget->setItem(1, 0, new QTableWidgetItem(str));
(8)把QTableWidgetItem对象内容转换为QString
QString str =ui.qtablewidget->item(0, 0)->data(Qt::DisplayRole).toString();
(9)具体单元格中添加控件
QComboBox *comBox = new QComboBox(); comBox->addItem("F"); comBox->addItem("M");ui.qtablewidget->setCellWidget(0,3,comBox);
(10)合并单元格
//合并单元格的效果ui.qtablewidget->setSpan(2, 2, 3, 2);//第一个参数:要改变的单元格行数//第二个参数:要改变的单元格列数//第三个参数:需要合并的行数//第四个参数:需要合并的列数
(11)具体单元格中插入图片
ui.qtablewidget->setItem(3, 2, new QTableWidgetItem(QIcon("images/music.png"), "Music"));
(12)设置显示网格
ui.qtablewidget->setShowGrid(true);//显示表格线
(13)设置滚动条
ui.qtablewidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条
(14)设置列标签
//初始化界面
QStringList HStrList;HStrList.push_back(QString("name"));HStrList.push_back(QString("id"));HStrList.push_back(QString("age"));HStrList.push_back(QString("sex"));HStrList.push_back(QString("department"));//设置行列数(只有列存在的前提下,才可以设置列标签) int HlableCnt = HStrList.count();ui.qtablewidget->setRowCount(10);ui.qtablewidget->setColumnCount(HlableCnt);//设置列标签ui.qtablewidget->setHorizontalHeaderLabels(HStrList);
(16)设置行和列的大小设为与内容相匹配
ui.qtablewidget->resizeColumnsToContents(); ui.qtablewidget->resizeRowsToContents();
(17)设置字体
ui.qtablewidget->setFont(font); //设置字体
(18)获取某一单元格的内容
QString strText = ui.qtablewidget->item(0, 0)->text();
(19)清空表格的内容
void QTableWidget::clear () [slot]//清空掉表格内所有内容,包括标题头void QTableWidget::clearContents () [slot]//这个清空所有内容不包括标题头
void QTableWidget::removeColumn ( int column ) [slot]//这个是删除一列,而不是清空表格void QTableWidget::removeRow ( int row ) [slot]//这个是删除一行,不是清空一行
#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); ui->tableWidget->setRowCount(10); ui->tableWidget->setColumnCount(5); ui->tableWidget->setWindowTitle("QTableWidget & Item"); ui->tableWidget->resize(400, 300); //设置表格 QStringList header; header<<"Name"<<"Age"; //表头 ui->tableWidget->setHorizontalHeaderLabels(header); ui->tableWidget->setItem(0,0,new QTableWidgetItem("张飞")); ui->tableWidget->setItem(1,0,new QTableWidgetItem("关羽")); ui->tableWidget->setItem(2,0,new QTableWidgetItem("吕布")); ui->tableWidget->setItem(0,1,new QTableWidgetItem("35")); ui->tableWidget->setItem(1,1,new QTableWidgetItem("36")); ui->tableWidget->setItem(2,1,new QTableWidgetItem("32")); ui->tableWidget->show();}Widget::~Widget(){ delete ui;}在ui文件中拉了一个Tablewidget控件。效果:
2 0
- Qt之QTableWidget详细使用
- qt 之QTableWidget控件
- Qt Class之QTableWidget
- QT之QTableWidget
- Qt之QTableWidget详解
- Qt之QTableWidget
- QTableWidget 详细使用
- QTableWidget 详细使用
- QTableWidget 详细使用
- QTableWidget 详细使用
- QTableWidget 详细使用
- QTableWidget 详细使用
- QTableWidget 详细使用
- QTableWidget 详细使用
- QTableWidget 详细使用
- QTableWidget 详细使用
- QTableWidget 详细使用
- QT QTableWidget使用
- 导出Excel工具类
- FragmentTransition replace add show hide方法的使用和差异
- 预处理语句
- MesaSQLite数据库简单使用
- 程序中执行shell命令行,获取system目录读写权限
- Qt之QTableWidget详细使用
- 计量经济学复习笔记(七)
- 理解C++ dynamic_cast
- Java设计模式透析之 —— 适配器(Adapter)
- iOS label的lineBreak和行间距的碰撞
- 文章标题
- 2015年自我总结
- 非常通俗易懂的解释密码算法原理!
- Dynamics CRM2016 业务流程之Task Flow(二)