【转】三、QT例子-打开一个图片并且显示
一、前言
? ? ? ? 本博客的主要目的在于對QT有進一步的了解,單純只使用QT。
? ? ? ? ?今天小例子主要是打開圖片,然后顯示出來,并且顯示圖片的路徑。
二、工程建立
? ? ? ?1、參考前面 博客一QT安裝過程里面的例子, 建立一個QT GUI Application
? ? ? ? 2、打開.ui文件,然后拖動一個label控件,雙擊刪除內(nèi)容,然后拖動一個pushButtion, 更改內(nèi)容為“打開圖片”
? ? ? ? ??
? ? ? ? ? 注意其名稱如箭頭指示,一個是label_2,一個是pushButton
? ? ? ? ? ? 3、拖動一個lineText到如下位置:
? ? ? ? ? ? ? ?
?
? ? ? ? ? ? 4、然后保存并且關(guān)閉ui文件
? ? ? ? ? ? 5、建立工程如圖(仍然是博客一的工程),配置屬性:release x64
? ? ? ? ? ??
?
? ? ? ? ? ?7、代碼如下:
? ? ? ? ? main.cpp:
#include "HelloWorld.h" #include <QtWidgets/QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);HelloWorld w;w.show();return a.exec(); }? ? ? ? ?helloWorld.h
#pragma once#include <QtWidgets/QMainWindow> #include "ui_HelloWorld.h" #include <Qlabel> #include <QLineEdit> #include <QImage> #include <QFileInfo> #include <QFileDialog> class HelloWorld : public QMainWindow {Q_OBJECTpublic:HelloWorld(QWidget *parent = Q_NULLPTR);private:Ui::HelloWorldClass ui; private slots:void OpenImg(); };? ? ? ? helloWorld.cpp
#include "HelloWorld.h"HelloWorld::HelloWorld(QWidget *parent): QMainWindow(parent) {ui.setupUi(this);connect(ui.pushButton, SIGNAL(clicked(bool)), this, SLOT(OpenImg())); } void HelloWorld::OpenImg() {QString OpenFile, OpenFilePath;QImage image;OpenFile = QFileDialog::getOpenFileName(this,"please choose an image file","","Image Files(*.jpg *.png *.bmp *.pgm *.pbm);;All(*.*)");if (OpenFile != ""){if (image.load(OpenFile)){//僅僅只是導(dǎo)入之后的圖片仍然是原來的大小,這個時候我們需要縮放ui.label_2->setPixmap(QPixmap::fromImage(image).scaled(ui.label_2->size()));}}//顯示所有的圖片路徑QFileInfo OpenFileInfo;OpenFileInfo = QFileInfo(OpenFile);OpenFilePath = OpenFileInfo.filePath();ui.lineEdit->setText(OpenFilePath); }? 8、編譯運行
點擊打開圖片,然后就可以顯示如下,并且可以顯示圖片的路徑
? ? ? ? ? ?
?
?三、遇到問題
? ? ? ? ? 當代碼第一次寫入的時候,這個時候控件的名字下面會出現(xiàn)波浪線,如下。? ? ? ??
? ? ?
?
? ? ? ? ?放上去的時候會顯示沒有ui沒有成員label_2.
? ? ? ? ?這種情況就是ui界面已經(jīng)定義了控件,但是在cpp里面卻沒有辦法調(diào)用。
? ?處理辦法如下:
? ? 1、點擊ui文件,然后右鍵選擇編譯
? ? ? ? ??
?
? ? ? ? ??
?
? ? 2、然后選擇HelloWorld項目,右鍵選擇重新掃描解決方案
? ? ? ? ?
?
? ? ? ? 如果不行多試幾次。
四、參考博客
? ? ? ? 問題:控件在cpp里面無法調(diào)用
? ? ? ? ?https://blog.csdn.net/qq_38378235/article/details/82288874
? ? ? ? 打開顯示圖片:
? ? ? ? ?https://blog.csdn.net/weixin_42704090/article/details/90400427
總結(jié)
以上是生活随笔為你收集整理的【转】三、QT例子-打开一个图片并且显示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opengles 3.0游戏开发_开发者
- 下一篇: 什么是信用卡违约金怎么算法