Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7563548
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: 嵌入式

2013-12-23 10:38:50

Qt 内置了许多标准模型:

QStringListModel:存储简单的字符串列表。

QStandardItemModel:可以用于树结构的存储,提供了层次数据。

QFileSystemModel:本地系统的文件和目录信息。

QSqlQueryModelQSqlTableModel QSqlRelationalTableModel:存取数据库数据。

Qt 还提供了一系列预定义好的视图:QListView 用于显示列表,QTableView 用于显示表格,QTreeView 用于显示层次数据

    Qt 还有一系列方便使用的类。这些类都是继承自标准的视图类,并且继承了标准模型。这些类并不是为其他类继承而准备的,只是为了使用方便。它们包括QListWidgetQTreeWidget 和 QTableWidget


QListWidget

QListWidget
 是简单的列表组件。当我们不需要复杂的列表时,可以选择QListWidgetQListWidget 中可以添加 QListWidgetItem 类型作为列表项,QListWidgetItem 即可以有文本,也可以有图标。向 listWidget 添加列表项可以:
第一,使用下面的语句 
new QListWidgetItem(QIcon(":/Chrome.png"), tr("Chrome"), listWidget);


第二,使用

点击(此处)折叠或打开

  1. listWidget->addItem(new QListWidgetItem(QIcon(":/IE.png"), tr("IE")));
  2. // 或者
  3. QListWidgetItem *newItem = new QListWidgetItem;
  4. newItem->setIcon(QIcon(":/Maxthon.png"));
  5. newItem->setText(tr("Maxthon"));
  6. listWidget->insertItem(3, newItem);

列表是小图标显示,我们也可以更改为图标显示,只要添加一行语句:listWidget->setViewMode(QListView::IconMode);


QTreeWidget

QTreeWidget。顾名思义,这是用来展示树型结构(也就是层次结构)的。这个类需要同另外一个辅助类 QTreeWidgetItem 一起使用。当不需要使用复杂的 QTreeView 特性的时候,我们可以直接使用QTreeWidget 代替。


下面我们使用代码构造一棵树:

点击(此处)折叠或打开

  1. QTreeWidget treeWidget;
  2. treeWidget.setColumnCount(1);    /* 设定栏数 */

  3. QTreeWidgetItem *root = new QTreeWidgetItem(&treeWidget, QStringList(QString("Root"))); /* 添加该项到树中 */
  4. new QTreeWidgetItem(root, QStringList(QString("Leaf 1"))); /* 添加了第一个叶节点*/
  5. QTreeWidgetItem *leaf2 = new QTreeWidgetItem(root, QStringList(QString("Leaf 2"))); /* 添加第二个叶节点*/
  6. leaf2->setCheckState(0, Qt::Checked);

  7. QList<QTreeWidgetItem *> rootList;
  8. rootList << root;
  9. treeWidget.insertTopLevelItems(0, rootList);

  10. treeWidget.show();


QTableWidget

我们要介绍的最后一个是 QTableWidget。QTableWidget 并不比前面的两个复杂到哪里去,这点我们可以从代码看出来:

点击(此处)折叠或打开

  1. QTableWidget tableWidget;
  2. tableWidget.setColumnCount(3);
  3. tableWidget.setRowCount(5);

  4. QStringList headers;
  5. headers << "ID" << "Name" << "Age" << "Sex";
  6. tableWidget.setHorizontalHeaderLabels(headers);

  7. tableWidget.setItem(0, 0, new QTableWidgetItem(QString("0001")));
  8. tableWidget.setItem(1, 0, new QTableWidgetItem(QString("0002")));
  9. tableWidget.setItem(2, 0, new QTableWidgetItem(QString("0003")));
  10. tableWidget.setItem(3, 0, new QTableWidgetItem(QString("0004")));
  11. tableWidget.setItem(4, 0, new QTableWidgetItem(QString("0005")));
  12. tableWidget.setItem(0, 1, new QTableWidgetItem(QString("20100112")));

  13. tableWidget.show();

 
返回目录:Qt学习整理

阅读(2389) | 评论(0) | 转发(1) |
0

上一篇:Qt容器遍历

下一篇:QStringListModel

给主人留下些什么吧!~~