QTableWidget 用法总结(持续添加)

16 篇文章 0 订阅
15 篇文章 0 订阅

一. 对QTableWidget本身的效果实现

1. 将表格变为禁止编辑

tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
QAbstractItemView.NoEditTriggers 不能对表格内容进行修改
QAbstractItemView.CurrentChanged 任何时候都能对单元格修改
QAbstractItemView.DoubleClicked 双击单元格后可编辑
QAbstractItemView.SelectedClicked 单击单元格后可编辑
QAbstractItemView.EditKeyPressed 任何按键可编辑
QAbstractItemView.AnyKeyPressed 任何按键可编辑
QAbstractItemView.AllEditTriggers 以上条件全包括

2. 设置表格为整行选择

tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);  //整行选中的方式
QAbstractItemView.SelectionBehavior枚举还有如下类型:
QAbstractItemView.SelectItems		选中单个单元格
QAbstractItemView.SelectColumns		选中一列

3.单个选中和多个选中的设置:

tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);  //设置为可以选中多个目
该函数的参数还可以是:
QAbstractItemView.NoSelection 不能选择
QAbstractItemView.SingleSelection 选中单个目标
QAbstractItemView.MultiSelection 选中多个目标


4. 表格表头的显示与隐藏

tableWidget->verticalHeader()->setVisible(false); //隐藏列表头
tableWidget->horizontalHeader()->setVisible(false); //隐藏行表头

5. 对表头文字的字体、颜色进行设置

QTableWidgetItem *columnHeaderItem0 = tableWidget->horizontalHeaderItem(0); //获得水平方向表头的Item对象
columnHeaderItem0->setFont(QFont("Helvetica")); //设置字体
columnHeaderItem0->setBackgroundColor(QColor(0,60,10)); //设置单元格背景颜色
columnHeaderItem0->setTextColor(QColor(200,111,30)); //设置文字颜色

6. 在单元格里加入控件:

QComboBox *comBox = new QComboBox();
comBox->addItem("Y");
comBox->addItem("N");
tableWidget->setCellWidget(0,2,comBox);

二. 对单元格的进行设置

1. 单元格设置字体颜色和背景颜色 及字体字符

QTableWidgetItem *item = new QTableWidgetItem("Apple");// item->setBackgroundColor(QColor(0,60,10));//设置背景色 层setTextColor(QColor(200,111,100));//设置字体颜色 item->setFont(QFont("Helvetica"));//设置字体 tableWidget->setItem(0,3,item);//为tableWidget添加item
另:如果需要对所有的单元格都使用这种字体,则可以使用  tableWidget->setFont(QFont("Helvetica"));

2. 设置单元格内文字的对齐方式

item->setTextAlignment(Qt.AlignHCenter |  Qt.AlignVCenter)
水平方向:Qt.AlignLeft,Qt.AlignRight,Qt.AlignHCenter,Qt.AlignJustify
垂直方向:Qt.AlignTop,Qt.AlignBottom,Qt.AlignVCenter
如果两种都要设置,只要用 Qt.AlignHCenter |  Qt.AlignVCenter 的方式即可

3. 合并单元格效果的实现:

tableWidget->setSpan(0, 0, 3, 1)  # 其参数为: 要改变单元格的   1行数  2列数     要合并的  3行数  4列数

4. 设置单元格的大小

首先,可以指定某个行或者列的大小
tableWidget->setColumnWidth(3,200);
tableWidget->setRowHeight(3,60);
//根据内容自动改变行列的大小
tableWidget->resizeColumnsToContents();
tableWidget->resizeRowsToContents();

5. 获得单击单元格的内容

通过实现 itemClicked (QTableWidgetItem *) 信号的槽函数,就可以获得鼠标单击到的单元格指针,进而获得其中的文字信息
connect(tableWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(getItem(QTreeWidgetItem*,int)));
//将itemClicked信号与函数getItem绑定

6.QTableWidget使用

int row = rowCount(); removeRow(row);//清除已有的行列 
setShowGrid(true);//显示表格线 
verticalHeader()->setVisible(false);//隐藏左边垂直 
QHeaderView *headerView = horizontalHeader(); headerView->setMovable(false);//去除表头的移动 
headerView->resizeSection(0,284);//设置第一列宽 
headerView->resizeSection(1,127);//设置第二列宽 
headerView->setResizeMode(QHeaderView::Fixed);//列表不能移动 
headerView->setClickable(false);//不响应鼠标单击 
setEditTriggers(QTableWidget::NoEditTriggers);//不能编辑 
setSelectionBehavior(QTableWidget::SelectRows);//一次选中一行 
setSelectionMode(QAbstractItemView::SingleSelection);//只能单选 
/*QScrollBar *scrollBar = horizontalScrollBar(); scrollBar->hide();*/ s
etHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条 
setVerticalScrollMode(QAbstractItemView::ScrollPerItem);//垂直滚动条按项移动 
setAutoScroll(false);//去掉自动滚动





 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值