本文主要是一个表格的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);
}
}