主要为 :添加、插入、修改、删除、清空等操作

例子:本例子中QListView 没有做任何处理,只是拖放至ui文件,设置了布局

MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include <QStringListModel> QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE class MainWindow : public QMainWindow
{
Q_OBJECT public:
MainWindow(QWidget *parent = nullptr);
~MainWindow(); private slots:
void on_btnRecovery_clicked(); void on_listView_clicked(const QModelIndex &index); void on_btnClearText_clicked(); void on_btnShowModel_clicked(); void on_btnAdd_clicked(); void on_btnInsert_clicked(); void on_btnDel_clicked(); void on_btnClear_clicked(); private:
Ui::MainWindow *ui;
QStringListModel *model;
};
#endif // MAINWINDOW_H

MainWindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this); model = new QStringListModel(this);
QStringList list;
list << "1" << "2" << "3";
model->setStringList(list); //为model设置数据
ui->listView->setModel(model);//为界面绑定model
ui->listView->setEditTriggers(QAbstractItemView::DoubleClicked | QAbstractItemView::SelectedClicked);//设置触发编辑的操作
} MainWindow::~MainWindow()
{
delete ui;
} /**
* @brief MainWindow::on_btnRecovery_clicked 恢复
*/
void MainWindow::on_btnRecovery_clicked()
{
QStringList list;
list << "1" << "2" << "3";
model->setStringList(list);
} /**
* @brief MainWindow::on_listView_clicked 选择之后,为状态栏赋值
* @param index
*/
void MainWindow::on_listView_clicked(const QModelIndex &index)
{
QString str = QString("第 %1 行,第 %2 列").arg(index.row() + 1).arg(index.column() + 1);
ui->statusbar->showMessage(str);
} /**
* @brief MainWindow::on_btnClearText_clicked 文本框清空
*/
void MainWindow::on_btnClearText_clicked()
{
ui->plainTextEdit->clear();
} /**
* @brief MainWindow::on_btnShowModel_clicked 显示消息模型中的QStringList
*/
void MainWindow::on_btnShowModel_clicked()
{
ui->plainTextEdit->clear();
foreach (QString item, model->stringList()) {
ui->plainTextEdit->appendPlainText(item);
}
} /**
* @brief MainWindow::on_btnAdd_clicked 最后一行添加
*/
void MainWindow::on_btnAdd_clicked()
{
model->insertRow(model->rowCount());
QModelIndex index = model->index(model->rowCount() - 1, 0);
model->setData(index, "new item", Qt::DisplayRole);
ui->listView->setCurrentIndex(index);
QString str = QString("第 %1 行,第 %2 列").arg(index.row() + 1).arg(index.column() + 1);
ui->statusbar->showMessage(str);
} /**
* @brief MainWindow::on_btnInsert_clicked 指定行插入
*/
void MainWindow::on_btnInsert_clicked()
{
QModelIndex index = ui->listView->currentIndex();
model->insertRow(index.row());
model->setData(index, "new item", Qt::DisplayRole);
} /**
* @brief MainWindow::on_btnDel_clicked 删除一行
*/
void MainWindow::on_btnDel_clicked()
{
QModelIndex index = ui->listView->currentIndex();
model->removeRow(index.row());
} /**
* @brief MainWindow::on_btnClear_clicked 清空model
*/
void MainWindow::on_btnClear_clicked()
{
model->removeRows(0, model->rowCount());
}

界面

