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;
}
相关推荐
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1234 天前
matlab画图工具
开发语言·matlab
dustcell.4 天前
haproxy七层代理
java·开发语言·前端
norlan_jame4 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone4 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
QQ4022054964 天前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
遥遥江上月4 天前
Node.js + Stagehand + Python 部署
开发语言·python·node.js
m0_531237174 天前
C语言-数组练习进阶
c语言·开发语言·算法
Railshiqian4 天前
给android源码下的模拟器添加两个后排屏的修改
android·开发语言·javascript
雪人不是菜鸡4 天前
简单工厂模式
开发语言·算法·c#