Qt之QTableWidget的使用及常用设置

各种软件设计中,表格的使用非常频繁,下面介绍的是关于QTableWidget的使用以及常用属性的设置。

(1)创建一个新的表格控件

QTableWidget *table=new QTableWidget();


(2)设置列数

 table->setColumnCount(3);//设置3列

注意:如果内容超过3列,则无法显示超过3列的内容,所以需要看情况重新设置列数

(3)设置行数

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

注意:如果内容超过5行,则无法显示超过3行的内容,所以需要看情况重新设置行数

(4)设置表头内容

QStringList header;  //QString类型的List容器
header<<"学号"<<"姓名"<<"性别";//设置内容是学号、姓名、性别
table->setHorizontalHeaderLabels(header);//设置表头内容

(5)设置表格文字内容


QTableWidgetItem *name=new QTableWidgetItem();//创建一个Item
name->setText("桃花庵");//设置内容
table->setItem(0,1,name);//把这个Item加到第一行第二列中

(6)可设置表格单元显示QComBox、QSpinBox、QLable、QDateTimeEdit等

 QDateTimeEdit *dateTimeEdit= new QDateTimeEdit();  //创建一个QDateTimeEdit
 dateTimeEdit->setDateTime(QDateTime::currentDateTime());//设置为当前时间
 dateTimeEdit->setDisplayFormat("dd/M/yyyy");//设置显示格式
 dateTimeEdit->setCalendarPopup(true);//设置可以打开日历
 table->setCellWidget (1,2,dateTimeEdit);//加到第二行第三列中

(7)设置表头的字体属性

QFont font ;//定义一个字体变量
font.setBold(true);  //设置粗体
table->horizontalHeader()->setFont(font);//把字体变量属性加进表头中


(8)设置表头的内容充满整个表格的宽度

table->horizontalHeader()->setStretchLastSection(true); //设置表头充满表格的宽度

(9)设置表头的高度

table->horizontalHeader()->setFixedHeight(25); //设置表头的高度为25

(10)设置表头的列宽

 table->horizontalHeader()->resizeSection(0,180); //设置表头第1列的宽度为180


(11)设置表格的行高

table->verticalHeader()->setDefaultSectionSize(10); //设置行高为10

QTableView或者QTableWidget的verticalHeader()->setDefaultSectionSize(15)可以设置tableview所有列的默认行高为15。

QTableView或者QTableWidget的horizontalHeader()->setDefaultSectionSize(15)可以设置tableview所有行的默认列宽为15。
 

(12)消除表格控件的边框

table->setFrameShape(QFrame::NoFrame); //设置无边框


(13)设置表格不显示格子线

 table->setShowGrid(false); //设置不显示格子线


(14)去除每一行的左边序号

 table->verticalHeader()->setVisible(false); //设置垂直头不可见,即左边序号不见


(15)设置选择行为时每次一行

table->setSelectionBehavior(QAbstractItemView::SelectRows);  //设置选择行为时每次一行


(16)设置对行可进行多选

table->setSelectionMode(QAbstractItemView::ExtendedSelection);  //可多选(Ctrl、Shift、Ctrl+A都可以)


(17)设置表格内容不能编辑

 table->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置表格内容不可编辑

(18)设置选中行的背景色

table->setStyleSheet("selection-background-color:rgb(34, 170, 75);"); //设置选中行的背景色

(19)设置表头的背景色

 table->horizontalHeader()->setStyleSheet("QHeaderView::section{background:skyblue;}"); //设置表头的背景色

(20)设置水平滚动条样式

table->horizontalScrollBar()->setStyleSheet("QScrollBar{background:transparent; height:12px;}"
         "QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px;}"
         "QScrollBar::handle:hover{background:gray;}"
         "QScrollBar::sub-line{background:transparent;}"
         "QScrollBar::add-line{background:transparent;}");


(21)设置垂直滚动条的样式

table->verticalScrollBar()->setStyleSheet("QScrollBar{background:transparent; width: 12px;}"
         "QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px;}"
         "QScrollBar::handle:hover{background:gray;}"
         "QScrollBar::sub-line{background:transparent;}"
         "QScrollBar::add-line{background:transparent;}");

(22) 奇偶行底色不同

如果不包含子控件,恭喜你,非常容易
QPalette pal;
pal.setColor(QPalette::Base, QColor(255, 0, 0));
pal.setColor(QPalette::AlternateBase, BG_QColor(0, 255, 0));
table_wd->setPalette(pal);
table_wd->setAlternatingRowColors(true);
    如果包含子控件,那就比较麻烦,要自己处理。
 

  • 18
    点赞
  • 158
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值