QTableWidget

//构造函数
QTableWidget(QWidget *parent = Q_NULLPTR);

QTableWidget(int rows, int columns, QWidget *parent =Q_NULLPTR);

The QTableWidget class provides an item-based table view with a default model.
QTableWidget_第1张图片
Table widgets为程序提供一个标准的表格显示界面,如上。在表格中的项(items)是由QTableWidgetItem对象初始化实现的。


如果你想在程序中呈现一个自己定义的数据模型表,那么你应该使用QTableView 而不是QTableWidget


表格窗口可以通过提供的 两个参数rows(行)和columns(列)构造一个表格窗口。

QTableWidget* tableWidget = new QTableWidget(12,3,this);

当然,你也可以先构建一个表格窗口,随后再设置行大小和列大小。

QTableWidget* tableWidget = new QTableWidget(this);
tableWidget->setRowCount(12);
tableWidget->setColumnCount(3);

在表中创建项目(Items),并通过函数setItem()将项目插入到表格中

QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg((row+1) * (column + 1)));
tableWidget->setItem(row,column,newItem);

把表项newItem插入到表格的行row,列column,且重绘该单元格。如果该单元格存在一个表项,则删除用newItem代替,表格拥有表格的所有权。


表格也可以设置水平标题或者垂直标题(header)。
创建标题最简单的方法是:提供一个字符串列表(a list of strings)作为函数setHorizontaHeaderLabels()或者setVerticalHeaderLabels()的参数。

void QTableWidget::setVerticalHeaderLabels(const QstringList &labels);

void QTableWidget::setHorizontaHeaderLabels(const QstringList &labels);

也可以构建更复杂的表项标题
例如:利用图标(icon) 和 对齐的文本(aligned text)构建表象的标题(header).然后将表项放入指定的行(colum):

QTableWidgetItem *cubesHeaderItem = new QTableWidgetItem(tr("Cubes"));
cubesHeaderItem->setIcon( QIcon( QPixmap(":/Images/cubes.png")));
cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);

//setTextAlignment的声明:

void QTableWidgetItem::setTextAlignment(int alignment)
//将项目文本的文本对齐方式设置为指定的对齐方式。

横向对齐:

Constant Value 描述
Qt::AlignLeft 0x0001 与左边缘对齐
Qt::AlignRight 0x0002 与右边缘对
Qt::AlignHCenter 0x0004 水平放在可用空间的中间位
Qt::AlignJustify 0x0008 两端对齐。并不是所有时候都有效,有时会被AlignAuto中断

竖向对齐:

Constant Value 描述
Qt::AlignTop 0x0020 居顶
Qt::AlignBottom 0x0040 居底
Qt::AlignVCenter x0080 居中
Qt::Baseline 0x0100 横竖都居中

表中的行的个数可用函数rowCount()表示,
列的个数用函数lumnCount()表示表示。
使用ear()函数函数清除表。

//函数的声明

int QTableWidget::rowCount() const  //Returns the number of rows
int QTableWidget::columnCount() const   //Returns the number of columns.

你可能感兴趣的:(Qt)