配置方法网上很多,就不详述了。基本的ui样式也在qt designer中绘制好了。

首先探究如何让按钮响应事件。在Qt Creator自带的教程中,有讲解说通过右键点击按钮来添加signal和slot。但是我并没有右键找到,而是在designer右侧的工具栏位置找到“信号/槽编辑器”这个单独的菜单。通过“+”号新建,然后在每个选项中选择需要的类和对象即可。其中signal就是发生的动作,slot是响应后执行的函数。具体机制网上搜索有很多,这里有一篇http://www.cnblogs.com/MuyouSome/p/3515941.html。

我希望通过点击菜单,而在视图中显示一张图片。仅仅根据名称,我在视图中添加了QGraphicsView。查找官网上的reference,说QGraphicsView一般和QGraphicsScene一起使用。在创建了QGraphicsScene类后,可以通过addItem()添加已有的QGraphicsItem类对象,或者通过addEllipse()等函数直接添加形状。去查了下QGraphicsItem,好像没有绘制一张图片的功能。于是网上搜了下,有人说可以用QPixmap这个类。去reference查,类描述中说,qt有四个处理image数据的类:QImage,QPixmap,QBitmap,QPicture,其中QPixmap被设计和优化成利于在屏幕上显示image的,而QImage是针对I/O操作的。通常如果需要对图片进行特定操作,就使用QImage载入图片,操作完成后转换成QPixmap来显示。但如果不需要进行操作,也可以直接加载成为QPixmap,QPixmap有通过图片路径初始化的函数。绘制的方法由网络提供:QPixmap pixmap;QPainter painter(pixmap);QGraphicsScene::render(painter,....);

在进行图片操作之前,还需要打开文件。qt提供了QFileDialog类进行文件选择(http://blog.csdn.net/lpdpzc/article/details/9010801)。似乎在对话框弹出时主进程是阻塞的?见http://www.fengfly.com/plus/view-171411-1.html中例程,亲测也是如此。

完成这步还是需要信号与槽。虽然qt designer中有信号/槽编辑器,但暂时没有成功使用,而是手动添加QObject::cnnect函数。在此对于qt在vs中自动生成的一些文件进行了更多了解。qt在vs自动生成的文件包括:ui_projectname.h,其中的类包括了使用designer设计的所有组件;双击projectname.ui可以打开designer,在designer中设计修改组件,会在ui_projectname.h中自动更改,但好像不是很灵敏,有时需要编译一下才改;main.cpp为程序入口;projectname.h和projectname.cpp是连接ui和vs程序的窗口类,其中实例了ui,我把QObject::connect函数用在这个类(projectname类,在projectname.h中)的初始化函数中。因为使用到的QFileDialog类需要传入父窗口,而这个类是“最父”的窗口,直接传入"this"很方便,所以把slot的函数也写在这个类里。而在main函数中会自动生成这个类的实例和显示窗口的show()函数。connect具体使用例子:QObject::connect (ui.actionOpenPicture,SIGNAL(triggered()),this,SLOT(openImage()));而slot的函数在声明的时候得使用关键字slot:public slot:void openImage();

获得图片路径后要显示图片,使用图片路径初始化QPixmap类,然后实例一个QGraphicsScene类,使用这个类初始化通过designer生成的QGraphicsView类。使用QGraphicsScene::addPixmap添加QPixmap实例,使用QGraphicsView::show显示出来,具体见http://zhidao.baidu.com/link?url=_83D7iW5qJw1-zHC4Jh1xIQKE_qCeThnd54FB5EkHcDPq8aUQuBoRP8B7MV65G0Y14ZX9GPWjAXhSX0h3XuQ9a。图片显示出来后,如果图片太大,会出现显示界面有滚动条的情况,这个问题之后再解决。

QT初探(QT+VS2010)相关推荐

  1. 关于 error: LNK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案【Qt】【 VS2010】

    关于 error: LNK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案[Qt][ VS2010] 参 ...

  2. 【Qt】Qt样式表总结(四):CSS盒子模型

    官网:http://doc.qt.io/qt-5/stylesheet-customizing.html#box-model [Qt]Qt样式表总结(一):选择器 [Qt]Qt样式表总结(二):冲突和 ...

  3. 【Qt】Qt样式表总结(三):QObject 属性

    [Qt]Qt样式表总结(一):选择器 [Qt]Qt样式表总结(二):冲突和命名空间 QObject 属性 可以使用 qproperty < 属性名称 > 语法,设置任何可以Q_PROPER ...

  4. 【Qt】Qt程序编译成功,执行时报错:程序异常结束,crashed

    [Qt]Qt程序编译成功,执行时报错:程序异常结束,crashed 错误打印信息 Starting E:*exe- 程序异常结束. E:*.exe crashed. 原因 使用到外部库,编译时,指定了 ...

  5. 【Qt】Qt Creator中文输入设置

    #[Qt]Qt Creator中文输入设置 一.ubuntu中文输入法的设置 1.在终端中输入: $ ibus-setup 弹出界面如图: 2.选择中文输入法 3.点击右上角设置–>选择系统设置 ...

  6. 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )

    文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...

  7. Qt 之 Qt/Qt Lite 自编译详解(VS/MinGW/...)

    2018/3/24 目前QT更新到了5.10.1.文章增加了对该版本的说明. 2020/9/5 目前QT更新到了5.15.0.文章更新了部分内容 写在前面   现在,网上关于 Qt 编译的文章数不胜数 ...

  8. Qt Creator Qt快速最佳实践

    Qt Creator Qt快速最佳实践 Qt快速最佳实践 命名约定 规划用户界面 经济地使用组件 Qt快速最佳实践 以下准则描述了使用Qt Creator创建可在预期平台上完美运行的UI和场景的最有效 ...

  9. Qt Creator Qt Quick用户界面表单ui-forms

    Qt Creator Qt Quick用户界面表单 Qt Quick用户界面表单 支持的方法 JavaScript函数 Qt QML方法 使用Qt快速UI表单 Qt Quick用户界面表单 您可以使用 ...

  10. QT实现Qt Quick和three.js渲染和实现QML3D控件

    QT实现Qt Quick和three.js渲染和实现QML3D控件 项目简介 项目技术 项目展示 主要源码片段解析 获取完整项目源码传送门 项目简介 结合Qt Quick和three.js渲染. 演示 ...

