QTableWidget的简单使用

一、QTableWidget

表格类是Qt中常用的控件,如QTableWidget,QTableView

QTableWidget是QTableView的子类

主要区别是QTableView可以使用自定义的数据模型来显示内容(即先通过setModel来绑定数据源),

而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(即无需要数据源,逐个单元格信息填好即可)。QTableWidgetItem用来表示表格中的一个单元格,整个QTableWidget表格都需要用逐个单元格构建起来.

但是笔者认为QTableWidget在数据量比较小、开发周期短的项目情况下要比QTableView更灵活方便。

 

二、简单使用相关代码

使用时一定添加对相应的头文件!!!
void testTableView()
{
//设置行列,以及表头内容
ui-> tableWidget-> setColumnCount( 10);
ui-> tableWidget-> setRowCount( 100);
sl << "Id" << "Name" << "Unit" << "Value" << "Min" << "Max" ;
ui-> tableWidget-> setHorizontalHeaderLabels( sl); //表头内容填充
 
//表格属性
//ui->tableWidget->verticalHeader()->setVisible(true); // 显示/隐藏垂直header
ui-> tableWidget-> setSelectionMode( QAbstractItemView:: ExtendedSelection); // 可以选中多个
ui-> tableWidget-> setSelectionBehavior( QAbstractItemView:: SelectColumns); //整行选中的方式
ui-> tableWidget-> setEditTriggers( QAbstractItemView:: NoEditTriggers); //不可编辑
 
//设置QTableWidget的样式表(包括表头)
QFont font; //定义一个字体变量
font. setBold( true); //设置粗体
ui-> tableWidget-> horizontalHeader()-> setFont( font);
ui-> tableWidget-> horizontalHeader()-> setStyleSheet( "QHeaderView::section{background:skyblue;}"); //设置表头背景色
ui-> tableWidget-> setStyleSheet( "selection-background-color:rgb(34, 170, 75);"); //设置选中行的背景色
 
//设置表格单元显示QComBox、QSpinBox、QLable、QPushButton
QDateTimeEdit * dateTimeEdit= new QDateTimeEdit(); //创建一个QDateTimeEdit
dateTimeEdit-> setDateTime( QDateTime:: currentDateTime()); //设置为当前时间
dateTimeEdit-> setDisplayFormat( "dd/M/yyyy"); //设置显示格式
dateTimeEdit-> setCalendarPopup( true); //设置可以打开日历
ui-> tableWidget-> setCellWidget ( 1, 2, dateTimeEdit); //加到第二行第三列中
QPushButton * pb = new QPushButton( "test");
ui-> tableWidget-> setCellWidget( 2, 3, pb); //表格填充QPushbutton按键
QComboBox * comBox = new QComboBox();
comBox-> addItem( "Y");
comBox-> addItem( "N");
ui-> tableWidget-> setCellWidget( 3, 4, comBox);
 
//设置单个表格内容,可以设置图片
ui-> tableWidget-> setItem( 0, 1, new QTableWidgetItem( "123456"));
QTableWidgetItem * item = new QTableWidgetItem( "Apple");
item-> setBackgroundColor( QColor( 100, 100, 100));
item-> setTextColor( QColor( 200, 100, 50));
item-> setFont( QFont( "Helvetica"));
item-> setTextAlignment( Qt:: AlignHCenter | Qt:: AlignVCenter); //设置对齐
ui-> tableWidget-> setItem( 1, 0, item);
 
//合并单元格
ui-> tableWidget-> setSpan( 2, 5, 3, 2); //其参数为:从坐标为2行5列的单元格,向下合并3行向右合并2列
 
//还可以将行和列的大小设为与内容相匹配
// ui->tableWidget->resizeColumnsToContents();
// ui->tableWidget->resizeRowsToContents();
 
//设置垂直和水平滚动条样式 //设置垂直滑动条样式表时一定注意width!width!width!
ui-> tableWidget-> verticalScrollBar()-> setStyleSheet( "QScrollBar{background:transparent; width: 12px;}"
"QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px;}"
"QScrollBar::handle:hover{background:gray;}"
"QScrollBar::sub-line{background:transparent;}"
"QScrollBar::add-line{background:transparent;}");
//设置垂直滑动条样式表时一定注意height!height!height!
ui-> tableWidget-> horizontalScrollBar()-> setStyleSheet( "QScrollBar{background:transparent; height:12px;}"
"QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px;}"
"QScrollBar::handle:hover{background:red;}"
"QScrollBar::sub-line{background:transparent;}"
"QScrollBar::add-line{background:transparent;}");
}
 
 

三、效果

程序运行如图:

 

四、参考链接

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值