Qt 内置了许多标准模型:
o QStringListModel:存储简单的字符串列表。
o QStandardItemModel:可以用于树结构的存储,提供了层次数据。
o QFileSystemModel:本地系统的文件和目录信息。
o QSqlQueryModel、QSqlTableModel 和QSqlRelationalTableModel:存取数据库数据。
Qt 还提供了一系列预定义好的视图:QListView 用于显示列表,QTableView 用于显示表格,QTreeView 用于显示层次数据
Qt 还有一系列方便使用的类。这些类都是继承自标准的视图类,并且继承了标准模型。这些类并不是为其他类继承而准备的,只是为了使用方便。它们包括QListWidget、QTreeWidget 和 QTableWidget。
QListWidget
QListWidget 是简单的列表组件。当我们不需要复杂的列表时,可以选择QListWidget。QListWidget 中可以添加 QListWidgetItem 类型作为列表项,QListWidgetItem 即可以有文本,也可以有图标。向 listWidget 添加列表项可以:
第一,使用下面的语句 new QListWidgetItem(QIcon(":/Chrome.png"), tr("Chrome"), listWidget);
第二,使用
-
listWidget->addItem(new QListWidgetItem(QIcon(":/IE.png"), tr("IE")));
-
// 或者
-
QListWidgetItem *newItem = new QListWidgetItem;
-
newItem->setIcon(QIcon(":/Maxthon.png"));
-
newItem->setText(tr("Maxthon"));
-
listWidget->insertItem(3, newItem);
列表是小图标显示,我们也可以更改为图标显示,只要添加一行语句:listWidget->setViewMode(QListView::IconMode);
QTreeWidget
QTreeWidget
。顾名思义,这是用来展示树型结构(也就是层次结构)的。这个类需要同另外一个辅助类 QTreeWidgetItem 一起使用。当不需要使用复杂的 QTreeView 特性的时候,我们可以直接使用QTreeWidget 代替。
下面我们使用代码构造一棵树:
-
QTreeWidget treeWidget;
-
treeWidget.setColumnCount(1); /* 设定栏数 */
-
-
QTreeWidgetItem *root = new QTreeWidgetItem(&treeWidget, QStringList(QString("Root"))); /* 添加该项到树中 */
-
new QTreeWidgetItem(root, QStringList(QString("Leaf 1"))); /* 添加了第一个叶节点*/
-
QTreeWidgetItem *leaf2 = new QTreeWidgetItem(root, QStringList(QString("Leaf 2"))); /* 添加第二个叶节点*/
-
leaf2->setCheckState(0, Qt::Checked);
-
-
QList<QTreeWidgetItem *> rootList;
-
rootList << root;
-
treeWidget.insertTopLevelItems(0, rootList);
-
-
treeWidget.show();
QTableWidget
我们要介绍的最后一个是 QTableWidget。QTableWidget 并不比前面的两个复杂到哪里去,这点我们可以从代码看出来:
-
QTableWidget tableWidget;
-
tableWidget.setColumnCount(3);
-
tableWidget.setRowCount(5);
-
-
QStringList headers;
-
headers << "ID" << "Name" << "Age" << "Sex";
-
tableWidget.setHorizontalHeaderLabels(headers);
-
-
tableWidget.setItem(0, 0, new QTableWidgetItem(QString("0001")));
-
tableWidget.setItem(1, 0, new QTableWidgetItem(QString("0002")));
-
tableWidget.setItem(2, 0, new QTableWidgetItem(QString("0003")));
-
tableWidget.setItem(3, 0, new QTableWidgetItem(QString("0004")));
-
tableWidget.setItem(4, 0, new QTableWidgetItem(QString("0005")));
-
tableWidget.setItem(0, 1, new QTableWidgetItem(QString("20100112")));
-
-
tableWidget.show();
返回目录:Qt学习整理
阅读(2439) | 评论(0) | 转发(1) |