QTableWidget&QTableView表格美化

本文主要是一个表格的Demo (间隔变色的功能)。涉及到QTableview 和QtableWidget的一些功能。写的不好仅供参考:
图的样式如下:
在这里插入图片描述
头文件 .h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void  initTable();
private:
    Ui::MainWindow *ui;

};
#endif // MAINWINDOW_H

.cpp 文件

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QTableWidgetItem>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    initTable();
}

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

void MainWindow::initTable()
{
    ui->table->setRowCount(7);   //7行
    ui->table->setColumnCount(6);   //6列
    ui->table->setFrameShape(QFrame::NoFrame); //设置边框
    ui->table->setFixedSize(500,212);   //固定大小
    ui->table->verticalHeader()->setVisible(false); //设置垂直头不可见
    ui->table->horizontalHeader()->setVisible(false);   //设置水平头不可见
    ui->table->setSelectionMode(QAbstractItemView::ExtendedSelection); //可多选(Ctrl、Shift、 Ctrl+A都可以)
    ui->table->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选择行为时每次选择一行
    ui->table->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置不可编辑
    ui->table->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条
    ui->table->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);  //去掉垂直滚动条
    ui->table->setFont(QFont("Helvetica"));

    ui->table->setColumnWidth(0,80);
    ui->table->setColumnWidth(1,80);
    ui->table->setColumnWidth(2,80);
    ui->table->setColumnWidth(3,100);
    ui->table->setColumnWidth(4,80);
    ui->table->setColumnWidth(5,80);

    ui->table->setAlternatingRowColors(true);
    ui->table->setFrameShape(QFrame::NoFrame); //设置边框
    ui->table->setFocusPolicy(Qt::NoFocus); //去除选中虚线框

    QPalette palette;    //调色板
    palette.setColor(QPalette::Base, QColor(255,255,255));   //基底
    palette.setColor(QPalette::AlternateBase, QColor(233,245,252));  //交替基底
    ui->table->setPalette(palette);

    //表头列文本设置
    ui->table->setItem(0, 0, new QTableWidgetItem("第一列"));
    ui->table->setItem(0, 1, new QTableWidgetItem("第二列"));
    ui->table->setItem(0, 2, new QTableWidgetItem("第三列"));
    ui->table->setItem(0, 3, new QTableWidgetItem("第四列"));
    ui->table->setItem(0, 4, new QTableWidgetItem("第五列"));
    ui->table->setItem(0, 5, new QTableWidgetItem("第六列"));

    ui->table->item(0,0)->setTextColor(Qt::white);
    ui->table->item(0,0)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    ui->table->item(0,0)->setBackground(QColor(10, 53, 79));
    ui->table->item(0,0)->setFont(QFont("Helvetica",10,QFont::Bold));

    ui->table->item(0,1)->setTextColor(Qt::white);
    ui->table->item(0,1)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    ui->table->item(0,1)->setBackground(QColor(10, 53, 79));
    ui->table->item(0,1)->setFont(QFont("Helvetica",10,QFont::Bold));

    ui->table->item(0,2)->setTextColor(Qt::white);
    ui->table->item(0,2)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    ui->table->item(0,2)->setBackground(QColor(10, 53, 79));
    ui->table->item(0,2)->setFont(QFont("Helvetica",10,QFont::Bold));

    ui->table->item(0,3)->setTextColor(Qt::white);
    ui->table->item(0,3)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    ui->table->item(0,3)->setBackground(QColor(10, 53, 79));
    ui->table->item(0,3)->setFont(QFont("Helvetica",10,QFont::Bold));

    ui->table->item(0,4)->setTextColor(Qt::white);
    ui->table->item(0,4)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    ui->table->item(0,4)->setBackground(QColor(10, 53, 79));
    ui->table->item(0,4)->setFont(QFont("Helvetica",10,QFont::Bold));

    ui->table->item(0,5)->setTextColor(Qt::white);
    ui->table->item(0,5)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    ui->table->item(0,5)->setBackground(QColor(10, 53, 79));
    ui->table->item(0,5)->setFont(QFont("Helvetica",10,QFont::Bold));

    for( int i = 0; i < 6; i++ )
    {
        ui->table->setItem(i+1, 0, new QTableWidgetItem(QString("(%1,1)").arg(i+1)));
        ui->table->setItem(i+1, 1, new QTableWidgetItem(QString("(%1,2)").arg(i+1)));
        ui->table->setItem(i+1, 2, new QTableWidgetItem(QString("(%1,3)").arg(i+1)));
        ui->table->setItem(i+1, 3, new QTableWidgetItem(QString("(%1,4)").arg(i+1)));
        ui->table->setItem(i+1, 4, new QTableWidgetItem(QString("(%1,5)").arg(i+1)));
        ui->table->setItem(i+1, 5, new QTableWidgetItem(QString("(%1,6)").arg(i+1)));

        ui->table->item(i+1, 0)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        ui->table->item(i+1, 1)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        ui->table->item(i+1, 2)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        ui->table->item(i+1, 3)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        ui->table->item(i+1, 4)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        ui->table->item(i+1, 5)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值