QT——QTableWidget样式设计

链接1

链接2

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

 

QTableWidget *table=new QTableWidget();

(2)设置列数

 

 

 table->setColumnCount(3);//设置3列
注意:如果内容超过3列,则无法显示超过3列的内容,所以需要看情况重新设置列数

 

(3)设置行数

 

table->setRowCount(5);//设置5行
注意:如果内容超过5行,则无法显示超过3行的内容,所以需要看情况重新设置行数

 

(4)设置表头内容

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

 

 

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

 

 

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

 

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

 

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

 

  1.  
    QFont font ;//定义一个字体变量
  2.  
    font.setBold(true); //设置粗体
  3.  
    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

 

(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-"); //设置选中行的背景色

 

 

(19)设置表头的背景色

 

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

 

 

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

 

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

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

 

 

  1.  
    table->verticalScrollBar()->setStyleSheet("QScrollBar{background:transparent; width: 12px;}"
  2.  
    "QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px;}"
  3.  
    "QScrollBar::handle:hover{background:gray;}"
  4.  
    "QScrollBar::sub-line{background:transparent;}"
  5.  
    "QScrollBar::add-line{background:transparent;}");
    使表格中的内容居中:

    //这个for是使表格中的元素居中
    for (char i =0;i<6;i++)
    {
    ui->tableWidget->item(m_rowCount - 1, i)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    }

posted @ 2022-10-09 15:46  雾枫  阅读(1433)  评论(0编辑  收藏  举报