qt 表格中插入一行_qt中QTableWidget类关于表格的操作

本文详细介绍了在QT中使用QTableWidget类进行表格操作的方法,包括设置表头、调整行列大小、插入和删除行、设置单元格内容、选择行为以及表格的视觉效果,如隔行变色和背景透明等。
摘要由CSDN通过智能技术生成

1、设置表头及大小

QStringList

header;

header<

ui->tableWidget->setHorizontalHeaderLabels(header);

ui->tableWidget->setRowCount(3); //设置表格行数

ui->tableWidget->setColumnCount(5);// 设置表格列数

ui->tableWidget->setColumnWidth(1,20);//设置表格列宽:第二列宽20

ui->tableWidget->setRowHeight(1,25);//设置表格行高: 第二行高25

2、获得和设置单元内容

connect(ui->tableWidget,SIGNAL(cellClicked(int,int)),SLOT(showmark()));

void widget::showmark()

{

QTableWidgetItem*item=ui->tableWidget->currentItem();

item->setTextColor(QColor(255,50,50));

ui->label->setText(item->text());

}

ui->tableWidget->setItem(xx,yy++,newQTableWidgetItem(ui->lineEdit_2->text()));

这样获得的item 一定要判断是否为空 若为空 应进行空的对应处理(否则程序会报错退出)

3、插入一行

ui->tableWidget->insertRow(xx);xx表示对应的位置

QTableWidgetItem *item = new QTableWidgetItem(QIcon("myImage.jpg"), NULL);  //只加入图标,没有字符串

QTableWidgetItem *item = new QTableWidgetItem(QIcon("myImage.jpg"), myString);  //加入图标和字符串

table->setItem(row, column, item);

int row = table->rowCount();

table->insertRow(row);

int column = table->columnCount();

table->insertColumn(column);

//使行列头自适应宽度,最后一列将会填充空白部分

table->horizontalHeader()->setStretchLastSection(true);

//使行列头自适应宽度,所有列平均分来填充空白部分

table->horizontalHeader()->setResizeMode(QHeaderView::Strtch);

//使行自适应高度,假如行很多的话,行的高度不会一直减小,当达到一定值时会自动生成一个QScrollBar

table->verticalHeader()->setResizeMode(QHeaderView::Strtch);

//设置单击选择一行

table->setSelectionBehuavior(QAbstractItemView::SelectRows);

//设置每行内容不可编辑

table->setEditTriggers(QAbstractItemView::NoEditTriggers);

//设置只能选择一行,不能选择多行

table->setSelectionMode(QAbstractItemView::SingleSelection);

QHeaderView *headerView = table->verticalHeader();

headerView->setHidden(true);

选中单元格:table->setCurrentCell(row, column, QItemSelectionModel::Select);

选中一行:table->setCurrentCell(row, QItemSelectionModel::Select);(注意此处的列没有值)

4、删除某一行 列

FriendTable->removeRow(row);

FriendTable->removeColumn (column );

5、

设置表单背景或透明

QPalette pal = musicTable->palette();

pal.setBrush(this->backgroundRole(),QBrush(QPixmap("images/background.png")) );

musicTable->setPalette( pal );

设置它的背景图片,也可以将QBrush初始化为QColor来设置背景颜色

QPalette pll = musicTable->palette();

pll.setBrush(QPalette::Base,QBrush(QColor(255,255,255,0)));

musicTable->setPalette(pll); //和QTextEdit一样,都可以使用样式表QPalette来修改它的背景颜色和背景图片,这里我们把刷子设置为全透明的,就可以是透明的

6、隔行显示颜色

ui->tableWidget->setAlternatingRowColors(1);

this->ui->friendList->setSelectionMode(QAbstractItemView::SingleSelection);//设置只能选择一行,不能多行选中

this->ui->friendList->setEditTriggers(QAbstractItemView::NoEditTriggers);//设置每行内容不可更改

this->ui->friendList->setAlternatingRowColors(true);//设置隔一行变一颜色,即:一灰一白

简单的例子:

#include "../include/mainmenu.h"

Mainmenu::Mainmenu(QWidget *parent,Qt::WindowFlags f)

:QDialog(parent,f)

{

QVBoxLayout

*vlayout = new QVBoxLayout(this);

table =

new QTableWidget(this);

QStringList

list;

list<

table->setHorizontalHeaderLabels(list); //设置表头标题

table->setRowCount(5);//设置行数

table->setColumnCount(5);//设置列数

table->setColumnWidth(0,30);//设置列宽

table->setColumnWidth(1,146);

table->setColumnWidth(2,80);

table->setColumnWidth(3,30);

table->setColumnWidth(4,30);

table->setGeometry(QRect(0,0,310,400));

QHeaderView

*view =

table->verticalHeader(); view->setHidden(true); //隐藏表格行 id

table->horizontalHeader()->setStyleSheet("QHeaderView::section{background:yellow;}"); //设置表格背景颜色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值