最新文章

  1. Ping命令为什么要加上“-t”参数
  2. 2017-2018-1 20155327 实验四 外设驱动程序设计
  3. 第八章 神经网络表示-机器学习老师板书-斯坦福吴恩达教授
  4. android 添加广告用proguard混淆后不显示问题解决方法
  5. C++,string类的指针,string类数组的指针 string *s
  6. 免费流量监控软件,最大可同时监控1000台电脑
  7. 经典排序算法 - 堆排序Heap sort
  8. Oracle导入程序Imp的使用详解
  9. 和阿里同年创办,为何当当却走向了“卖身”的结局?
  10. signature=fc89d4352b6699754c14ce282ec75426,Broken chiral symmetry on a null plane
  11. 【C/C++】BOOST 线程完全攻略 - 基础篇
  12. 用PHP ping 一个 IP
  13. UWP 手绘视频创作工具技术分享系列
  14. 电脑文件同步备份软件哪个好用?
  15. 简单操作去除亿图流程图制作软件(试用版)的水印
  16. 计算机丢失OX0000007B,win10系统应用程序无法正常启动0x000007b的解决办法
  17. [rust学习笔记]错误处理
  18. 使用UltraISO软碟通离线安装Centos8.3.2011过程中遇到的问题
  19. LCD液晶显示屏工作原理
  20. java试题库管理系统源代码_Java试题库管理源代码

热门文章

  1. Wannafly模拟赛2: A. Contest(Cdq分治)
  2. bzoj 3517: 翻硬币
  3. quartus仿真27:JK触发器构成的同步十进制可逆计数器(分析)
  4. matlab简单分析矩阵乘法——一阶行向量乘一阶列向量
  5. 贺利坚老师汇编课程57笔记:CMP和JXXX配合实现条件转移指令if
  6. 贺利坚老师汇编课程28笔记:在代码段使用数据加个标号start
  7. AD19调用器件封装时报错Access violation at address 0000000141A9EDD4 in module 'IntegratedLibrary.DLL'.
  8. java cookie 永久_java web中cookie的永久创建与撤销
  9. 板邓:wordpress标签调用函数大全
  10. squid不能启动问题及解决方法