QT控件之Qtable Widget(2)——清空/删除设置

QT中QTableWidget清空或删除内容功能

1、清空表格中所有内容
void QTableWidget::clear() [slot] //清空表格中所有内容(包含表头)
Removes all items in the view. This will also remove all selections and headers. 
 2、清空表格中的内容(不包含表头)
void QTableWidget::clearContents() [slot] //清空表格中的内容(不包含表头)。
 Removes all items not in the headers from the view. This will also remove all selections. The table dimensions stay the same.
3、删除表格中的某行中的某列内容
void QTableWidget::removeCellWidget(int row, int column) //删除表格中的某行中的某列内容。
 Removes the widget set on the cell indicated by row and column.
4、删除表格中的某列内容
void QTableWidget::removeColumn(int column) [slot] //删除表格中的某列内容。
 Removes the column column and all its items from the table.
5、删除表格中的某行内容
void QTableWidget::removeRow(int row) [slot] //删除表格中的某行内容。
 Removes the row row and all its items from the table
6、删除表格中的某行和某列
QTableWidgetItem * QTableWidget::takeItem(int row, int column) //删除表格中的某行和某列
 Removes the item at row and column from the table without deleting it.
7、删除表格中的水平标题头
QTableWidgetItem * QTableWidget::takeHorizontalHeaderItem(int column) //删除表格中的水平标题头
 Removes the horizontal header item at column from the header without deleting it.
8、删除表格中的垂直标题头
QTableWidgetItem * QTableWidget::takeVerticalHeaderItem(int row) //删除表格中的垂直标题头
 Removes the vertical header item at row from the header without deleting it.
9、设置该单元格为屏蔽状态,不能编辑和选中
ui->tableWidget->item(0,0)->setFlags(Qt::ItemIsEditable);//设置该单元格为屏蔽状态,不能编辑和选中。 
10、取消表头的在选中单元格时的高亮状态
ui->tableWidget->horizontalHeader()->setHighlightSections(false);//取消表头的在选中单元格时的高亮状态。
 11、QTableWidget设置为整行选中
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
12、设置表头的样式
ui->tableWidget->horizontalHeader()->setStyleSheet(“image: url(:/img/a.png);image-position:left; “); //设置表头的样式。 
13、删除QTableWidget自带的行号
QHeaderView* headerView = ui->tableWidget->verticalHeader();//m_ItemTable为QTableWidget
headerView->setHidden(true);//隐藏tablewidget自带行号列
14、设置QTableWidget内容居中
QTableWidgetItem *item;
item = new QTableWidgetItem;
item->setText(userInfo.userId);
item->setTextAlignment(Qt::AlignCenter);//设置内容对齐方式为垂直和水平居中
ui->tableWidget->setItem(i, 0, item);
15、QTableWidget设置最后一列自动填充表格
ui->tableWidget->horizontalHeader()->setStretchLastSection(true); 
16、QTableWidget隐藏序号列
QHeaderView* headerView = m_ItemTable->verticalHeader();//隐藏序号列
headerView->setHidden(true);
17、QTableWidget设置最后一列自动填充表格
ui->tableWidget->horizontalHeader()->setStretchLastSection(true);   //设置最后一列自动填充表格
ui->tableWidget->horizontalHeader()->setResizeContentsPrecision(QHeaderView::Stretch);
18、QTableWidget设置水平表头
QStringList header;
header<<"节目编号"<<"节目名称"<<"开始时间"<<"结束时间"<<"创建者"<<"创建时间"<<"审核"<<"备注";
ui->tableWidget->setHorizontalHeaderLabels(header); //设置水平表头
ui->tableWidget->setColumnWidth(1, 200);//设置第一列宽度
19、在使用QTableWidget显示图片、文字等信息
在使用QTableWidget显示图片、文字等信息的时候,有时会遇到这样一种情况:图片或者文字没有填满一整行或一整列。余下的几项是空白的单元格,白占着位置,最关键的是这些Item还可以被选中,在选中项被设成高亮显示的时候就十分的难看,显得很不和谐。如何设置这些空白的单元格,使其看起来就像背景的白板一样呢?

    下面提供解决办法:

1)、首先空白的单元格要填入一个QTableWidgetItem,这是必要的,因为我们要针对某一个Item操作,而不是QTableWidget。

2)、通过设置flag,设置Item的属性:使其不可用或者不可选中、不可编辑。

Qt提供了一个函数(setFlags(Qt::ItemFlags))和一些枚举值来设置这些属性。

使用方法如下:

QTableWidgetItem *item = new QTableWidgetItem();
tabWidget->setItem(2,0,item);
item->setFlags(item->flags() & ~Qt::ItemIsEnabled & ~Qt::ItemIsSelectable);
上面用到的两个枚举中:~Qt::ItemIsEnabled可以保证单击该Item时不会被选中,但是在启用Ctrl + A时,全选操作会导致Item被选中。~Qt::ItemIsSelectable的使用可以保证全选状态下也不会被选中,但是在单独使用时出现了虚线框,没有真正实现“不存在”的效果。所以必须两个同用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值