QT 使用 QtableWidget 写表格样式以及配置项

QT  使用QtableWidget 写表格

设计:

效果: 

 代码  .cpp:

#include "screenmanagement.h"
#include "ui_screenmanagement.h"
#include <QTableWidgetItem>
#include <QDebug>

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

    //自定义表格的尺寸和字体大小
//     ui->tableWidget->resize(900,350);
    ui->tableWidget->setFont(QFont("微软雅黑",20));
    ui->tableWidget->setColumnCount(5);//设置列数
    ui->tableWidget->setRowCount(3);//设置行数
    ui->tableWidget->setShowGrid(false);    //不显示网格线
    ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);   //设置整行选择
    ui->tableWidget->setMouseTracking(true);    //开启捕获鼠标功能
    ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);    //禁止编辑表格
    ui->tableWidget->verticalHeader()->setVisible(false);//纵向表头可视化
    ui->tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section {""background-color:#383838;}");
    ui->tableWidget->setStyleSheet("background-color:#1a1a1a;color:#fff;gridline-color: rgb(0, 0, 0)");//设置当前颜色
    //    this->horizontalHeader()->setDefaultSectionSize(80);  //设置默认宽度
    ui->tableWidget->verticalHeader()->setDefaultSectionSize(30);   //设置一行默认高度
//    ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//自适应所有列,让它布满空间,拉伸无效
//    ui->tableWidget->horizontalHeader()->resizeSections(QHeaderView::Stretch);//列可以拉伸
    ui->tableWidget->horizontalHeader()->setStretchLastSection(true);//拉伸最后一列,让它填满剩余的空白
    ui->tableWidget->setAlternatingRowColors(true);// 设置隔行背景色
    ui->tableWidget->setPalette(QPalette(QColor(70,70,70)));//参数还可写成QPalette(Qt::blue) QPalette(QColor(36,36,36))
    ui->tableWidget->setStyleSheet("selection-background-color:#0e4b72");  //设置选中行颜色


//    QString qssTV = "QTableWidget::item:hover{background-color:rgb(92,188,227,200)}"
//                        "QTableWidget::item:selected{background-color:red}"
//                        "QHeaderView::section{background-color:#383838;}"
//    "QTableWidget{background-color:#383838;border:none;}";
//    ui->tableWidget->setStyleSheet(qssTV);

    //设置表格中每一行的表头
    QStringList header;
    header<<"1"<<"2"<<"3"<<"4"<<"5";
    ui->tableWidget->setHorizontalHeaderLabels(header);

    for (int i=0; i<3; i++)
        for (int j=0; j<5;j++)
        {
            QTableWidgetItem *item = new QTableWidgetItem(QIcon(":/image/search.png"), "td");
            ui->tableWidget->setItem(i,j,item);
        }

//    QLabel *l1 = new QLabel();     //创建lable
//    l1->setPixmap(QPixmap(":/image/search.png"));    //加载图片
    pixmap = pixmap.scaled(15, 15, Qt::KeepAspectRatio, Qt::SmoothTransformation);  // 按比例缩放
//    l1->setAlignment(Qt::AlignVCenter | Qt::AlignHCenter);//设置居中

//    //设置表格中每一行的内容
//    tableWidget->setItem(0,0,new QTableWidgetItem("1"));
//    tableWidget->setCellWidget(0,1,l1);
//    tableWidget->setItem(0,2,new QTableWidgetItem("3"));
//    tableWidget->setItem(1,0,new QTableWidgetItem("1"));
//    tableWidget->setItem(1,1,new QTableWidgetItem("http://c.biancheng.net/qt/"));
//    tableWidget->setItem(1,2,new QTableWidgetItem("2"));
//    tableWidget->setItem(2,0,new QTableWidgetItem("C++1"));
//    tableWidget->setItem(2,1,new QTableWidgetItem("http://c.biancheng.net/cplus/"));

//    QTableWidgetItem *btItem = new QTableWidgetItem();   //靶体
//    btItem->setTextAlignment(Qt::AlignCenter);    //文字居中
//    btItem->setIcon(QIcon(":/image/search.png"));
//    btItem->setText("红旗飘飘");
//    tableWidget->setItem(2,2,btItem);


}

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

 .h:

#ifndef SCREENMANAGEMENT_H
#define SCREENMANAGEMENT_H
#include <QWidget>
#include <QHeaderView>


namespace Ui {
class ScreenManagement;
}

class ScreenManagement : public QWidget
{
    Q_OBJECT

public:
    explicit ScreenManagement(QWidget *parent = nullptr);
    ~ScreenManagement();


private:
    Ui::ScreenManagement *ui;
};

#endif // SCREENMANAGEMENT_H

这个是一个表格,如果我有多个表格,又不想每次都初始化配置项,那我可以封装一个类,在需要的时候调用

https://blog.csdn.net/qq_40015157/article/details/124821977?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22124821977%22%2C%22source%22%3A%22qq_40015157%22%7D&ctrtid=QMcu1icon-default.png?t=M4ADhttps://blog.csdn.net/qq_40015157/article/details/124821977?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22124821977%22%2C%22source%22%3A%22qq_40015157%22%7D&ctrtid=QMcu1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值