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;}"); //设置表格背景颜色
}
本文详细介绍了在QT中使用QTableWidget类进行表格操作的方法,包括设置表头、调整行列大小、插入和删除行、设置单元格内容、选择行为以及表格的视觉效果,如隔行变色和背景透明等。
2854

被折叠的 条评论
为什么被折叠?



