Fork me on GitHub

Qt QTableWidget的用法


Qt QTableWidget的用法

所需头文件

1
2
3
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QheaderView>

新建表格

QTableWidget *m_pViewerTable = new QTableWidget(m_row,m_column);

设置行数

m_pViewerTable->setRowCount(m_row);

设置列数

m_pViewerTable->setColumnCount(m_column);

设置表格行表头

1
2
3
QStringList headerLabels;
headerLabels<<"Step"<<"Range 0"; // 如上图所示
m_pViewerTable->setHorizontalHeaderLabels(headerLabels);

设置表格行标题的对齐方式

m_pViewerTable->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);

设置列表头

1
2
3
QStringList rowLabels;
rowLabels<<"row 1"<<"row 2"<<"row 3"<<"row 4";
m_pViewerTable->setVerticalHeaderLabels(rowLabels);

隐藏行表头

m_pViewerTable->horizontalHeader()->setVisible(false);

影藏列表头

m_pViewerTable->verticalHeader()->setVisible(false);

设置行高度

m_pViewerTable->setRowHeight(0, 122);

设置列高度

m_pViewerTable->setColumnWidth(0,135);

将行和列的大小设为与内容相配

1
2
m_pViewerTable->resizeColumnsToContents();  
m_pViewerTable->resizeRowsToContents();

自动调整最后一列的宽度使它和表格的右边界对齐

m_pViewerTable->horizontalHeader()->setStretchLastSection(true);

设置表格选择方式

1
2
3
4
5
6
// 选中单个单元格
m_pViewerTable->setSelectionBehavior(QAbstractItemView::SelectItems);
// 选中一行
m_pViewerTable->setSelectionBehavior(QAbstractItemView::SelectRows);
// 选中一列
m_pViewerTable->setSelectionBehavior(QAbstractItemView::SelectColumns);

单个/多个选中设置

1
2
3
4
5
6
7
8
9
10
// 不能选择
m_pViewerTable->setSelectionMode(QAbstractItemView::NoSelection);
// 选中单个目标
m_pViewerTable->setSelectionMode(QAbstractItemView::SingleSelection);
// 选中多个目标
m_pViewerTable->setSelectionMode(QAbstractItemView::MultiSelection);
// 正常情况下是单选,按下Ctrl键后,可以多选
m_pViewerTable->setSelectionMode(QAbstractItemView::ExtendedSelection);
// 正常情况下是单选,按下Shift键后,可以多选
m_pViewerTable->setSelectionMode(QAbstractItemView::ContiguousSelection);

设置表格编辑方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//不能对表格内容进行修改
m_pViewerTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
//任何时候都能对单元格修改
m_pViewerTable->setEditTriggers(QAbstractItemView::CurrentChanged);
//双击单元格
m_pViewerTable->setEditTriggers(QAbstractItemView::DoubleClicked);
//单击已选中的内容
m_pViewerTable->setEditTriggers(QAbstractItemView::SelectedClicked);
//按下Edit键修改
m_pViewerTable->setEditTriggers(QAbstractItemView::EditKeyPressed);
//按下任意键就能修改
m_pViewerTable->setEditTriggers(QAbstractItemView::AnyKeyPressed);
//以上条件全包括
m_pViewerTable->setEditTriggers(QAbstractItemView::AllEditTriggers);

设置单元格内容/对齐方式

1
2
3
4
// 设置单元格内容
void QTableWidget::setItem(int row, int column, QTableWidgetItem * item)
//居中对齐
item0->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);

设置单元格字体颜色和背景颜色及字体字符

1
2
3
4
5
QTableWidgetItem *item = new QTableWidgetItem("Apple");  
item->setBackgroundColor(QColor(0,60,10));
item->setTextColor(QColor(200,111,100));
item->setFont(QFont("Helvetica"));
m_pViewerTable->setItem(0,3,item);

合并单元格

1
2
m_pViewerTable->setSpan(0, 0, 3, 1);
void QTableView::setSpan(int row, int column, int rowSpanCount, int columnSpanCount);

其他

1
2
3
4
5
6
7
8
9
10
11
12
13
//清除已有的行列
for(int i = m_pViewerTable->rowCount();i > 0;i--)
{
m_pViewerTable->removeRow(0);
}
//显示表格线
m_pViewerTable->setShowGrid(true);
//去掉水平滚动条
m_pViewerTable->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
//垂直滚动条按项移动
m_pViewerTable->setVerticalScrollMode(QAbstractItemView::ScrollPerItem);
//去掉自动滚动
m_pViewerTable->setAutoScroll(false);
坚持原创技术分享,您的支持将鼓励我继续创作
-------------本文结束感谢您的阅读-------------
0%