Loading

QT代码图片打开

#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QSettings>
#include <QDebug>
#include <QStandardPaths>
#include <QTextCodec>

Widget::Widget(QWidget *parent)
    : QWidget(parent), ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->label_image->clear();
}

Widget::~Widget()
{
    delete ui;
}

void Widget::open1(){
    QString filePath = QFileDialog::getOpenFileName(this, "打开", "D:/", "图片(*.jpg *.png)");
    if (filePath.isEmpty()){
        return;
    }

    ui->lineEdit_path->setText(filePath);
    ui->label_image->setPixmap((QPixmap(filePath)));
}

void Widget::open2(){
    //读取config文件夹配置文件
    QString configPath = qApp->applicationDirPath() + "/config/Setting.ini";
    qDebug() << configPath;
    QSettings *pIniSet = new QSettings(configPath, QSettings::IniFormat);
    pIniSet->setIniCodec(QTextCodec::codecForName("UTF-8"));  //文件编码格式转换
    QString lastPath = pIniSet->value("/LastPath/path").toString();

    if(lastPath.isEmpty()){
        lastPath = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
    }

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

    ui->lineEdit_path->setText(fileNamePath);
    //图片自适应
    QPixmap *pix = new QPixmap(fileNamePath);
    pix->scaled(ui->label_image->size(), Qt::KeepAspectRatio);
    ui->label_image->setScaledContents(true);
    ui->label_image->setPixmap(*pix);

    //提取图片路径地址
    int endChar = fileNamePath.lastIndexOf("/");
    QString filePath = fileNamePath.left(endChar);
    pIniSet->setValue("/LastPath/path", filePath);
    qDebug() << filePath;
    delete pIniSet;
    pIniSet = nullptr;
}

void Widget::on_btnOpen_clicked()
{
    //open1();
    open2();
}

 

posted @ 2025-05-08 22:18  云辰  阅读(11)  评论(0)    收藏  举报