当前位置: 首页 > news >正文

Qt5学习之路(vs2012下创建一个QT应用程序)2013-10-14

刚开始学习QT在网上找的资料基本都是使用QT Create进行开发的。VS下开发的学习资料感觉很少很难找的到。视频教程也基本没看到过貌似。

因为我们研发中心是使用MFC进行开发开发工具是VS2010 .使用QT开发的话基本我们不会再使用QT Create了。所以把自己的学习的一些资料整理一下贴出。


本文主要熟悉一下信号/槽如何在QT设计师中使用。本例是QT官方文档的一个例子。为了明白创建的全过程我们从创建QT项目开始写,新手看的大神们直接跳过。

自动生成了如下的一些文件如图:



第一个为QT设计师可以打开的文件;

第二个其实.UI对应的代码

下面一个生成的.h和.cpp文件还有一个main.cpp文件。


接下来我们打开.UI那个文件这个时候QT设计师就打开了如图:


通过QT设计师我们可以拖出来各种界面我们要拖一个添加通讯录的简单界面,下面介绍如何来拖这个界面。

首先拖一个ListWidget控件到主界面中。并给他绑定对象名“addressList”,就像MFC中给控件绑定一个变量名一样的。如何2个地方都可以改


然后拖一个垂直布局的控件,然后把2个pushbutto按钮拖到垂直布局控件中,拖完按钮后记得在下面添加一个填充的控件,相当一个弹簧一样的功能如图:


同样记得给按钮控件添加相应的对象变量。我添加的对象变量为“Add” “Delete” 。添加方法见上面的ListWidget控件的添加。修改控件上面的字符显示就不说了太简单了。


在添加2个label用于显示用户添加的信息。2个label的对象变量为 “nameLabel” “emailLabel"。修改控件上面的字符显示



至此主界面上的控件都已经划完了,接下来我们画用户信息输入框的界面。当我们点击添加时弹出添加对话框。首先添加一个QTGUI类右击项目的菜单添加


添加一个"AddDialog" 类 继承自 "QDialog";


打开我们添加的类生产的.ui那个文件进入QT设计师界面进行界面的编辑。怎么拖界面上面已经界面的差不多了。我只说一下我们添加2个label 、2个LineEdit 1个pushBuuto

就可以了,对象名称label就不用管了我们用不上,我们给LineEdit起2个名字,还有button如下:

WidgetObjectNameText

QLabel

"nameText"

"Name:"

QLabel

"emailText"

"Email:"

QLineEdit

"nameEdit"

""

QLineEdit

"emailEdit"

""

QPushButton

"okButton"

"OK"


我拖好的界面如下:



为”添加”按钮增加信号与槽的联系。此时可以在UI设计师的编辑\信号槽模式下进行,具体方法是拖动OK按钮释放后选择对应的信号与槽。点击这个按钮如图


鼠标点击添加按钮拖到空白地方,然后就会弹出操作界面。然后按照画红线的地方操作。


连接到我们所要接受的槽。在.h中我们定义了3个槽选择一个为我们点击主界面添加后点击信号对应的槽。第一个为点击主界面对应的槽



手动添加后确定后就实现了信号和槽之间的关联


这个时候QT设计师会变成这样子

意思就是用户点击添加按钮后会触发这个槽函数。

弹出的添加界面也添加相应的信号槽连接。与上面的操作一样的只不过对应的槽函数不同。对应的槽函数为 ”accept()“



都添加完后把后面的代码添加进去此程序的功能基本就完成了。



后面是对应的所有代码把相应的代码复制过去就可以了。代码都是从官方网站复制的。想看英文原版的请往下跳

http://doc.qt.nokia.com/vs-add-in-1.1.7/vs-addin-getting-started.html#designing-the-main-dialog



附上面的代码:addressbook源码

http://download.csdn.net/detail/qing666888/6394795

相关文章:

  • 说说我在家乡山东日照的面试经历以及对家乡互联网产业的一些认识吧
  • mysql实现随机查询
  • SICP 习题 (1.15) 解题总结
  • 编码规范之美.佛语释道
  • 小智慧63
  • 自己写Lucene分词器原理篇——CJKAnalyzer简单讲解
  • 如何建立基于CocoaPods的ReactiveCocoa工程
  • Webservice-XML与Java(五)
  • Java中SimpleDateFormat用法详解
  • Parcelable protocol requires a Parcelable.Creator object called。。。。。
  • MOTOROLA MC40 android系统扫描开发
  • cocos2d-x开启IOS多点触控
  • android友盟注意事项
  • Android编程之Intent源码详解
  • Android编程之LocalBroadcastManager源码详解
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Kibana配置logstash,报表一体化
  • Python学习之路13-记分
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Redis在Web项目中的应用与实践
  • uva 10370 Above Average
  • vue-loader 源码解析系列之 selector
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 技术:超级实用的电脑小技巧
  • 前嗅ForeSpider中数据浏览界面介绍
  • 浅谈Golang中select的用法
  • 三栏布局总结
  • 思否第一天
  • 新版博客前端前瞻
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • #{}和${}的区别是什么 -- java面试
  • (1)STL算法之遍历容器
  • (c语言)strcpy函数用法
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (转)母版页和相对路径
  • .bat批处理出现中文乱码的情况
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net 后台导出excel ,word
  • .NetCore部署微服务(二)
  • .NET框架设计—常被忽视的C#设计技巧
  • .NET连接MongoDB数据库实例教程
  • .net下的富文本编辑器FCKeditor的配置方法
  • 。Net下Windows服务程序开发疑惑
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • [AR]Vumark(下一代条形码)
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [C++] Boost智能指针——boost::scoped_ptr(使用及原理分析)
  • [CakePHP] 在Controller中使用Helper
  • [CISCN2021 Quals]upload(PNG-IDAT块嵌入马)