之所以会写这篇博文,主要是由于近期从网上下载了一堆图片,但图片名称非常没有规律,处理起来非常不方便,由此想到是不是有一键命名的软件能够帮助我对全部图片命名,是图片名称有规律,这样在处理时方便操作。

有了这个想法之后,就在网上找,找了半天发现没有类似的软件(至少我没发现)。并且因为个人认为假设自己写的话应该不会太麻烦,毕竟仅仅是改动文件的名称,而不正确文件内容作不论什么操作。所以就决定自己写一个,这样既锻炼了编程能力,并且以后还能够用,何乐而不为。

详细操作过程例如以下:

第一步:使用Qt Creator创建主窗体,能够带有图形界面,也可不带,由于界面比較简单。

第二步:在主窗体中加入须要用到的子部件,主要有:button、标签、进度条等,摆放好位置。操作结果例如以下图:

第三步:对各个部件进行命名,假设不熟悉能够到网上百度qt designer的使用方法,有非常多资料。

第四部:使用qss对部件进行美化,能够使用.qss文件,也能够分别对每一个部件设置样式表;假设使用.qss文件,建议将文件以资源文件形式使用,不熟悉资源文件的请參考                         《C++ GUI Qt 4编程》这本书或者到网上找资料。

第五步:对各个部件的功能进行编程。主要採用槽函数的形式。

首先在“选择文件”button上单击鼠标右键,选择“转到槽...”->"clicked()"...点击确定,即进入槽函数。槽函数内部例如以下:

<span style="font-size:14px;">       filelist = QFileDialog::getOpenFileNames(this,tr("Open Image"), ".",
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)");</span>

当中:filelist为QStringList类型的对象。该函数返回选择的文件的列表,结果存储在filelist中。

然后,使用同样的方法进入“一键命名”的槽函数中。函数内部例如以下:

<span style="font-size:14px;">    QString temp;
QStringList test = filelist.at(0).split(".");
//获取文件的类型
QString format(tr(".%1").arg(test.at( test.size()-1) )); ui->progressBar->setMaximum(filelist.size()); for(int i=0;i<filelist.size();++i)
{
temp = tr("%1").arg(i+1);
QFile filename(filelist.at(i));
ui->current->setText(filename.fileName());
filename.rename(temp.append(format));
ui->progressBar->setValue(i+1);
ui->progressBar->setToolTip(tr("当前进度%1").arg(i+1));
}</span>

函数内部首先获取文件的类型,并将类型存在format中。是哦那个filelist.size()函数获取文件的个数。

<span style="font-size:14px;">    QFile filename(filelist.at(i));定义一个文件,</span><pre name="code" class="cpp"><span style="font-size:14px;">    filename.rename(temp.append(format));重命名当前文件</span>
<span style="font-size:14px;">    <span style="font-family: Arial, Helvetica, sans-serif;">ui->progressBar->setValue(i+1);更新进度条的值</span></span>


主要操作就是这样,採取此种方法命名默认情况下是将原文件剪切到应用程序所在文件,同一时候改变文件的名称。

完整资源下载地址:下载地址

Qt编写文件一键命名软件的更多相关文章

  1. 有什么很好的软件是用 Qt 编写的?

    作者:尘中远链接:http://www.zhihu.com/question/19630324/answer/19365369来源:知乎 一些出名的例子如下:(wiki搬运) 3DSlicer, a ...

  2. 有什么很好的软件是用 Qt 编写的?(尘中远)

    作者:尘中远链接:http://www.zhihu.com/question/19630324/answer/19365369来源:知乎 http://www.cnblogs.com/grandyan ...

  3. Qt编写安防视频监控系统(界面很漂亮)

    一.前言 视频监控系统在整个安防领域,已经做到了烂大街的程序,全国起码几百家公司做过类似的系统,当然这一方面的需求量也是非常旺盛的,各种定制化的需求越来越多,尤其是这几年借着人脸识别的东风,发展更加迅 ...

  4. 使用Qt编写模块化插件式应用程序

    动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形式灵活地组建起来.比起源码级别的模块化,二进制级别的模块划分使得各模块更加独立,各模块可以分别编译和链接,模块的升级不会 ...

  5. Qt编写自定义控件10-云台仪表盘

    前言 做过安防视频监控的同学都清楚,在视频监控系统软件上都可以看到一个云台控制区域,可以对球机进行下下左右等八个方位的运动控制,还可以进行复位,一般都是美工作图好,然后贴图的形式加入到软件中,好处是程 ...

  6. Qt编写的开源帖子集合(懒人专用)

    回顾自己学习Qt以来九年了,在这九年多时间里面,从本论坛学习不到不少的东西,今天特意整了一下自己开源过的资源的帖子,整理一起方便大家直接跳转下载,不统计不知道,一统计吓一跳,不知不觉开源了这么多代码, ...

  7. Qt编写控件属性设计器

    一.前言 自从研究Qt编写自定义控件以来,一发不可收拾,越多越多人有类似的需求找我定制控件,陆陆续续写了上百个控件,目前已超过150个,于是逐渐衍生了另外一个需求,提供一个控件属性设计器,类似QtDe ...

  8. Qt编写项目作品大全(自定义控件+输入法+大屏电子看板+视频监控+楼宇对讲+气体安全等)

    一.自定义控件大全 (一).控件介绍 超过160个精美控件,涵盖了各种仪表盘.进度条.进度球.指南针.曲线图.标尺.温度计.导航条.导航栏,flatui.高亮按钮.滑动选择器.农历等.远超qwt集成的 ...

  9. Qt编写数据可视化大屏界面电子看板系统

    一.前言 目前大屏大数据可视化UI这块非常火,趁热也用Qt来实现一个,Qt这个一站式超大型GUI超市,没有什么他做不了的,大屏电子看板当然也不在话下,有了QSS和QPainter这两个无敌的工具组合, ...

随机推荐

  1. linux杂记(?)命令别名——alias

    linux中的命令别名--alias linux中的命令别名--alias 1. 用命令alias可以查询系统中有哪些可用的命令别名 2.添加命令别名 回车查看, 别名建立成功 3.查询命令的地址ty ...

  2. Class类对象的三种实例化方法

    class X { } public class GetClassDemo01 {     public static void main(String[] args) {         X x = ...

  3. codevs 1455 路径 计算m^n%p

    题目链接 题目描述 Description 小明从A1到An+1,他知道从A1到A2,从A2到A3,......,从An到An+1都有m条路,且从A1到An+1都只有这些路.小明想知道,从A1地到An ...

  4. The method of using code coverage tool

    Please look at the following blog: http://blog.csdn.net/superqa/article/details/9060521 Use  ReportG ...

  5. ie7(z-index)

    父级元素加上position:relative;并设置z-index. 父级元素的z-index优先,子元素的z-index是相对于父级元素的index. <div style="po ...

  6. 多线程编程之二 ---MFC中的多线程开发

    下载源代码 五.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消 ...

  7. SpringMVC深入理解

    核心类与接口 - DispatcherServlet 前置控制器- HandlerMapping 请求映射(到Controller)- HandlerAdapter 请求映射(到Controller类 ...

  8. JAVA实例变量的初始化过程

    假设有这样一段代码: public class Cat { private String name; private int age; public String toString() { retur ...

  9. [置顶] fmt日期格式化

    jstl中的日期格式化 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> & ...

  10. Cocos2d-x:环境配置小节

    一.准备 须要下载下面内容. 1. vs2010 下载地址:http://download.microsoft.com/download/1/4/3/143B7583-6225-474F-88D5-5 ...