Qt QTableWidget的用法
所需头文件
#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);
设置表格行表头
QStringList headerLabels;
headerLabels<<"Step"<<"Range 0"; // 如上图所示
m_pViewerTable->setHorizontalHeaderLabels(headerLabels);
设置表格行标题的对齐方式
m_pViewerTable->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);
设置列表头
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);
将行和列的大小设为与内容相配
m_pViewerTable->resizeColumnsToContents();
m_pViewerTable->resizeRowsToContents();
自动调整最后一列的宽度使它和表格的右边界对齐
m_pViewerTable->horizontalHeader()->setStretchLastSection(true);
设置表格选择方式
// 选中单个单元格
m_pViewerTable->setSelectionBehavior(QAbstractItemView::SelectItems);
// 选中一行
m_pViewerTable->setSelectionBehavior(QAbstractItemView::SelectRows);
// 选中一列
m_pViewerTable->setSelectionBehavior(QAbstractItemView::SelectColumns);
单个/多个选中设置
// 不能选择
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);
设置表格编辑方式
//不能对表格内容进行修改
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);
设置单元格内容/对齐方式
// 设置单元格内容
void QTableWidget::setItem(int row, int column, QTableWidgetItem * item)
//居中对齐
item0->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
设置单元格字体颜色和背景颜色及字体字符
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);
合并单元格
m_pViewerTable->setSpan(0, 0, 3, 1);
void QTableView::setSpan(int row, int column, int rowSpanCount, int columnSpanCount);
其他
//清除已有的行列
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);