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布局