【QT入门】实现一个简单的图片查看软件

声明:该专栏为本人学习Qt知识点时候的笔记汇总,希望能给初学的朋友们一点帮助(加油!)


往期回顾:

【QT入门】qmake和cmake的简单区别-CSDN博客

【QT入门】VS qt和QtCreator项目的相互转换-CSDN博客

【QT入门】Qt架构与三个窗口的区别-CSDN博客

 【QT入门】实现一个简单的图片查看软件

一、最终实现效果

点击打开按钮,弹出文件窗口,可以自行选择图片,确定选举后图片将展示在下面的LineEdit控件里,图片路径也将显示出来

二、需要用到的控件

1.1QLabel控件

设置图片用到了QPixmap,这个类的构造方法有一个就是直接给图片路径就可以 

1.2QLineEdit控件 

 1.3QPushButton控件

 几个类设置文本和获取文本所用的方法是一样的。

三、需要实现的功能

2.1打开目录选择图片并获取图片路径

这里用到了QFileDialog类和其方法getOpenFileName

QFileDialog::getOpenFileName()

static QString getOpenFileName(QWidget *parent = nullptr,
                                   const QString &caption = QString(),
                                   const QString &dir = QString(),
                                   const QString &filter = QString(),
                                   QString *selectedFilter = nullptr,
                                   Options options = Options()); 

我们看一下他的几个参数:

QWidget *parent = nullptr:指定文件对话框的父窗口,即文件对话框将显示在哪个窗口上。默认值为nullptr,表示没有父窗口。
const QString &caption = QString():指定文件对话框的标题,即对话框的显示名称。默认值为空字符串QString()。
const QString &dir = QString():指定文件对话框打开时显示的初始目录。默认值为空字符串QString()。
const QString &filter = QString():指定文件过滤器,用于限制用户选择的文件类型。默认值为空字符串QString(),表示不设置任何过滤器。
QString *selectedFilter = nullptr:用于存储用户选择的过滤器的指针。如果用户选择了过滤器,则该参数将指向用户选择的过滤器。默认值为nullptr,表示不存储选择的过滤器。
Options options = Options():用于指定文件对话框的选项,例如显示隐藏文件、只显示目录等。默认值为Options(),表示使用默认选项。

我们写入的参数如下:

getOpenFileName(this,"请选择图片","C:/","图片(*.png *.jpg);;"); 

this表示父窗口为当前窗口

"图片(*.png *.jpg);;" 是用来过滤文件类型的参数。这里的*.png表示只显示具有.png扩展名的文件,而*.jpg表示只显示具有.jpg扩展名的文件。"图片(*.png *.jpg);;"中的分号用于分隔不同类型的文件过滤器。

如果要允许用户选择任何类型的文件,可以将过滤器设置为"All Files (*)"

2.2显示图片的名字 

获取到文件路径以后,直接放进去展示就可以了,很简单的,不过放进去之前可以先进行一个简单的非空判断

if(filename.isEmpty())
   {
       return;
   } 
ui->lineEdit_image->setText(filename);

2.3显示图片 

最后就是用一个QPixmap展示图片,调用的同时初始化了函数

ui->label_photo->setPixmap(QPixmap(filename));

四 、最终实现代码

void Widget::on_btn_open_clicked()
{
   QString filename = QFileDialog::getOpenFileName(this,"请选择图片","C:/","图片(*.png *.jpg);;");

   if(filename.isEmpty())
   {
       return;
   }

   ui->lineEdit_image->setText(filename);
   ui->label_photo->setPixmap(QPixmap(filename));
}

 没有写注释,大家有不太明白可以再查查资料,会理解的更好。

都看到这里了,点个赞再走呗朋友~

  • 26
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值