wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验
2 下载、安装wxWidgets
3 wxWidgets应用程序初体验
4 wxWidgets学习资料及利用方法指导
5 用wxSmith进行可视化设计
附:学习材料清单
3 wxWidgets应用程序初体验
本文中全部的体验,在Code::Blocks中进行。
为了在Code::Blocks中编译执行C++写的wxWidgets程序,须要再做些设置。
首先,须要在环境变量里增加一个wxWidgets根文件夹环境变量。设置方法相似于2.3中设置PATH变量的方法。在Win7中,右击桌面上的“计算机”图标,选菜单中的“属性”,在“系统属性”对话框中,完毕例如以下图从1到5的一系列操作。新增的变量命名为wxwin,值为X:\wxWidgets-3.0.0。
接下来的设置要在Code::Blocks中进行。
打开Code::Blocks,选择菜单Settings->Global Variables…,在设置default下新建立一个wx变量,在Build-in fields:下,base中填入“${wxwin}”(wxwin是刚才设置好的一个变量),include中填入“${wxwin}\include”,lib中填入“${wxwin}\lib”,这些都是开发中须要用到的“环境”中的一部分。
3.1 由“空项目”建立和执行GUI应用程序
以下将“白手起家”,由建立“空项目”開始,做一个简单的应用。程序改编自在线教程《wxWidgets tutorial》(http://zetcode.com/gui/wxwidgets/)的“First programs in wxWidgets”部分的第一个程序。这个教程,将作为建议学习方案中的主教程之中的一个。
3.1.1 建立项目
建立项目的过程是:
(1)通过菜单“File”->“New”->“Project…”,选择“Empty project”建一个空项目
(2)点击“go”button后,有一个欢迎界面,点击“next”,出现下图,填入项目名。我建立的项目名称为wxTest。
(3)点击“next”后,要求选择编译器及生成的目标文件类型,照下图选择
(4)点击“Finish”后,将生成一个空项目,如图
(5)点击菜单File->New->File...为项目新建一个源程序文件。在连续出现的几个对话框中,选择要增加的文件类型是“C/C++ source”(即源文件),再一个对话框中选择语言是“C++”。接着,在下图所看到的的对话框中,给出带完整路径的源文件名称(本例中用main.cpp),注意将Debug复选框选中。
(6)点击“Finish”后,将以下的源程序输入(或粘贴)到文件main.cpp中。
#include <wx/wx.h>
class Simple : public wxFrame
{
public:Simple(const wxString& title);
};Simple::Simple(const wxString& title): wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250, 150))
{Centre();
}class MyApp : public wxApp
{public:virtual bool OnInit();
};IMPLEMENT_APP(MyApp)bool MyApp::OnInit()
{Simple *simple = new Simple(wxT("Simple"));simple->Show(true);return true;
}
增加了源码之后的项目例如以下图所看到的:
能够临时不考虑程序中的语句是什么意思。能完毕执行程序的完整过程,是我们当前的任务。能执行程序了,后面再看“门道”。
以下将对这个项目进行编译,进而看到执行结果。
3.1.2 编译和执行项目
选择菜单“Build”中的“Build”选项(或者工具栏中的对应button)对项目进行编译、连接。程序第一行即出现错误。错误提示是:
fatal error: wx/wx.h: No such file or directory
也就是说,找不到要包括的头文件wx\wx.h。
这须要设置“搜索路径”解决。选菜单Project->Build options...,在选项卡Search directories中,设置Compiler。通过“Add”增加文件夹X:\wxWidgets-3.0.0\lib\gcc_dll\mswud和X:\wxWidgets-3.0.0\include,结果例如以下图所看到的:
接着Build,将不再有语法错误。
出现的一大堆错误提示,来自于连接环节,问题是找不到库文件。
选菜单Project->Build options...,在选项卡Linker settings中,须要增加要连接的“目标文件”。如图所看到的,通过Addbutton增加X:\wxWidgets-3.0.0\lib\gcc_dll文件夹中的全部.a文件(实际上,选择当中几个须要的就能够了。由于不知道到底须要哪几个,全选是最省事的办法):
然后再编译,0 errors, 0 warnings。成功!
可是执行程序时,会出现错误,例如以下图:
按提示来,在X:\wxWidgets-3.0.0\lib\gcc_dll中找到wxmsw30ud_gcc_custom.dll文件,将其复制到项目所在文件夹,再执行,就看到了期盼的窗体,如图所看到的。
出现上面的执行错误,原因是我在Linker settings增加的是lib\gcc_dll文件夹中的.a文件,这些属于“动态链接库”(这个术语自己百度去吧)。这样的方式的优点在于编译速度快,目标代码小,可是在编译好的程序执行时,必须要能找到须要的.dll文件。最简单的办法,就是拷贝.dll文件。
这个程序非常短,结果也仅仅是一个空空的窗体,可是作为掌握编译、执行窗体程序的案例,却也是足够的了。
以上的设置和文件复制,“有经验”之后能够提前完毕。上面的描写叙述方法,是考虑到希望读者对各个环节的问题,能多些感觉。
3.2 利用Code::Blocks的向导建立应用
还有一种在Code::Blocks中建立wxWidgets Project的方法,是通过“向导”开发应用。这样的方法用得不是非常多,能够作为了解。
本节以下的材料,非作者原创,整理自http://www.cnzui.com/archives/962。
利用向导开发的详细步骤是:
(1)通过菜单“File”->“New”->“Project…”,选择最后面的wxWidgets project。
(2)点击“Go”进入工程配置向导,首先会出来一个欢迎窗体,直接next后,选择安装好wxWidgets版本号。
注:Code::Blocks 13.12中,已经有了对wxWidgets 3.0.x的支持。须要选对版本号,否则能够继续生成应用程序,可是不能正确连接和执行。
(3)按“Next”,然后输入项目名“wxtest”,选择保存项目的文件夹。
(4)继续“Next”,输入作者和及一些版权说明信息。
(5)继续“Next”,选择GUI设计工具和程序类型,用wxSmith和Dialog based。
(6)按“Next”,接下来的就是wxWidgets环境的一些设置了,这里我们输入刚才设置的wxWidgets根文件夹,直接填入“$(#wx)”就能够了。
(7)按“Next”,这里我们看到默认就是选择了MinGW编译器了,以下的我们仅仅做Debug版本号,所以仅仅选上“Create “Debug” configuration”。
(9)继续“Next”,接下来要选择怎么使用wxWidgets库,这里依据你编译的wxWidgets库是什么样的来。
(10)按“Next”,由于选择了“Configure Advanced Options”,所以要对使用wxWidgets库做很多其它的设置,这里我们选上我们使用lib方式调用(要求编译wxWidgets时用SHARED=0參数,生成了静态库文件)。
(11)按“Next”进到最后一步,我们选择须要用到的库,不知道的话全部选上。
(12)点击“Finish”,工程随即建立成功。
这时能够查看项目中自己主动生成的文件,当中有.cpp的源文件,也有.h的头文件。再细读,和3.1中输入的程序长得差点儿相同。
事实上,向导的作用,就是通过一系列的选择,由向导程序自己主动生成应用程序。
如上步骤创建的应用程序的执行的结果是:
在编译和执行时,都有可能出现一些错误。这一般不是程序本身的问题,而是Code::Blocks的编译环境和执行的支持文件不全而造成的。
请參阅3.1.2小节,可能会帮助你排除问题,让程序正确执行。
================= 迂者 贺利坚 CSDN博客专栏================= |== IT学子成长指导专栏 专栏文章的分类文件夹(不定期更新) ==| |== C++ 课堂在线专栏 贺利坚课程教学链接(分课程年级) ==| |== 我写的书——《逆袭大学——传给IT学子的正能量》 ==| ===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 ===== |
wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验相关推荐
- 为刚開始学习的人答效率的问题
本文来自读者对我博文的评论. 遇到主动思考者,提出的主动思考过的问题,老贺是相当的兴奋. 完整的对话见<C语言及程序设计实践參考--n=a!+b!+c!>中二楼评论. [问题] 老师,我尝 ...
- 作为刚開始学习的人应该怎样来学习FPGA
FPGA作为一种高新的技术.已经逐渐普及到了各行各业.不管是消费类.通信类.电子行业都无处不在它的身影,从1985年第一颗FPGA诞生至 今,FPGA已经历了将近20多个年头,从当初的几百个门电路到如 ...
- 刚開始学习的人制作VMOS场效应管小功放
VMOS场效应管既有电子管的长处又有晶体管的长处,用它制作的功率放大器声音醇厚.甜美,动态范围大.频率响应好.因此近年来在音响设备中得到了广泛应用. 大功率的场效应管功率放大器.电.路比較复杂.制作和 ...
- CC++刚開始学习的人编程教程(9) Windows8.1安装VS2013并捆绑QT与编程助手
我们在Windows8.1安装VS2013并捆绑QT与编程助手须要下列文件. 2. 在虚拟机中开启Windows8.1 3.然后选择VS2013的安装镜像. 4.将镜像拷贝到虚拟机. 5.我们装载这个 ...
- VmWare 与 宿主主机通信 STEP BY STEP (适用于刚開始学习的人)
基本原理 在虚拟机中有三种通信方式,例如以下图所看到的 1. Bridged(桥接模式) 在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它能够訪问网内不论什么一台机器只是你 ...
- 小猪的Python学习之旅 —— 13.文字识别库pytesseract初体验
小猪的Python学习之旅 -- 13.文字识别库pytesseract初体验 标签:Python 引言 度过了短暂的春节假期,又要开始继续搬砖了,因为还处于节后 综合征,各种散漫,不想看任何代码相关 ...
- 从零開始学习制作H5应用——V5.0:懊悔机制,整理文件夹,压缩,模板化
经过前面四个版本号的迭代.我们已经制作了一个从视觉和听觉上都非常舒服的H5微场景应用,没有看过的请戳以下: V1.0--简单页面滑动切换 V2.0--多页切换.透明过渡及交互指示 V3.0--增加lo ...
- Kotlin学习历程一:Kotlin开发安卓的初体验
1.告别findViewById 不同于 JAVA 中,在 Kotlin 中 findViewById 本身就简化了很多,这得益于 Kotlin 的类型推断以及转型语法后置: val onlyTv = ...
- 【Unity3d学习】粒子光环的制作——粒子编程初体验
写在前面 Unity3d学习制作的实验资料包括本次实验都在老师的课程网站上:传送门 视频地址:传送门 实验项目文件在Github上面:Github传送门 实验参考博客:感谢指导! Unity3D学习笔 ...
最新文章
- 浅谈 nagios监控配置
- 银保监局招聘计算机岗位备考,2019年中国银保监会招聘计算机类如何备考?
- how is service url defined in configuration.js consumed
- java返回属性_java – 根据对象属性确定哪个枚举返回
- windows下揪出java程序占用cpu很高的线程
- 诗歌rials 之RJS的tips
- JS数据结构第五篇 --- 二叉树和二叉查找树
- 虚拟机克隆后修改网络部分
- 饶刚:做好债券研究 完善团队建设 为投资人打造持续回报的特色固收产品
- cocostudio
- Acer EC-471G BIOS升级注意事项
- NMAKE 详解(整理转载)
- **记录在win10电脑上使用Duet display的一次经历**
- Delta并联机构静力学分析
- 小米笔记本android,全球唯一 独家定制:「安卓中国版」小米笔记本电脑Air图赏...
- 基于深度学习的图像识别进展:百度的若干实践
- 联发科:心态决定未来走势
- 网站使用第三方Steam帐号登录[OpenID]
- 可在线听歌却不能下载,破解后可下载有限制的音乐作品
- python interpreter 中没有torch_python自动化办公之 Python 解析 PDF