- 利用数据模型添加表头
-
QStandardItemModel *m_pModel;
-
m_pModel = new QStandardItemModel(ui->tableView_log);
-
//m_pModel->setHorizontalHeaderLabels(QStringList()<<QStringLiteral("项目名")<<QStringLiteral("信息"));
-
m_pModel->setColumnCount(5);
-
m_pModel->setHeaderData(0, Qt::Horizontal, QString(""));
-
m_pModel->setHeaderData(1, Qt::Horizontal, QString("时间"));
-
m_pModel->setHeaderData(2, Qt::Horizontal, QString("设备"));
-
m_pModel->setHeaderData(3, Qt::Horizontal, QString("用户"));
-
m_pModel->setHeaderData(4, Qt::Horizontal, QString("操作"));
- 添加行数据
-
for(int i = 0; i < 10; ++i)
-
{
-
m_pModel->setItem(i, 1, new QStandardItem("2016.01.21 15:50:25"));
-
m_pModel->setItem(i, 2, new QStandardItem("channel01"));
-
m_pModel->setItem(i, 3, new QStandardItem("admin"));
-
m_pModel->setItem(i, 4, new QStandardItem("录音"));
-
}
- 为QTableView设置数据模型
-
ui->tableView_log->setModel(m_pModel);
- 设置第一列为固定80宽度,其他自适应
-
ui->tableView_log->setColumnWidth(0, 80);
-
ui->tableView_log->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
-
ui->tableView_log->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
-
ui->tableView_log->resizeColumnsToContents();
- 使用交替行颜色
-
ui->tableView_log->setAlternatingRowColors(true);
- QSS里设置交替行颜色,及grid线颜色,选中背景色
-
QTableView{
-
color: rgb(0, 0, 0);
-
border: 1px solid #C07010; /*边框颜色*/
-
gridline-color:#C07010; /*grid线颜色*/
-
background-color: rgb(20, 20, 20);
-
alternate-background-color: rgb(200, 200, 200); /*行交替颜色*/
-
selection-background-color: rgb(130, 190, 100); /*选中行背景颜色*/
-
}
-
-
QTableView::item:!alternate:!selected{
-
background-color: rgb(220, 220, 220); /*交替行的另一颜色*/
-
}
这样可以让底下还没数据的行是表格的背景色
- 如果不需要这个效果,无数据行的背景跟交替行的另一颜色一样,可以去掉QTableView::item:!alternate:!selected则其颜色就是background-color了。
- 表头的qss
-
QHeaderView::section{
-
background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(80, 80, 80, 255), stop:1 rgba(30, 30, 30, 255));
-
color: rgb(240, 240, 240);
-
padding-left: 4px;
-
border: 1px solid #C07010;
-
min-height: 30px;
-
}
- 在第一列加入checkbox
-
for(int i = 0; i < 10; ++i)
-
{
-
QStandardItem *item = new QStandardItem();
-
item->setCheckable(true);
-
item->setCheckState(Qt::Unchecked);
-
m_pModel->setItem(i, 0, item);
-
}
转载地址:http://blog.csdn.net/zyx4843/article/details/50557411