//构造函数
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.
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.