您的位置:首页 > 编程语言 > Qt开发

QT TableWidget 应用笔记

2014-09-23 11:09 295 查看

QTTableWidget应用笔记

分类:QT2013-05-2116:222561人阅读评论(0)收藏举报

1、设置表头及大小

QStringListheader;

header<<"ID"<<"NAME"<<"年龄"<<"sex"<<"data";

ui->tableWidget->setHorizontalHeaderLabels(header);

ui->tableWidget->setRowCount(3);

ui->tableWidget->setColumnCount(5);


2、获得和设置单元内容

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

voidwidget::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=newQTableWidgetItem(QIcon("myImage.jpg"),NULL);//只加入图标,没有字符串
QTableWidgetItem*item=newQTableWidgetItem(QIcon("myImage.jpg"),myString);//加入图标和字符串
table->setItem(row,column,item);
/*插入一行*/
introw=table->rowCount();
table->insertRow(row);
/*插入一列*/
intcolumn=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、

设置表单背景或透明

QPalettepal=musicTable->palette();pal.setBrush(this->backgroundRole(),QBrush(QPixmap("images/background.png")));musicTable->setPalette(pal);

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

QPalettepll=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);//设置隔一行变一颜色,即:一灰一白
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: