QStringListModel是QT中的一个预定义模型,它存储一个字符串列表。
我们先看一下代码:
- #include <QApplication>
- #include <QtGui>
- int main(int argc, char** argv)
- {
- QApplication app(argc, argv);
- QWidget* widget = new QWidget;
- QHBoxLayout* layout = new QHBoxLayout;
- QStringListModel* listModel = new QStringListModel;
- QListView* listView = new QListView;
- QStringList nameList;
- nameList<<"ZheDong Mao"<<"RenLai Zhou"<<"XiaoPing Deng"<<"ShaoQi Liu"<<"De Zhu"<<"DeHuai Peng";
- listModel->setStringList(nameList);
- listView->setModel(listModel);
- listView->setEditTriggers(QAbstractItemView::AnyKeyPressed | QAbstractItemView::DoubleClicked);
- layout->addWidget(listView);
- widget->setWindowTitle("QStringListModel");
- widget->setLayout(layout);
- widget->show();
- return app.exec();
- }
我们这里使用了一个QListView来和 QStringListModel进行连接,这样 QStringListModel的内容就会在QListView中显示出来,任何对QStringListModel的修改都会显示在QListView中。这样我们就可以达到数据存储和显示的分离,我们可以专注我们的数据部分(QStringListModel,只要我们定义好接口),显示的部分就由QListView去负责,这就是QT的MVC(Model-View-Controller)机制,在MFC里也就是document和view。
下面是运行的图片:
在代码中,我们通过定义双击的形式来修改字符串,我们可以点击项,这样就可以修改它。