结合QLable和QScrollArea显示一个图片。

QLable典型用于用户展示文本,但是也能展示图片。QScrollArea提供了一个滚动视图,如果子控件超过了框架限制,QScrollArea自动提供滚动工具。


ImageViewer类定义:

继承于QMainWindow,重写了constructor,创建了几个私有槽实现菜单入口,创建了四个私有函数。

构造ImageViewer类时使用了createActions()、createMenus();当新的图片被加载后或者“适应窗口”选项被触发后,updateActions函数更新菜单入口。Zoom槽使用scaleImage()函数实现放大缩小,scaleImage使用adjustScrollBar保存指针。


ImageViewer类实现:

  • ImageViewer::ImageViewer():构造函数实现。
  • void ImageViewer::open():open() slot为用户显示了一个文件窗口,最简单的方式使用QFileDialog,用QFileDialog::getOpenFileName返回用户选择的文件名,如果用户选择取消,那么QFileDialog得到的是一个空串,我们使用QMessageBox提醒用户。
  • void ImageViewer::print():print() slot为用户提供了图片加载到应用的功能。如果应用在debug模式中built,那么Q_ASSERT宏将会进行扩展检查。在release模式中,这个宏就会自动忽略,宏的设置在应用的.pro文件中。加载的方式:在.pro文件中添加qmake "CONFIG += debug" foo.pro或者qmake "CONFIG += release" foo.pro。
  • void ImageViewer::zoomIn();void ImageViewer::zoomOut();void ImageViewer::normalSize();
  • void ImageViewer::fitToWindow():fitToWindow() slot当用户触发了“适应窗口大小”选项时,该函数被调用。
  • void ImageViewer::about():about slot用于创建一个message box描述这个例子程序展示的是什么。
  • void ImageViewer::createActions():

【QT相关】Image Viewer Example的更多相关文章

  1. QT 相关资源(书籍、论坛、博客等。。。)整理

     QT 相关资源(书籍.论坛.博客等...)整理... 中文名:<提问的智慧> 英文名:How To Ask Questions The Smart Way 中文链接1:http://ww ...

  2. qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径(最简单的方法是保持一样的安装路径,最方便的办法是设置qt.conf文件)

    在网上直接下载别人编译好的Qt库,为自己使用省了不少事.但往往也会遇到些问题,其中Qt version is not properly installed,please run make instal ...

  3. Qt相关问题

    1.  Qt编译中的error: cannot find -lGL和 error: collect2: error: ld returned 1 exit status 一般见于新安装的系统,马上就直 ...

  4. QT 相关

    Qt是一个GUI框架,在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程.对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题. 解决方法一:在处理耗时操作中 ...

  5. 【QT相关】对话框相关

    为行编辑器限制规则: QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}"); lineEdit->setValidator(new QRegEx ...

  6. 【QT相关】Qt Widgets Module

    Qt Widgets Module:提供了一些列UI元素. 使用: //头文件包含 #include <QtWidgets> //链接模式,在.pro文件中添加行: QT += widge ...

  7. 【QT相关】类头文件解读、QT编辑模式、读取text文本

    Wizard产生的头文件类包含了必须的#include文件.构造函数.析构函数和UI对象: #include <QMainWindow> namespace Ui {class Notep ...

  8. 【QT相关】QT+opencv环境配置

    在qt msvc2010版软件中使用opencv2.4.9进行库函数配置.仅适用于windows下. INCLUDEPATH += $$PWD/../../../opencv/build/includ ...

  9. QT 相关书籍

    qt qucik 核心编程 个人觉得此书写得非常之好....这位作者的另外一本虽然没看过,估计也不错 https://bbs.csdn.net/topics/390942701?list=lz qt5 ...

随机推荐

  1. Hibernate学习之缓存机制

    转自:http://www.cnblogs.com/xiaoluo501395377/p/3377604.html 一.N+1问题 首先我们来探讨一下N+1的问题,我们先通过一个例子来看一下,什么是N ...

  2. PHP中类的继承关系

    在PHP中,我时常会写一个类,类写了一个共用方法,然后让子类去继承就能得到相应的功能.假设大致有这么一个父类: 1 <?php 2 class Father{ 3 4 public functi ...

  3. PHP学习(变量)

    PHP学习(变量) 1. PHP属于松散类型,创建变量时不用指定类型. 2.变量命名规范: 1)第一个字符必须是$ 2)$后的第一个字符必须是 字母 或 下划线 3)其他字符可以是 字母, 数字, 下 ...

  4. 07-C语言流程控制if、switch

    目录: 一.流程控制 条件分支 if else 二.流程控制 开关分支 switch 回到顶部 一.流程控制 条件分支 1.语法格式:if(表达式1){ //表达式1为真(非0时),执行的语句部分. ...

  5. Push segues can only be used when the.....

    刚刚遇到的两个错误,. 1, Terminating app due to uncaught exception'NSGenericException', reason: 'Push segues c ...

  6. 【转】context和getApplicationContext()介绍

    在android中常常会遇到与context有关的内容,大多都是作为参数在传递,但是它的作用究竟是什么呢 先说它的用法,举个例子 在语句 AlertDialog.Builder builder = n ...

  7. 未能加载文件或程序集“xxxx”或它的某一个依赖项

    一般是解决方案中相互依赖的项目生成的目标平台不一样所致,更改为相同目标即可!

  8. Protel99se教程四:将SCH转为PCB文件

    本节课,我们介绍,如何快速的将绘制好的SCH文件转为PCB文件,首先,我们打开刚开始时我们绘制的SCH原理图,我们可以使用protel99se菜单栏的view-Fit All Objects命令,以查 ...

  9. DropDownList控件学习

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  10. HDU 1157 Who's in the Middle

    #include <cstdio> #include <algorithm> using namespace std; int main() { int n; while(sc ...