zl程序教程

您现在的位置是:首页 >  其它

当前栏目

QTableWidget 的使用

QTableWidget 使用
2023-09-14 09:05:27 时间

介绍

QTabWidget 是qt中 常用的一个表格组件,在展示列表以及部分详细信息的时候可以用它,他的样式及用途都比较广泛,它独特之处在他内部已经将表头和表格内容分开,我们在使用的过程中也可以直接是用默认的表头(当然表头也是可以隐藏的,可以根据我们自己的需求来设计它)。他的表头包括行标头和列表头。

//    设置表头

    QTableWidgetItem *headerItem;

    QStringList headerText;

    headerText<<"名称1"<<"名称2"<<"分类"<<"作者";

    ui->tableWidget->setColumnCount(headerText.count());//都会认知表头数量

 

//    ui->tableWidget->horizontalHeader()->setSortIndicator(0, Qt::AscendingOrder);  用于设置水平表头 verticalHeader 列表头

   ui->tableWidget->horizontalHeader()->setSortIndicatorShown( true );//打开表头排序

   ui->tableWidget->horizontalHeader()->setClickable( true ); //表头可以通过点击进行排序

   connect(headerGoods, SIGNAL(sectionClicked( int )), _nodeTableWidget, SLOT (sortByColumn( int )));

在表头添加文字 以及做一些美化

   for (int i =0;i<ui->tableWidget->columnCount();i++) { //每一行的文字

        headerItem = new QTableWidgetItem(headerText.at(i));

        QFont font = headerItem->font();

        font.setBold(true);

        font.setPointSize(14);

        headerItem->setTextColor(Qt::white);

        headerItem->setFont(font);

        ui->tableWidget->setHorizontalHeaderItem(i,headerItem); //水平表头

    }

    ui->tableWidget->horizontalHeader()->setMinimumHeight(44);

    ui->tableWidget->verticalHeader()->*setVisible*(false);//

表头美化: 

"QHeaderView::down-arrow {subcontrol-position: center right;//设置内容的位置

image: url(://tu.png);//在表头添加图片内容

padding-right: 8px;//设置边距}"

表格内部美化:

ui->tableWidget->setAlternatingRowColors(true); // 隔行变色

ui->tableWidget->setPalette(QPalette(QColor(245,249,249))); // 设置隔行变色的颜色

这里的颜色是设置的是隔行变色的第二个颜色,默认为白色

ui->tableWidget->setEditTriggers(QTableWidget::NoEditTriggers);//禁止编辑

在表格禁止修改时使用

ui->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

this->setFocusPolicy(Qt::NoFocus); //选中单元格时,不出现虚框

这句话在使用tableWidget 时一定要加,否则他的默认会在选中的每一个单元上有虚线出现,奇丑无比,可以通过这句阻止他的出现。

ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);//点击选择行

ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); //设置只能选择一行

ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置内容不可更改

在单元格中设置按钮

在QTableWidget中添加控件

**tableWidget->setCellWidget(0,0,pBtn); **

第一个参数是指按钮所在的行

第二个参数是按钮所在的列

第三个参数是按钮的名称

当然 这个按钮可以换成任何一个控件,包括把它换成一个界面。

本文福利, 免费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