(二)使用预定义模型 QStringListModel例子
来源:互联网 发布:算法设计克林伯格pdf 编辑:程序博客网 时间:2024/06/14 20:35
(二)使用预定义模型 QStringListModel例子
- 博客分类:
- Qt
Qt表格预定义模型QStringListModel
目录:
(一) Qt Model/View 的简单说明 、预定义模型
(二)使用预定义模型 QstringListModel例子
(三)使用预定义模型QDirModel的例子
(四)Qt实现自定义模型基于QAbstractTableModel
(五)Qt实现自定义模型基于QAbstractItemModel
(六) Qt实现自定义委托 QDelegate
使用预定义模型 QStringListModel例子
源代码如下
Main.cpp
- #include <QApplication>
- #include "teamleadersdialog.h"
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- //字符串数组
- QStringList leaders;
- leaders << "Stooge Viller" << "Littleface" << "B-B Eyes"
- << "Pruneface" << "Mrs. Pruneface" << "The Brow"
- << "Vitamin Flintheart" << "Flattop Sr." << "Shakey"
- << "Breathless Mahoney" << "Mumbles" << "Shoulders"
- << "Sketch Paree";
- //对话框
- TeamLeadersDialog dialog(leaders);
- dialog.show();
- return app.exec();
- }
teamleadersdialog.h
- #ifndef TEAMLEADERSDIALOG_H
- #define TEAMLEADERSDIALOG_H
- #include <QDialog>
- class QDialogButtonBox;
- class QListView;
- class QStringListModel;
- class TeamLeadersDialog : public QDialog
- {
- Q_OBJECT
- public:
- //构造函数
- TeamLeadersDialog(const QStringList &leaders, QWidget *parent = 0);
- QStringList leaders() const;
- private slots:
- void insert();
- void del();
- private:
- QListView *listView;
- QDialogButtonBox *buttonBox;
- QStringListModel *model;
- };
- #endif
teamleadersdialog.cpp
- #include <QtGui>
- #include "teamleadersdialog.h"
- TeamLeadersDialog::TeamLeadersDialog(const QStringList &leaders,
- QWidget *parent)
- : QDialog(parent)
- {
- //创建并组装一个QStringListModel
- model = new QStringListModel(this);
- model->setStringList(leaders);
- //创建一个QListView
- listView = new QListView;
- //设置模型
- listView->setModel(model);
- //设置QListView编辑触发器:通过开始输入或者双击进入编辑字符串的状态
- listView->setEditTriggers(QAbstractItemView::AnyKeyPressed
- | QAbstractItemView::DoubleClicked);
- //
- buttonBox = new QDialogButtonBox();
- QPushButton *insertButton = buttonBox->addButton(tr("&Insert"),
- QDialogButtonBox::ActionRole);
- QPushButton *deleteButton = buttonBox->addButton(tr("&Delete"),
- QDialogButtonBox::ActionRole);
- buttonBox->addButton(QDialogButtonBox::Ok);
- buttonBox->addButton(QDialogButtonBox::Cancel);
- //信号槽绑定插入、删除按钮
- connect(insertButton, SIGNAL(clicked()), this, SLOT(insert()));
- connect(deleteButton, SIGNAL(clicked()), this, SLOT(del()));
- //按钮盒的ok和Cancel事件
- connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
- connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
- //界面竖直布局listView和buttonBox
- QVBoxLayout *mainLayout = new QVBoxLayout;
- mainLayout->addWidget(listView);
- mainLayout->addWidget(buttonBox);
- //设置当前窗口的布局为mainLayout
- setLayout(mainLayout);
- setWindowTitle(tr("Team Leaders"));
- }
- //获取当前模型中的内容
- QStringList TeamLeadersDialog::leaders() const
- {
- return model->stringList();
- }
- void TeamLeadersDialog::insert()
- {
- //从列表视图得到当前项的行数
- int row = listView->currentIndex().row();
- //在模型中插入一个新行,并且模型会自动更新列表视图
- model->insertRows(row, 1);
- //获取当前行在模型中的"模型索引"
- QModelIndex index = model->index(row);
- //设置刚刚插入的空白行为列表视图的当前索引
- listView->setCurrentIndex(index);
- //设置列表视图在当前行进入编辑状态
- listView->edit(index);
- }
- void TeamLeadersDialog::del()
- {
- //从目前行开始,共删除1行model数据,并自动更新列表视图
- model->removeRows(listView->currentIndex().row(), 1);
- }
0 0
- (二)使用预定义模型 QStringListModel例子
- (二)使用预定义模型 QStringListModel例子
- 使用预定义模型 QStringListModel+QStringlist例子
- 使用预定义模型 QStringListModel例子
- 使用预定义模型QDirModel+Treeview的例子
- QStringListModel的简单使用
- QStringListModel的简单使用
- 【转载】10.2 使用预定义模型(Using Predefined Models)
- QStringListModel
- QStringListModel
- 预定义的使用
- model-view模型之QListView和QStringListModel
- model-view模型之QListView和QStringListModel .
- select模型使用例子
- select模型使用例子
- QListView使用学习--QStringListModel的使用
- 预定义变量的使用
- 预定义宏的使用
- HttpServletResponse对象
- C语言笔记,(一)概述
- 分布式异步消息框架构建笔记2——yield机制及单线程多任务系统
- 二十三.异常向量表
- HDU—— 2673 shǎ崽 OrOrOrOrz
- (二)使用预定义模型 QStringListModel例子
- 下一个时代已经来临,它是属于我们这一代的,人生一次重大的机遇在前方等待着我们,下一个十年
- js 查看屏幕分辨率及宽高
- android学习——popupWindow 在指定位置上的显示
- C语言算法(二)
- qt相关博客
- 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
- NSURLSession实现断点下载
- EXT.NET的布局方式