【QT界面设计】 QTableWidge常用方法及样式设计(QSS)

很高兴在雪易的CSDN遇见你 

VTK技术爱好者 QQ:870202403      公众号:VTK忠粉


前言

本文分享QTableWidget在使用过程中的常用方法、以及QTableWidget的样式设计技术。希望对各位小伙伴有所帮助!

感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!

你的点赞就是我的动力(^U^)ノ~YO


 

目录

前言

QTableWidget常用方法

        》创建一个新的表格控件        

        》设置设置/获取列数,设置行数同样方法

        》表头设置

        》设置表格文字内容

         》设置表格单元显示QComBox、QSpinBox、QLable、QDateTimeEdit等

         》其它设置

                》设置选择行为时每次一行

                》设置对行可进行多选

                》设置表格内容不能编辑

                》合并单元格 

QTableWidget样式设计 

        》QTableWidget样式包含

        》代码进行样式设计

        》QSS样式表设计 

结论:


QTableWidget常用方法

        》创建一个新的表格控件        

QTableWidget *table=new QTableWidget();

        ​​​​​​​》设置设置/获取列数,设置行数同样方法

int colnum = table->columnCount();//获取列数
table->setColumnCount(3); //设置列数,内容若大于3列,则大于部分不显示。
table->insertColumn(0);//方法2 添加列

        》表头设置

QStringList header;                           //QString类型的List容器
header<<"学号"<<"姓名"<<"性别";                 //设置内容是学号、姓名、性别
table->setHorizontalHeaderLabels(header);     //设置表头内容
table->horizontalHeader()->setVisible(false); //设置水平表头不可见
table->verticalHeader()->setVisible(false);   //设置垂直表头不可见

QFont font ;//定义一个字体变量
font.setBold(true);  //设置粗体
table->horizontalHeader()->setFont(font);//设置表头的字体属性
table->horizontalHeader()->setFixedHeight(25); //设置表头的高度为25
table->horizontalHeader()->resizeSection(0,180); //设置表头第1列的宽度为180
table->verticalHeader()->setDefaultSectionSize(10); //设置行高为10

//先自适应宽度
table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);    
//然后设置要根据内容使用宽度的列
table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);     

        》设置表格文字内容

    QTableWidgetItem *name=new QTableWidgetItem();//创建一个Item
    name->setText("桃花庵");//设置内容
    table->setItem(0,1,name);//把这个Item加到第一行第二列中
    //为table中添加int类型的数据时
    table->setItem(i,j,new QTableWidgetItem(QString::number(i+1)));
    //获取表格文字内容
    QTableWidgetItem * currItem = table->item(i,j);
    QString str = currItem->text();

         》设置表格单元显示QComBox、QSpinBox、QLable、QDateTimeEdit等

     //创建一个QDateTimeEdit     
     QDateTimeEdit *dateTimeEdit= new QDateTimeEdit();  
     dateTimeEdit->setDateTime(QDateTime::currentDateTime());//设置为当前时间
     dateTimeEdit->setDisplayFormat("dd/M/yyyy");//设置显示格式
     dateTimeEdit->setCalendarPopup(true);//设置可以打开日历
     table->setCellWidget (1,2,dateTimeEdit);//加到第二行第三列中
    //添加QComboBox控件
    QComboBox *lvRangeComboBox = new QComboBox();
    lvRangeComboBox->addItem(tr("7"));
    lvRangeComboBox->addItem(tr("8"));
    lvRangeComboBox->addItem(tr("9"));
    lvRangeComboBox->addItem(tr("10"));
    lvRangeComboBox->setCurrentText(QString::number(currData.iLvRange));
    table->setCellWidget(i,5,lvRangeComboBox);
    //添加CheckBox控件
    QTableWidgetItem* p_check = new QTableWidgetItem();
    p_check->setCheckState(Qt::Checked);        //设置首列为 CheckBox 控件
    table->setItem(i,12,p_check);

         》其它设置

​​​​​​​                》设置选择行为时每次一行

        table->setSelectionBehavior(QAbstractItemView::SelectRows); 

                》设置对行可进行多选

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

                》​​​​​​​设置表格内容不能编辑

         table->setEditTriggers(QAbstractItemView::NoEditTriggers); 

                》合并单元格 ​​​​​​​

        //void setSpan(int row, int column, int rowSpan, int columnSpan);
        tableWidget->setSpan(1, 1, 2, 2);

QTableWidget样式设计 

        》QTableWidget样式包含

        外框:QTableWidget
        表头:QHeaderView
        表头字段:QHeaderView::section
        表格:QTableWidget::item
        选中的表格:QTableWidget::item::selected
        水平滚动条:QTableWidget QScrollBar::horizontal
        垂直滚动条:QTableWidget QScrollBar::vertical
        水平滚动条的滑动块:QTableWidget QScrollBar::handle:horizontal
        垂直滚动条的滑动块:QTableWidget QScrollBar::handle : vertical
        水平滚动条的滑动块悬浮:QScrollBar::handle : vertical : horizontal
        垂直滚动条的滑动块悬浮:QScrollBar::handle : vertical : hover
        滑动块的上方边缘方块:QTableWidget QScrollBar::add - line
        滑动块的下方边缘方块:QTableWidget QScrollBar::sub - line
        滑动块的上部分滑道:QTableWidget QScrollBar::add - page
        滑动块的下部分滑道:QTableWidget QScrollBar::sub - page

        》代码进行样式设计

    QTableWidgetItem* item = new QTableWidgetItem("Apple");
    item->setBackgroundColor(QColor(0, 60, 10));//设置单元格的背景颜色
    item->setTextColor(QColor(200, 111, 100));//设置单元格文字的颜色
    item->setFont(QFont("Helvetica"));//设置单元格文字的字体
    table->setItem(0, 3, item);
    table->setFrameShape(QFrame::NoFrame); //设置无边框
    table->setShowGrid(false); //设置不显示格子线
    table->setStyleSheet("selection-background-color:rgb(34, 170, 75);"); //设置选中行的背景色
    table->horizontalHeader()->setStyleSheet("QHeaderView::section{background:skyblue;}"); //设置表头的背景色
    //设置水平滚动条的样式
    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;}");
    //设置垂直滚动条的样式
    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;}");

        》QSS样式表设计 

    #tableWidget{
    border: none;
    background: none;
    selection - background - color: #00bb9e;
    }
        QHeaderView
    {
        border - bottom:2px solid #00bb9e;
    }
        QHeaderView::section
    {
        color:white;
        background:#00bb9e;
        border - top:0px solid white;
        min - height:40px;
        max - height:40px;
    }

        #tableWidget::Item{
        border:none;
        border - bottom:1px solid #00bb9e;
        height:80px;
    }
        #tableWidget::item::selected
    {
        font: bold;
        background:#00bb9e;
    }

结论:

​​​​​​​QTableWidget在使用过程中的常用方法、以及QTableWidget的样式设计技术

感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪易

给我来点鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值