【转】三、QT例子-打开一个图片并且显示

一、前言

        本博客的主要目的在于对QT有进一步的了解,单纯只使用QT。

         今天小例子主要是打开图片,然后显示出来,并且显示图片的路径。

二、工程建立

       1、参考前面 博客一QT安装过程里面的例子, 建立一个QT GUI Application

        2、打开.ui文件,然后拖动一个label控件,双击删除内容,然后拖动一个pushButtion, 更改内容为“打开图片”

          

          注意其名称如箭头指示,一个是label_2,一个是pushButton

            3、拖动一个lineText到如下位置:

               

 

            4、然后保存并且关闭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)){//仅仅只是导入之后的图片仍然是原来的大小,这个时候我们需要缩放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、编译运行

  点击打开图片,然后就可以显示如下,并且可以显示图片的路径

           

 

 三、遇到问题

          当代码第一次写入的时候,这个时候控件的名字下面会出现波浪线,如下。        

     

 

         放上去的时候会显示没有ui没有成员label_2.

         这种情况就是ui界面已经定义了控件,但是在cpp里面却没有办法调用。

   处理办法如下:

    1、点击ui文件,然后右键选择编译

          

 

          

 

    2、然后选择HelloWorld项目,右键选择重新扫描解决方案

         

 

        如果不行多试几次。

四、参考博客

        问题:控件在cpp里面无法调用

         https://blog.csdn.net/qq_38378235/article/details/82288874

        打开显示图片:

         https://blog.csdn.net/weixin_42704090/article/details/90400427

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习linux/unix编程方法的建议[转]

首先先学学编辑器&#xff0c;vim, emacs什么的都行。然后学make file文件&#xff0c;只要知道一点就行&#xff0c;这样就可以准备编程序了。 然后看看《C程序设计语言》K&R&#xff0c;这样呢&#xff0c;基本上就可以进行一般的编程了&#xff0c;顺便找本数据结构的书…

PPC(Pocket PC)中显示二进制数组(byte[])类型的图片

//给数组赋值&#xff0c;这里用的是通过WebService返回的二进制数组 byte[] img MyService.GetImg(textBox1.Text); MemoryStream ms new MemoryStream(img); Bitmap bt new Bitmap(ms); pictureBox1.Image Image.FromHbitmap(bt.GetHbitmap()); 转载于:https://www.cnblo…

【转】四、关于如何使用软件库的一个技巧-避免重复配置属性表

一、前言 我们需要使用各种函数库&#xff0c;比如Opencv,Itk, vtk,当不同的函数库使用的时候&#xff0c;在VS配置属性是一个很麻烦的问题&#xff0c;并且设计到不同函数库的交叉使用&#xff0c;所以这里提供一个小技巧。 那就是我们把每一个函数库的配置为属性表的形式&…

Linux编程练习 --多线程1--线程创建

POSIX线程—轻量级进程&#xff0c;线程调度是由内核调度程序完成的&#xff0c;线程所消耗的系统资源比较少&#xff0c;相互通讯也比较容易。 多线程的优点&#xff1a; 1.资源消耗量少。我们知道&#xff0c;在Linux系统下&#xff0c;启动一个新的进程必须分配给它独立的…

java configuration_关于JAVA 中的Configuration类

properties文件是Java平台默认的配置文件格式&#xff0c;其优点是格式清晰&#xff0c;简单易懂&#xff0c;使用commons-configuration读取properties文件也比较简单&#xff0c;代码如下&#xff1a;基本用法&#xff1a;1.加载jar包&#xff0c;我使用maven自动加载&#x…

Ajax Extensions核心控件介绍

摘自:http://www.cnblogs.com/remember515/archive/2007/06/28/799030.html Ajax的核心组件包括ScriptManager、ScriptManagerProxy、UpdatePanel、Timer、UpdateProgress&#xff0c;其相关属性如下&#xff1a;updatePanel控件UpdatePanel主要属性 UpdateMode 内容模板的更…

【转】五、VTK读取图片,然后QT显示

一、前言 今天实现的主要功能是通过vtk读取jpg图片(只能够读取.jpg文件)&#xff0c;然后通过QT显示出来,整个程序的框架是QT GUIApplication 版本&#xff1a; VS2019VTK8.2.0QT5.13.1版本配置 VS 为release x64&#xff08;这个是工程建立的时候设置的解决方案属性&#xff…

Linux编程练习 --多线程2--属性的设置

在上一篇的练习里&#xff0c;我们用pthread_create函数创建了一个线程&#xff0c;在这个线程中&#xff0c;我们使用了默认参数&#xff0c;即将该函数的第二个参数设为NULL。的确&#xff0c;对大多数程序来说&#xff0c;使用默认属性就够了&#xff0c;但我们还是有必要来…

使用Installshield制作asp,asp.net应用的安装程序

在使用asp&#xff0c;asp.net编写Web应用时&#xff0c;最大的烦恼莫过于程序的分发的部署&#xff0c;由于面向的最终用户&#xff0c;所以程序的安装的过程必须要简单&#xff0c;方便和快捷。 下面提供了Installshield的脚本&#xff0c;改脚本功能包括&#xff1a; 1&…

用java查询excel表格_如何把java查询出的内容导入到excel表格

展开全部java查询出的内容导入到excel表格/**导出数据为XLS格式* param fos* param bo*/public void writeExcelBo(FileOutputStream fos, java.util.Vector ve){jxl.write.WritableWorkbook wwb;try{wwb Workbook.createWorkbook(fos);jxl.write.WritableSheet ws wwb.createS…

【转】C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁

转自&#xff1a;https://www.cnblogs.com/marvin/p/PutDllToSpecificFolder.html?utm_sourcetuicool&utm_mediumreferral 系列文章 C#开发奇技淫巧一&#xff1a;调试windows系统服务C#开发奇技淫巧二&#xff1a;根据dll文件加载C或者Delphi插件C#开发奇技淫巧三&#…

【转】C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件

这两天忙着把框架改为支持加载C和Delphi的插件&#xff0c;来不及更新blog了。 原来的写的框架只支持c#插件&#xff0c;这个好做&#xff0c;直接用c#的反射功能便可。但是公司不是所有人都搞C#&#xff0c;也不是所有的程序C#都能很好的完成&#xff0c;又或者其他公司…

Linux编程练习 --多线程3--mutex

互斥指互相排斥的锁&#xff0c;是一种信号量&#xff0c;常用来防止两个进程或线程在同一时刻访问相同的共享资源 1.数据类型&#xff1a; 在Linux下, 线程的互斥量数据类型是pthread_mutex_t&#xff0c;我们定义一个互斥数据可以这样&#xff1a; pthread_mutex_t mutex; 2.…

java ppt转html_word,ppt,excel转pdf,pdf转html工具类搭建

我看到很多需求要求word,excel,ppt&#xff0c;pptx转pdf等工具类。还有就是pdf转图片转html这里介绍一个这个工具类。引入pom.xmlcom.asposeaspose-pdf11.0.0com.asposewords15.9.0com.asposeaspose-slides15.9.0工具类代码&#xff1a;package com.lvic.prsp.common.util;imp…

【转】一篇易懂的CAN通讯协议指南1

转自&#xff1a;https://zhuanlan.zhihu.com/p/162708070 本文力求以图文并茂来接好CAN通讯协议的基础知识&#xff0c;希望能给有兴趣的朋友带来一些收获。 为了便于大家理解与接受&#xff0c;请先看一幅图&#xff1a; 图1 电话会议 简单地讲CAN总线就如上图1中两根粗黄线…

长字串与短字串

procedure TForm1.Button1Click(Sender: TObject); vars1: ShortString; //为兼容老版本而存在s2: string; //长字串&#xff0c;相当于动态字符数组s3: string[10]; //短字串&#xff0c;相当于静态字符数组&#xff0c;代替 ShortString beginShowMessage(IntToStr(…

Linux编程练习 --多线程4--条件变量

上一篇练习了互斥锁的用法和原理&#xff0c;这次学习和互斥锁一起应用的cond--条件变量 1.互斥锁的存在问题&#xff1a; 互斥锁一个明显的缺点是它只有两种状态&#xff1a;锁定和非锁定。设想一种简单情景&#xff1a;多个线程访问同一个共享资源时&#xff0c;并不知道何时…

在PHP中实现中文汉字验证码

PHP代码<?php /********************************* * Code by Gently * 24/07/07 *严正声明&#xff1a;验证码为程序随机生成&#xff0c;“某种巧合”的词语组合属于正常现象&#xff0c; *某些别有用心的人不要借题发挥&#xff01; **************…

java哈夫曼编码译码_哈夫曼编码与译码 java

展开全部package qwp;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.List;import java.util.Queue;import java.util.Scanner;public class HuffmanCoding {public static String writeStr…

【转】预编译头文件

http://www.cnblogs.com/nzbbody/p/3437868.html 1、解决什么问题&#xff1f; C 编译器是单独、分别对每个cpp文件进行预编译&#xff08;也就是对#include&#xff0c;#define 等进行文本替换&#xff09;&#xff0c;生成编译单元。编译单元是一个自包含文件&#xff0c;C编…