QT:QTreeView文件系统右键菜单实现重命名的问题_qtreeview禁止双击编辑_nalynali的博客-程序员宅基地

技术标签: QT  

实现类似Windows文件管理器的功能,左边treeview文件夹列表,右边列出所有文件。
关于文件重命名:

  1. 左边文件树只可以右键重命名,禁掉双击编辑功能。
  2. 右边文件重命名通过EditTrigger设置。

左边treeview的数据模型为:

QSortFilterProxyModel *filterModel
MyLeftFileView::MyLeftFileView(QFileSystemModel *sourceModel) {
    

	filterModel = new QSortFilterProxyModel();
	filterModel->setSourceModel(sourceModel);
	setModel(filterModel);
	setEditTriggers(QAbstractItemView::NoEditTriggers);
}	

开始使用的这种方法

void MyLeftFileView::triggerRename()
{
    
	QModelIndexList indexList = selectionModel()->selectedRows();
	this->edit(filterModel->mapToSource(indexList.at(0)));
}

运行后无法实现rename,查了output发现提示错误信息:
edit: index was invalid
edit: editing failed

想了半天,原来是filterModel->mapToSource(indexList.at(0))这句话的问题,这里返回的是sourceModel的index,而MyLeftFileView的model是QSortFilterProxyModel ,修改如下后运行正确。

void MyLeftFileView::triggerRename()
{
    
	QModelIndexList indexList = selectionModel()->selectedRows();
	this->edit(indexList.at(0));
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/nalynali/article/details/108124018

智能推荐

嵌入式UWB定位测距设备开发实战(10)硬件之电源部分_uwb pcb_微尘小四儿的博客-程序员宅基地

原理图及PCB电源是一个系统至关重要的部分,这部分做的好坏,直接决定了设备的续航。因此也是我比较看重的部分。本产品所使用的EDA是立创EDA,大家可以尝试以下,个人觉得一点也不比AD差,对于一般的电路足够用了。上面是我的工程文件的示意图,我把工程分为电源部分、电平转换部分、AIR820主控部分、SIM卡部分以及UWB测距部分,今天主要分析电源部分。先来设备PCB电路板调试版本实物图。最下面的TYPE-C接口是为了方便调试加上的,最终的PCB里是没有的。电源充放电采用的是英..._uwb pcb

数据库相关概念_数据库管理的相关概念-程序员宅基地

一、数据库好处可以持久化数据到本地(磁盘) 使用结构化查询,比较容易管理二、数据库概念DB:数据库,存储数据的容器 DBMS:数据库管理系统,又称为数据库软件或者数据库产品,用于创建或者管理 DB。 MySQL Oracle SqlServer SQL:结构化查询语言,用于和数据库通信的语言,几乎所有主流数据库软件通用语言三、数据库存储数据的特点数据存放在表中,表再存入库中 一个库有多张表,每张表使用唯一表名来标识自己 表中有多个列(字段) 表中存储多行数据四_数据库管理的相关概念

浏览器中输入www.baidu.com后发生了什么-程序员宅基地

一道经典的面试题:你输入网址后到页面显示出来,中间发生了什么?第一步 浏览器查找该域名的 IP 地址第二步 浏览器根据解析得到的IP地址向 web 服务器发送一个 HTTP 请求第三步 服务器收到请求并进行处理第四步 服务器返回一个响应第五步 浏览器对该响应进行解码,渲染显示。第六步 页面显示完成后,浏览器发送异步请求。下面对每个环节做进一步分析:第一步 浏览器查找该域...

使用simulink来编写C语言进行仿真的快速实现方法_ccaller配置后simulink无法编译-程序员宅基地

1. 前期准备 必须使用2015b及以上版本的matlab来安装minGW-w64作为编译器否则是无法进行编译的,安装地址为:sourceforge.net ;注意安装的位数。 2. 使用方法 2.1 新建文件夹用于放置编写的代码文件和仿真模型 2.2 文件夹内部应该包含下面三个文件 注意:文件下的.mexw64是由于我仿真过后留下的文件,你们在初次建立没有仿真时是没有的。 2.3 其中C文件的内容如下 test.c文件下的内容为: #incl.._ccaller配置后simulink无法编译

JeeWx捷微2.4.1版本发布,JAVA微信管家平台(支持公众号、企业号)-程序员宅基地

JeeWx捷微2.4.1版本发布,JAVA微信管家平台(支持公众号、企业号)1.JEEWX平台介绍Jeewx是一款开源、敏捷、组件化的微信管家平台,支持微信公众号、微信企业号管理,采用JAVA语言基于Jeecg开发平台实现,Jeewx实现了微信平台的基础功能,便于用户二次开发。特点:Jeewx采用微服务框架,插件开发模式,不同的插件实现不同的微信功能。目标:Jeewx目标是打造一个多触点营销平...

随便推点

Linux 环境下使用g++编译C++-程序员宅基地

单个源文件生成可执行程序下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码:/* helloworld.cpp */#include int main(int argc,char *argv[]){ std::cout "hello, world" ::endl; return(0);}程序使用定义在头文件 iostre

java分布式-一致性_java 分布式项目,保证数据一致性-程序员宅基地

java分布式-一致性_java 分布式项目,保证数据一致性

oracle + raid 类型推荐及理由_oracle raid-程序员宅基地

首先,还是来看看常用的几个RAID级别之间的优缺点。2、在准备安装Oracle的服务器上,究竟选择哪种RAID合适呢,我要告诉你的是,没有定论,要想使你的Oracle服务器最终性能比较理想,下面是我总结的一个可行的办法a 、控制文件: --------------------------不用raid-----------------------------------_oracle raid

Android 百度地图开发定位失败,62错误_百度组件定位失败 62-程序员宅基地

在开发百度地图是,有个模块需要定位功能,通过loctype一直报62错,结果发现是定位问题,除了要动态获取定位权限以外,还要在AndroidManifest.xml中添加下列两种定位,只有一种ACCESS_COARSE_LOCATION不行。记录一下百度地图开发所采的坑,Android10,小米mis2s..._百度组件定位失败 62

通讯录管理系统(C语言编写)-程序员宅基地

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<iostream>#include<string>#include<windows.h>using namespace std;typedef struct student{ int num; char name[20]; char tel[15]; struct stude.

11位大咖集结!和最专业的人,探讨“由内及外”的未来趋势 | 生辉 · 生命科学大会-1_alex 先声-程序员宅基地

对于 2020 年而言,10月的到来为余下的时间按下了开启 “倒计时” 的按键。而对于生辉 · 生命科学大会而言,随着亮相的时间迫近,与君同聚的期待也愈加浓烈。此前,在生辉 · 生命大会官宣发声中,我们曾认为,那些不可抗力因素带来的变动和孕育在黄金时代里的机遇,正在重塑着生命科学行业的 “形状”。而其中,技术和资本所扮演角色是宏观趋势的发起人,深耕在不同方向的“掘金者” 更是引领划时代到来的领路人。“吾生也有涯,而知也无涯”,庄子的思想道明了人类认知的边界需要不断拓展的这一事实,深入的沟通是拉近物理距..._alex 先声