QT:实现图片选择器

一、效果图

二、用到的类

qApp :可以快速获取到项目目录位置。
QSettings :编写config文件,记录上次打开图片的位置,下次打开图片会从上次的位置查找图片。
QPixmap:用于图片的缩放,防止图片过小,显示区域不能完全覆盖。

三、代码

cpp 复制代码
void Widget::on_btnOpen_clicked()
{
    //找到配置文件路径
    QString config_path = qApp->applicationDirPath() + "/config/setting.ini";
    QSettings *pIniset = new QSettings(config_path,QSettings::IniFormat);

    //设置上次路径(没有就默认)
    QString last_path = pIniset->value("/LastPath/path").toString();
    if(last_path.isEmpty())
    {
        //图片标准路径
        last_path = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
    }

    QString fileName = QFileDialog::getOpenFileName(this,"打开图片",last_path,"图片(*.jpg *png)");
    if(fileName.isEmpty())
   {
       return;
   }

   //记录图片目录位置
   int end = fileName.lastIndexOf("/");
   QString _path = fileName.left(end);
   pIniset->setValue("/LastPath/path",_path);

   //改变图片大小格式
   ui->line_filepath->setText(fileName);
   QPixmap *pix = new QPixmap(fileName);
   pix->scaled(ui->lable_showpic->size(),Qt::KeepAspectRatio);
   ui->lable_showpic->setScaledContents(true);
   ui->lable_showpic->setPixmap(*pix);
   
   //释放资源
   delete pIniset;
   pIniset = nullptr;
   delete pix;
   pix = nullptr;
}
相关推荐
toooooop810 分钟前
php BC MATH扩展函数计算精度-第三个参数
开发语言·php
蓁蓁啊13 分钟前
C/C++编译链接全解析——gcc/g++与ld链接器使用误区
java·c语言·开发语言·c++·物联网
weixin_3077791320 分钟前
C#实现两个DocumentDB实例之间同步数据
开发语言·数据库·c#·云计算
foundbug99926 分钟前
基于C#的OPC DA客户端实现源码解析
开发语言·c#
yuezhilangniao33 分钟前
Next.js 项目运维手册-含-常用命令-常见场景
运维·开发语言·reactjs
czxyvX1 小时前
016-二叉搜索树(C++实现)
开发语言·数据结构·c++
1104.北光c°1 小时前
【从零开始学Redis | 第一篇】Redis常用数据结构与基础
java·开发语言·spring boot·redis·笔记·spring·nosql
我能坚持多久1 小时前
D22—C语言预处理详解:从宏定义到条件编译
c语言·开发语言
小猪咪piggy2 小时前
【Python】(3) 函数
开发语言·python
青岑CTF2 小时前
攻防世界-Php_rce-胎教版wp
开发语言·安全·web安全·网络安全·php