QStringListModel的使用
主要为 :添加、插入、修改、删除、清空等操作
例子:本例子中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的使用的更多相关文章
- Qt 学习之路:QStringListModel
上一章我们已经了解到有关 list.table 和 tree 三个最常用的视图类的便捷类的使用.前面也提到过,由于这些类仅仅是提供方便,功能.实现自然不如真正的 model/view 强大.从本章起, ...
- qt model/view 架构自定义模型之QStringListModel
# -*- coding: utf-8 -*- # python:2.x #QStringListModel #QStringListModel 是最简单的模型类,具备向视图提供字符串数据的能力. # ...
- (二)使用预定义模型 QStringListModel例子
使用预定义模型 QStringListModel例子 源代码如下 Main.cpp #include <QApplication> #include "teamleadersdi ...
- Qt 学习之路 2(43):QStringListModel
Qt 学习之路 2(43):QStringListModel 豆子 2013年2月13日 Qt 学习之路 2 38条评论 上一章我们已经了解到有关 list.table 和 tree 三个最常用的视图 ...
- QT QStringListModel 示例代码
1. QStringListModel , 实现 插入 删除 编辑 list,支持鼠标双击编辑. 2. dialog.h #ifndef DIALOG_H #define DIALOG_H #inc ...
- 5.listview(QStringList QStringListModel)
UI mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include < ...
- PyQt(Python+Qt)学习随笔:model/view架构中的QStringListModel
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.QStringListModel介绍 QStringListModel是Qt提供的一个已经实现Q ...
- QT数据库使用案列【联系人】-- 使用sqlite和QStringListModel
[关于如何打包自己开发的程序为安装包,可以参考http://www.cnblogs.com/yuliyang/p/4242179.html] [简要功能介绍] 使用sqlite数据库和Qt搭建界面,实 ...
- 基于trie树的具有联想功能的文本编辑器
之前的软件设计与开发实践课程中,自己构思的大作业题目.做的具有核心功能,但是还欠缺边边角角的小功能和持久化数据结构,先放出来,有机会一点点改.github:https://github.com/chu ...
- Qt Undo Framework Demo
Qt Undo Framework Demo eryar@163.com Abstract. Qt’s Undo Framework is an implementation of the Comma ...
随机推荐
- This request has been blocked; the content must be served over HTTPS.此请求已被阻止;内容必须通过HTTPS提供
近期在做将高德地图替换为天地图时遇到了这个问题,原因是https由于安全协议禁止了http的请求 http://api.tianditu.gov.cn/api?v=4.0&tk=XXXXXXX ...
- three.js 性能优化之模型转化与压缩
模型转换 obj转gltf 安装插件 npm i -g obj2gltf 执行转换命令 obj2gltf -i 11-6.obj -o 11-6.gltf -u 模型压缩 安装gltf-pipelin ...
- ProcessExplorer 多功能任务管理器软件-中文绿色单文件版
今天我和大家分享一款系统监控工具--ProcessExplorer.一个比Windows自带的任务管理器更强大的工具.感觉最实用的是他的搜索功能,可以搜到系统任务管理器里面无法显示的应用, 大家可以网 ...
- SQLServer无法远程连接的解决方法
服务器端: 打开SQLServer配置管理器 - SQLServer 网络配置- MSSQLSERVER的协议-TCP/IP 启用 运行输入Services.msc,重启MSSQLSERVER服务. ...
- IOS热重载工具InjectionIII
IOS热重载工具InjectionIII 支持 OC.Swift 以及 Swift 和 OC 混编项目的 UI 热重载工具,采取在模拟器(真机不支持)注入方式实现 UI 热重载,修改完 UI 直接 c ...
- 【Python】【Flask】【字符串索引】计算人民币与美元的相互计算
目录 简介 Python Code 导包 设置首页 计算的接口 问题0:设置请求方式 问题1:关于接收数据可能存在的问题 问题2:返回结果 启动 完整代码 HTML Code 问题分析 分析:获取下拉 ...
- 【C#】【平时作业】习题-9-接口
1.什么是接口 为派生类提供因该遵守的标准结构,而本身只包含成员声明,不包含成员的定义 2.接口与抽象类有什么区别 3.设计IBluetooth. public interface IBluetoot ...
- Qt/C++开发经验小技巧286-290
国内站点:https://gitee.com/feiyangqingyun 国际站点:https://github.com/feiyangqingyun 很多时候项目越写越大,然后就可能遇到,明明之前 ...
- 关于QtCreator中三种不同编译版本 debug、release、profile 的区别
debug调试模式,编译后的可执行文件很大,带了很多调试符号信息等,方便开发阶段调试的时候进入具体的堆栈查看值.会打开所有的断言,运行阶段性能差速度慢,可能会有卡顿感觉. release发布模式,编译 ...
- [LC1302] 层数最深叶子节点的和
题目概述 给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和 . 基本思路 这是一个简单的树的遍历的问题,可以用bfs或者dfs来解题.这里采用dfs来解,在遍历的过程中,只需要用全 ...