当前位置:网站首页>QTableWidget使用讲解

QTableWidget使用讲解

2022-04-23 17:52:00 liu_jie_bin

QTableWidget简介

QTableWidget类提供了一个带有默认模型的基于项的表视图。Table部件为应用程序提供标准的显示工具。QTableWidget中的项由QTableWidgetItem提供。

效果

在这里插入图片描述
.h文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
    
class Widget;
}

class Widget : public QWidget
{
    
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private slots:
    void on_btnAdd_clicked();

    void on_btnClear_clicked();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

.ccp文件

#include "widget.h"
#include "ui_widget.h"

#include<QSpinBox>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    
    ui->setupUi(this);

    ui->comboBox->addItem(QStringLiteral("男"));
    ui->comboBox->addItem(QStringLiteral("女"));

    //设置列数
    ui->tableWidget->setColumnCount(3);

    //设置行数
    //ui->tableWidget->setRowCount(15);

    //设置垂直表头不可见
    ui->tableWidget->verticalHeader()->setVisible(false);

    //表头标题用QStringList来表示
    QStringList headerText;
    headerText<<QStringLiteral("名字")<<QStringLiteral("性别")<<QStringLiteral("年龄");
    ui->tableWidget->setHorizontalHeaderLabels(headerText);

    //设置不可编辑
    ui->tableWidget->setEditTriggers(QTableWidget::NoEditTriggers);

    //设置选中整行模式
    ui->tableWidget->setSelectionBehavior(QTableWidget::SelectRows);

    //设置单选模式
    ui->tableWidget->setSelectionMode(QTableWidget::SingleSelection);

    //开启交替行背景色
    ui->tableWidget->setAlternatingRowColors(true);

    //设置内容自适应宽度
    //ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

    //设置最后一栏自适应长度
    ui->tableWidget->horizontalHeader()->setStretchLastSection(true);

    //设置表头风格
    ui->tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{padding:3px; margin:0px; color:#DCDCDC; border:1px solid #242424; \ border-left-width:0px; border-right-width:1px; border-top-width:0px; border-bottom-width:1px; \ background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252);}");
}

Widget::~Widget()
{
    
    delete ui;
}

void Widget::on_btnAdd_clicked()
{
    
    //获取行数
    int rowCount = ui->tableWidget->rowCount();
    //插入行
    ui->tableWidget->insertRow(rowCount);

    //添加子项QSpinBox
    QSpinBox *ages = new QSpinBox();
    ages->setValue(24);
    ui->tableWidget->setCellWidget(rowCount,2, ages);
    QString strName = ui->lineEdit->text();

    //添加名字子项
    QTableWidgetItem *nameItem = new QTableWidgetItem(strName);
    //设置单个item属性
    nameItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    QFont font = nameItem->font();
    font.setBold(true);
    nameItem->setTextColor(QColor(0,0,255));
    //添加
    ui->tableWidget->setItem(rowCount,0,nameItem);

    //添加性别子项
    QString strSex = ui->comboBox->currentText();
    //设置单个item属性
    QTableWidgetItem *sexItem = new QTableWidgetItem(strSex);
    sexItem->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    sexItem->setTextColor(QColor(255,0,0));
    //添加
    ui->tableWidget->setItem(rowCount,1,sexItem);

}

void Widget::on_btnClear_clicked()
{
    
    ui->tableWidget->clearContents();
    ui->tableWidget->setRowCount(0);
}

ui布局
在这里插入图片描述

版权声明
本文为[liu_jie_bin]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_44901043/article/details/124087285