QStringListModel的使用的更多相关文章

  1. Qt 学习之路:QStringListModel

    上一章我们已经了解到有关 list.table 和 tree 三个最常用的视图类的便捷类的使用.前面也提到过,由于这些类仅仅是提供方便,功能.实现自然不如真正的 model/view 强大.从本章起, ...

  2. qt model/view 架构自定义模型之QStringListModel

    # -*- coding: utf-8 -*- # python:2.x #QStringListModel #QStringListModel 是最简单的模型类,具备向视图提供字符串数据的能力. # ...

  3. (二)使用预定义模型 QStringListModel例子

    使用预定义模型 QStringListModel例子 源代码如下 Main.cpp #include <QApplication> #include "teamleadersdi ...

  4. Qt 学习之路 2(43):QStringListModel

    Qt 学习之路 2(43):QStringListModel 豆子 2013年2月13日 Qt 学习之路 2 38条评论 上一章我们已经了解到有关 list.table 和 tree 三个最常用的视图 ...

  5. QT QStringListModel 示例代码

    1.  QStringListModel , 实现 插入 删除 编辑 list,支持鼠标双击编辑. 2. dialog.h #ifndef DIALOG_H #define DIALOG_H #inc ...

  6. 5.listview(QStringList QStringListModel)

    UI mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include < ...

  7. PyQt(Python+Qt)学习随笔:model/view架构中的QStringListModel

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.QStringListModel介绍 QStringListModel是Qt提供的一个已经实现Q ...

  8. QT数据库使用案列【联系人】-- 使用sqlite和QStringListModel

    [关于如何打包自己开发的程序为安装包,可以参考http://www.cnblogs.com/yuliyang/p/4242179.html] [简要功能介绍] 使用sqlite数据库和Qt搭建界面,实 ...

  9. 基于trie树的具有联想功能的文本编辑器

    之前的软件设计与开发实践课程中,自己构思的大作业题目.做的具有核心功能,但是还欠缺边边角角的小功能和持久化数据结构,先放出来,有机会一点点改.github:https://github.com/chu ...

  10. Qt Undo Framework Demo

    Qt Undo Framework Demo eryar@163.com Abstract. Qt’s Undo Framework is an implementation of the Comma ...

随机推荐

  1. C# 和 SQL Server中 PadLeft和PadRight 的用法

    C# 中 PadLeft和PadRight 的用法 需求:需要一个字符串实现自增.是根据数据库中一个自增的int类型的值,实现自增的.但是要加上前缀.比如,数据库中有一个自增的值,为,2.那么这个自增 ...

  2. nodejs版本控制器nvm安装及简单使用

    介绍:nvm是node.js的版本管理器,可以安装和切换不同版本node.js 下载:https://github.com/coreybutler/nvm-windows/releases 官网下载: ...

  3. 【Amadeus原创】Docker容器的备份与还原

    主要作用: 就是让配置好的容器,可以得到复用,后面用到得的时候就不需要重新配置. 其中涉及到的命令有: docker commit 将容器保存为镜像 docker save -o 将镜像备份为tar文 ...

  4. 小程序,用户授权手机号,node需要检验和解析

    1. 第一步需要先在小程序api文档中下载对应语言的解密算法,解压之后就可以看到 https://developers.weixin.qq.com/miniprogram/dev/framework/ ...

  5. 对比 ASP.NET Core 中的 HttpContext.Features 与 HttpContext.Items

    对比 ASP.NET Core 中的 HttpContext.Features 与 HttpContext.Items https://newbedev.com/httpcontext-feature ...

  6. shell 读取文件内容到数组

    在 shell 脚本中,可以使用下面的语法来读取文件内容并将其存储到数组中:   bash 复制代码 array=() while read line; do array+=("$line& ...

  7. Linux&shell通过正则表达式查找文件练习

    linux&shell编程中通过正则表达式来匹配查找文件极大的提高查找效率. 首先,解释一下下边出现的命令. linux部分: ls:查看文件夹内的命令. |:管道. grep:搜索后边匹配的 ...

  8. SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt

    使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些.打开application.properties或application.yml,比如mysq ...

  9. Qt编写地图综合应用38-覆盖物矩形

    一.前言 矩形的应用场景和多边形基本一致,也是用来框起一块区域,然后根据坐标点集合,找到该区域内的标注点集合,比如指定某个县市区域多边形,然后找到这个县市对应的所有站点,拿到这些站点在做其他处理. 二 ...

  10. 并发和并行 | Python中实现多线程 threading 和多进程 multiprocessing

    并发和并行 | Python中实现多线程 threading 和多进程 multiprocessing 昨天晚上组会轮到我汇报技术内容,最近正在和 ray 以及 spark 打交道,索性讲一下并发和并 ...