从0到1,手把手带你开发截图工具ScreenCap------002实现设置默认文件保存位置

ScreenCap---Version:002

上一篇

从0到1,手把手带你开发截图工具ScreenCap------001实现基本截图功能

说明

  • 在ScreenCap实现截图功能后增加设置图片默认保存位置的功能

  • 实现选择文件夹作为截图的默认保存位置

警告

  • 注:博主所有资源永久免费,若有帮助,请点赞转发是对我莫大的帮助

  • 注:博主本人学习过程的分享,引用他人的文章皆会标注原作者

  • 注:本人文章非盈利性质,若有侵权请联系我删除

  • 注:获取资源或者咨询问题请联系Q:2950319782

  • 注:博主本人很菜,文章基本是二次创作,大佬请忽略我的随笔

  • 注:我会一步步分享实现的细节,若仍有问题联系我

GitHub

  • 仓库master下的ScreenCap项目

  • 若您无法正常访问,每次项目的资源会随文章一同发布,下载压缩包即可,永久免费

  • 压缩包可能较GitHub更新不及时,请谅解

开发环境

  • win10系统

  • 编译器qtcreator4.11.1

  • QT版本:5.14.2

  • C++11

问题解决

需求

  • 在程序主窗体提供默认位置的按钮

  • 实现选择文件夹功能

  • 把选择的文件夹作为截图的默认保存位置

结构

思路

  • 前几个版本,我们将该功能设计的简单一点,只实现单次运行程序的默认位置被修改即可,以后再实现注册表之类的功能

  • 为了实现默认位置功能,在screencapwidget主窗口中,添加默认位置的按钮open_btn

  • 点击按钮,打开文件对话框,选择文件夹作为默认位置

  • 获取到默认文件夹的路径后,这里也不要保存下来了,直接传给screenwidget类即可

  • 不同类之间的通信可以使用信号和槽,也可以使用静态方法的方式传入,这里使用后者,方便使默认地址不变

  • 维持一个静态变量InitFileName,在类外修改这个值,除非再设置,否则不变

  • 当然,这里一开始是空值,为了安全起见,将这个默认值设置为当前程序运行的位置为好

  • 更新为值后,只需要在需要保存文件路径的时候,使用该值就实现了设置默认位置的功能

关键代码

  • screenwidgetcap窗口中的默认位置选择文件对话框的函数

    void ScreenCapWidget::on_open_btn_clicked()
    {
    ​
        //设置默认位置
        QString defaultPath = QApplication::applicationDirPath();
        QSettings settings("MyApp","MySettings");
        settings.setValue("DefaultPath",defaultPath);
        QString FileName = QFileDialog::getExistingDirectory(this,
                                                             "选择文件夹",
                                                             settings.value("DefaultPath").toString());
    ​
        ScreenWidget::setInitFileName(FileName);
    }

  • screencapwidget传递默认文件路径给screenwidget

    ScreenWidget::setInitFileName(FileName);

  • screenwidget设置默认文件地址的函数实现

    //定义设置初始位置
    void ScreenWidget::setInitFileName(QString filename)
    {
        initFileName = filename;
    #if LOG
        qDebug() << initFileName;
    #endif
    }

  • 将InitFileName的初始值设置为程序运行的位置

    //没有设置要给initFileName一个初始值
        if(initFileName.isNull())
        {
            initFileName = qApp->applicationDirPath();
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KanHai8080

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值