(一)Qt中的模型类的层次结构

Qt 内置了许多标准模型:
QStringListModel :存储简单的字符串列表。
QFileSystemModel :本地系统的文件和目录信息
QStandardItemModel :可以用于树结构的存储,提供了层次数据
(二)Qt中的视图类的层次结构

其中:QListView 用于显示列表,QTableView 用于显示表格,QTreeView 用于显示层次数据
(三)模型中的索引
模型索引是数据与视图分离的重要机制
模型中的数据使用唯一的索引来访问
QModelIndex是Qt中的模型索引类,它包含了具体的数据访问途径和一个指向模型的指针。

(四)QListWidget、QTreeWidget 和 QTableWidget介绍
QListWidget
向列表中添加列表项的方法:
方法一
new QListWidgetItem(QIcon(":/image/add.png"), tr("add"), listWidget); 方法二
listWidget->addItem(new QListWidgetItem(QIcon(":/image/add_gray.png"), tr("add_gray")));
或则
QListWidgetItem *newItem = new QListWidgetItem; newItem->setIcon(QIcon(":/image/add_red.png")); newItem->setText(tr("add_red")); listWidget->insertItem(3, newItem);
效果图:

具体代码如下:
label = new QLabel(this); label->setFixedWidth(10);
listWidget = new QListWidget(this);
new QListWidgetItem(QIcon(":/image/add.png"), tr("add"), listWidget); new QListWidgetItem(QIcon(":/image/about.png"), tr("about"), listWidget);
listWidget->addItem(new QListWidgetItem(QIcon(":/image/add_gray.png"), tr("add_gray"))); listWidget->addItem(new QListWidgetItem(QIcon(":/image/add_green.png"), tr("add_green")));
QListWidgetItem *newItem = new QListWidgetItem; newItem->setIcon(QIcon(":/image/add_red.png")); newItem->setText(tr("add_red")); listWidget->insertItem(3, newItem);
QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(label); layout->addWidget(listWidget);
setLayout(layout);
2 QTreeWidget

QTreeWidget treeWidget;
QStringList headers; headers << "Name" << "Number"; treeWidget.setHeaderLabels(headers);
QStringList rootTextList; rootTextList << "Root" << "0"; QTreeWidgetItem *root = new QTreeWidgetItem(&treeWidget, rootTextList);
new QTreeWidgetItem(root, QStringList() << QString("Leaf 1") << "1"); QTreeWidgetItem *leaf2 = new QTreeWidgetItem(root, QStringList() << QString("Leaf 2") << "2"); leaf2->setCheckState(0, Qt::Checked);
QList<QTreeWidgetItem *> rootList; rootList << root; treeWidget.insertTopLevelItems(0, rootList);
treeWidget.show(); 3 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(); <END>

---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:DolphinHai,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ----------------------------------------------------------------------------------------------------------------------
|