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

例子:本例子中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. 在 ASP.NET Core 中进行打包 (Bundling) 和紧缩 (Minification)

    在 ASP.NET Core 中进行打包 (Bundling) 和紧缩 (Minification) Bundler & Minifier for Visual Studio 2019 Bun ...

  2. 【金TECH频道】汇聚多元化超级算力,看见更好的“源启”

    越来越多的金融机构开始利用大数据和AI技术,提升信贷业务的效率,利用隐私计算打造开放式金融,让客户随时随地获得金融服务:气象领域,高精度计算让我们能准确地预测恶劣的天气,医疗大数据让部分癌症的治愈成为 ...

  3. django介绍及基本使用

    目录 一.python主流web框架 二.django简介 1.版本问题 2.运行django注意事项 三.django基本使用 1.下载模块 2.验证 3.常见命令 4.pycharm自动创建dja ...

  4. AOP中动态代理详解

    动态代理概述 什么是代理 代理模式(Proxy pattern): 为另一个对象提供一个替身或占位符以控制对这个对象的访问 什么是动态代理? 动态代理就是,在程序运行期,创建目标对象的代理对象,并对目 ...

  5. metasploit模块

    模块类型 辅助模块(Auxiliary) 渗透攻击模块(Exploits) 后渗透攻击模块(Post) 攻击载荷模块(Payloads) 空指令模块(Nops) 编码器模块(Encoders) 后渗透 ...

  6. 【C#】【类设计器】【类图】类图安装与简单使用

    安装 使用 Ctrl + Shift + A 或者按下图操作

  7. Qt编写地图综合应用21-路径规划

    一.前言 近期重新将这个地图综合应用进行大幅度的改进更新升级,包括使用示例也做了非常多的改进和调整,其中就包括路径规划功能,之前只是调用了百度地图的JS交互接口,根据起始点坐标经纬度和结束点坐标经纬度 ...

  8. Python 问题汇总

    一. Python 环境问题 使用pytest 在terminal中执行脚本调用python3.9, 而使用pycharm 的virtualenv 执行脚本调用的是python3.10, 由于环境不一 ...

  9. 2021 年万圣节 Github 彩蛋

    记录每年 Github 万圣节彩蛋,也记录有来项目成长历程. 2021 万圣节彩蛋 2020 万圣节彩蛋

  10. CDS标准视图:维护通知原因数据 I_MaintNotificationCauseData

    视图名称:维护通知原因数据 I_MaintNotificationCauseData 视图类型:基础 视图代码: 点击查看代码 @AbapCatalog.sqlViewName: 'INOTIFCAU ...