zoukankan      html  css  js  c++  java
  • Qt编写文件一键命名软件

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


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


    详细操作过程例如以下:

    第一步:使用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>

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


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

  • 相关阅读:
    ES6 class -- Class 的基本语法
    ES6 Promise --回调与Promise的对比、信任问题、错误处理、Promise的状态、以及Promise对象的常用方法
    移动端调试,手机缓存清不掉
    JAR 介绍-百度百科
    一致性哈希的基本概念
    Java线程池的配置
    java多线程面试题整理及答案(2018年)
    Java多线程面试题整理
    IntelliJ Idea 常用快捷键
    RESTful规范
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4264483.html
Copyright © 2011-2022 走看看