QT自定义QTABLEWIDGET
Published on 2022-05-31 09:09 in 分类: Qt with 萧海~
分类: Qt

QT自定义QTABLEWIDGET

    QT自定义QTABLEWIDGET
    1.实现效果
    在这里插入图片描述
    2.具体实现:
    (1)表格QTABELWIDGET

    QTabelWidget *table=new QTableWidget(11,6); //设置行列个数
    table->setShowGrid(false); //是否显示内部网格线条
    table->setFixedSize(1782,698); //设置表格固定大小
    table->setAlternatingRowColors(1); //是否显示交替颜色
    table->setEditTriggers(QAbstractItemView::NoEditTriggers); //是否可编辑
    table->setSelectionMode(QAbstractItemView::NoSelection); //是否可选中
    table->setProperty("table_31",true); //设置分类
    for(int i=0; i<11; i++ ){ //设置行高,列宽
    table->setRowHeight(i,58);
    }
    for(int i=0; i<6; i++ ){
    table->setColumnWidth(i,200);
    }

    qss样式表

    QTableWidget[table_31="true"]{
    border: 1px solid #8B8B8B; /*表格外边框*/
    padding: 0px; /*内边距*/
    margin: 0px; /*外边距*/
    color: #575757; /*表格文本的颜色*/
    background: white; /*表格背景色*/
    alternate-background-color: lightgray; /*表格交替色*/
    gridline-color: #8B8B8B; /*网格边框*/
    font-size: 24px; /*表格文本大小*/
    border-radius: 20px; /*表格边框弧度*/
    font-family: "Microsoft YaHei"; /*表格文本字体*/
    }
    QTableWidget::item[table_31="true"]{
    border-radius: 0px; /*item 弧度*/
    background: transparent; /*item 背景色*/
    border-style: none; /*去除边框*/
    border-bottom: 1px solid #8B8B8B; /*底 边框*/
    border-right: 1px solid red; /*右 边框*/
    border-left: 1px solid red; /*左 边框*/
    border-top: 1px solid #8B8B8B; /*顶 边框*/
    }
    /*item 选中时*/
    QTableWidget::item:selected[table_31="true"]{
    background: transparent;
    color: black;
    }
    /*item 悬停*/
    QTableWidget::item:hover[table_31="true"]{
    background: transparent;
    color: black;
    }
    /*垂直表头和水平表头相交的单元格*/
    QTableWidget[table_31="true"] QTableCornerButton::section{
    background: white;
    border: 1px solid #8B8B8B;
    }

    (2)表头QHEADERVIEW

    //水平表头
    table->horizontalHeader()->setVisible(true); //设置表头是否可见
    table->horizontalHeader()->setStretchLastSection(true); //自动调整对齐右边边界
    table->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter | Qt::AlignVCenter); //表头文本对齐方式
    table->horizontalHeader()->setObjectName("hHeader"); //表头对象名
    //垂直表头
    table->verticalHeader()->setVisible(false);
    table->verticalHeader()->setStretchLastSection(true); //自动调整对齐底部边界
    table->verticalHeader()->setDefaultAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    table->verticalHeader()->setObjectName("vHeader");
    //设置表头文本
    QStringList header;
    header<<"A"<<"B"<<"C"<<"D"<<"E"<<"F";
    table->setHorizontalHeaderLabels(header);
    header.clear();
    header<<"A"<<"B"<<"C"<<"D"<<"E"<<"F"<<"G"<<"H"<<"I"<<"J"<<"K";
    table->setVerticalHeaderLabels(header);

    qss样式表

    /*水平表头*/
    QHeaderView#hHeader{
    min-height: 50px; /*表头最小高度*/
    background-color: transparent;
    }
    /*表头section*/
    QHeaderView::section#hHeader{
    background-color: transparent;
    border: 1px solid #8B8B8B;
    border-radius: 0px;
    font-size: 24px;
    color: #1B1B1B;
    /*border-style:none;*/
    border-bottom: 1px solid #8B8B8B;
    border-right: 1px solid blue;
    border-left: 1px solid blue;
    border-top: 1px solid blue;
    }
    /*垂直表头*/
    QHeaderView#vHeader{
    min-width: 50px;
    background: white;
    }
    QHeaderView::section#vHeader{
    background-color: white;
    border: 1px solid #8B8B8B;
    border-radius: 0px;
    border-left-color: white;
    font-size: 24px;
    font-family: "Microsoft YaHei";
    }

    (3)插入数据

    for(int i=0; i<11; i++){
    for(int j=0; j<6; j++){
    QTableWidgetItem *tab_item=new QTableWidgetItem("Jan");
    tab_item->setTextAlignment(Qt::AlignCenter);
    table->setItem(i,j,tab_item); //文本
    //table->setItem(0,1,new QTableWidgetItem(QIcon(":/Image/IED.png"), "Jan's month")); //图片
    //table->setCellWidget(0,0,new QLabel("Love")); //label
    }
    }

    版权声明:本文为a1356467原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/a1356467/article/details/106919301

    posted @   萧海~  阅读(606)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
    · 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
    · Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
    · 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
    · AI技术革命,工作效率10个最佳AI工具
    点击右上角即可分享
    微信分享提示
    电磁波切换