0.前言
CodeBlocks是使用C++编写程序的一个很好的开发环境,最大的好处是它是开源的、免费的,而不仅仅是因为它具有跨平台的能力。还有一个很重要的原因是在CodeBlocks中可以使用wxWidget,wxWidget也是开源的、免费的。
尽管Qt和MFC也很优秀,Qt Creator和Visual Studio都是很优秀的开发环境,但是版权要求和商业化在一定程度上限制了他们的使用范围。而这一点上,CodeBlocks + wxWidget正是一种最好的选择。
- 在这篇文章里,我主要讲述以下几个方面的内容:
- 安装wxWidget前的准备工作
- 下载最新版的wxWidget
- 安装、编译wxWidget
- 在CodeBlocks中配置使用wxWidget的选项
- 修改CodeBlocks的文件使它支持wxWidget3.2.6
- 测试在CodeBlocks中使用wxWidget编写的第一个程序
- 结束语
1.安装wxWidget前的准备工作
1.1安装CodeBlocks
在安装wxWidget之前,你应该确定你已经安装了CodeBlocks并能够正常使用。
在网上搜索“CodeBlocks”可以找到很多介绍安装CodeBlocks的文章。我以前曾经写过一篇文章,介绍安装CodeBlocks的方法和步骤。文章的网址是:
体验Code::Blocks下的C++编程 - lexyao - 博客园
使用codeblocks-17.12mingw-setup.exe安装的CodeBlocks开发环境是32位的,搭配的编译器也是32位的。点击以下链接可以找到最新版的CodeBlocks下载地址,在我写这篇文章的时候可以下载的最新版本是CodeBlocks20.3,它的CodeBlocks开发环境也是32位的,但搭配的编译器是64位的。
Binary releases - Code::Blocks
至于需要32位的还是64位的编译器,一方面看你的需要,另一方面要看你的电脑是32位的还是64位。好在现在的新电脑基本都是64位的。
1.2安装GCC
安装了CodeBlocks之后,你还要为CodeBlocks安装、配置编译器。
如果你安装CodeBlocks的安装包中已经搭配了编译器,你直接使用就行了。
如果你安装CodeBlocks的安装包没有搭配编译器或者你想把搭配的编译器换成最新版本的,你就需要下载新的编译器安装包,安装、配置编译器。
打开下面的网址,你会看到我写的另一篇文章,里面介绍了为CodeBlocks安装、配置64位编译器的方法。这适用于没有安装编译器的人,也适用于想更换更高版本的编译器的人。
体验Code::Blocks下的Windows GUI编程(32 bit and 64 bit) - lexyao - 博客园
2.下载最新版的wxWidget
在浏览器中百度一下“wxWidget”,你会找到多个可以下载wxWidget的网址。这些网址下载的文件有与官网一致的,也有加入了我们不知道的内容的。为了保险起见,建议从官网下载,这样使用起来更放心。
下载wxWidget的官方网站的网址是:Downloads - wxWidgets
这个网站提供了wxWidget最新稳定版本的下载,也有过去发布的稳定版本的下载。如果没有特殊的需要,通常都是下载最新的稳定版本的wxWidget。我在血这篇文章的时候,最新的稳定版本是wxWidget3.2.6,发布日期是2024 年 9 月 9 日,API 稳定起始时间是2022 年 7 月 7 日。
官网发布的wxWidget有已经编译了的二进制文件包,也有没有编译的源代码文件包。二进制文件包下载后可以直接使用,但它不一定是你需要的。源代码文件包下载后需要你自己编译成二进制的,虽然麻烦一些,但好在你可以根据你的需要设置编译参数。
打开下载网页,里面有适合Windows和Linux、macOS 等的源代码文件包,而适合于Windows下的文件包有Windows ZIP和Windows 7z,建议下载Windows 7z文件包,两者的内容是一样的,而7z的文件包要比ZIP的文件包小的多,会节省下载时间和保存文件需要的磁盘空间。你不必担心文件包解压的问题,Windows操作系统下的“文件资源管理器”可以直接打开、解压这两种格式的压缩文件包。
通过下面下载网页的截图你会看到我标注的除了下载wxWidget3.2.6源代码文件包的链接之外,还有一个“在线文档”链接,建议收藏这个链接,里面有关于wxWidget3.2.6的所有文档,抽时间看一下,对你会有帮助。
3.安装、编译wxWidget
3.1 解压wxWidget3.2.6源代码文件包
前面已经下载了wxWidget3.2.6源代码文件包,文件名应该是wxWidget-3.2.6.7z。
将下载的源代码文件包解压到一个文件夹中。文件夹的名字你可以随便取一个合法的名字,但需要注意两点要求:文件夹名称中不能包含汉字和空格。
我的文件包解压到了以下文件夹中,后面的叙述将会用到这个文件夹的名称。你在操作的时候要将用到这个文件夹的地方替换成你解压后的文件夹。
D:\CodeBlocks\wxWidgets-3.2.6
记住这个安装路径,在后面的操作中还会用到。
注:如果在操作系统的环境变量中添加WXWIN=“D:\CodeBlocks\wxWidgets-3.2.6\”,你就可以直接使用%WXWIN%代替D:\CodeBlocks\wxWidgets-3.2.6了。
设置的操作方法是:
①新建一个文本文件,命名为setenv.bat
②用记事本打开setenv.bat文件,输入以下内容:
setx wxwin "D:\CodeBlocks\wxWidgets-3.2.6"
echo %WXWIN%
cd %WXWIN%
pause
注意:使用的是setx而不是set
③在文件资源管理器中用鼠标双击setenv.bat文件,你会看到“命令提示符”窗口出现以下画面,你设置的操作就完成了。
第一行是设置wxwin 的命令,后面的echo %WXWIN%和cd %WXWIN%是两个测试,pause是暂停的意思,让你能够看到测试的结果。
3.2 配置编译器路径
在执行编译操作前,你要确定你已经将编译器的路径设置到了操作系统的环境变量的path中。
如果你是单独安装的编译器,应该在安装的时候已经由安装程序将路径添加到了path中,不需要你再设置。如果是CodeBlocks安装包中包含的编译器,则需要你自己去添加。
3.2.1 添加编译器路径到环境变量path中
添加的方法有两种,你可以选择任何一种方式。
我的编译器的安装路径是C:\Program Files\CodeBlocks\MinGW\bin。你操作时要使用你的编译器安装路径替换这个路径。
第一种方式:亲自动手设置环境变量。操作步骤如下:
这里以Windows 11为例,你可以按着你的操作系统版本的操作步骤设置,具体可以通过百度一下“设置环境变量”找到操作方法。
①依次点击[设置->系统->系统信息->高级系统设置],打开[系统属性]窗口
②依次点击[高级->环境变量…],打开[环境变量]窗口
③依次点击[用户变量栏中的path行->编辑],打开[编辑环境变量]窗口
④点击[新建]按钮,输入编译器路径(可以粘贴,这样可以避免错误),然后点击[确定]按钮,关闭[编辑环境变量]窗口,回到[环境变量]窗口
⑤点击[环境变量]窗口的确定,完成操作。
第二种方式:
①新建一个文本文件,命名为setenv.bat
②用记事本打开setenv.bat文件,输入以下内容:
setx path "C:\Program Files\CodeBlocks\MinGW\bin;%path%"
注意:使用的是setx而不是set
③在文件资源管理器中用鼠标双击setenv.bat文件,你会看到“命令提示符”窗口一闪而灭,你设置path的操作就完成了。
你是不是觉得第二种操作要比第一种简单一些啊?我是喜欢用第二种方式的。
3.2.2 查看设置path的结果,确认操作完成了
采用第一种方式添加路径到path变量中,操作比较直观,再次打开环境变量窗口看到你添加的路径在环境变量的path中,就说明你的操作成功了。用这种方式也可以验证第二种方式的操作结果是不是完成了。
当然,你也可以用类似第二种方式的方法验证操作的结果。
新建一个文件viewpath.bat,用记事本将以下代码添加到viewpath.bat文件中。
path pause
鼠标双击viewpath.bat文件,你会看到“命令提示符窗口”打开,并显示了path变量的内容,你从里面找到你添加的编译器路径,就说明操作成功了。以下是我的“命令提示符窗口”中显示的内容:
3.2.3 测试编译器运行是否能正常运行
新建一个文件testgcc.bat,用记事本将以下代码添加到testgcc.bat文件中。
mingw32-make --v
pause
鼠标双击testgcc.bat文件,你会看到“命令提示符窗口”打开,并显示了path变量的内容,你从里面找到你添加的编译器路径,就说明操作成功了。以下是我的“命令提示符窗口”中显示的内容:
mingw32-make是编译器的程序名,完整的文件名是mingw32-make.exe,后面的--v是命令行参数,意思是查看编译器mingw32-make的版本。图中可以看到我的编译器版本是4.2.1,这是Code Blocks 20.3安装包中集成的编译器。
如果你在上一步设置路径失败,鼠标双击testgcc.bat文件看到的则是下面的画面:
只有编译器路径设置成功了,你才可以进行下一步操作。
3.3 编写编译命令文件的准备工作
在编译wxWidgets之前需要了解编译生成文件的形式和编译需要的命令行参数,这样你在执行编译操作的时候可以根据自己的需要进行选择。
以下网址是官方提供的安装wxWidgets的操作说明,你可以仔细阅读。这里面除了介绍Microsoft Visual C++和Visual Studio的部分,其他的都要仔细阅读。
wxWidgets: Installing wxWidgets for Windows
(注:还有一个关于加快编译速度的文章,在编写这篇文章的时候忘记它在什么地方了,将来如果再看到时会加在这里。那篇文章中提到了--jn参数,可以通过使用n个cpu编译wxWidgets,编译速度将会大大加快。)
以下是我摘录的我认为比较重要或者说有用的部分。原文是英文的,翻译可能存在不准确的,你可以对照英文原文阅读,避免我的翻译错误误导了你。
从 Windows 命令行使用 makefile必须从 DOS 命令行窗口执行。
首先进入%WXWIN%\build\msw目录,其中的%WXWIN%是指你解压的wsWidgets所在的目录。我的%WXWIN%是D:\CodeBlocks\wxWidgets-3.2.6。
在命令提示符窗口中%WXWIN%\build\msw就应该是D:\CodeBlocks\wxWidgets-3.2.6\build\msw。
基本的编译命令如下:
mingw32-make -f makefile.gcc
makefile.gcc是D:\CodeBlocks\wxWidgets-3.2.6\build\msw下的一个文件,在你明白其中的内容之前不用管它,将来你掌握的知识多了可能需要修改其中的设置,比如wxWidgets的那些文件包需要编译,哪一些不需要编译。
库配置:虽然没有必要这样做,但你可能想在构建 wxWidgets 之前更改文件%WXWIN%\include\wx\msw\setup.h中的一些选项。这个文件有大量的注释,请阅读它并启用或禁用你想要编译 wxWidgets 的功能。
Makefile 参数:前面提到的基本编译命令采用的是参数的默认值。如果你不想采用默认值,或者将参数显式地写在命令行中,你可以将参数添加在基本编译命令的后面。
可能对你有用的命令行参数如下:
-
BUILD=release
生成库的发布版本,生成的库名称中没有附加 'd'。默认的是BUILD=debug,生成库的调试版本,库名称中附加 'd'。请注意,默认情况下,即使是发布版本也可以包含调试信息,请参阅DEBUG_FLAG了解更多信息。
-
SHARED=1
构建共享库 (DLL)。默认情况下,不构建 DLL (SHARED=0)。如果设置SHARED=1,将来你发布你的应用程序时要把你的程序用到的DLL文件一起发布。
-
UNICODE=0
完全禁用 Unicode 支持(默认为 UNICODE=1)。应该没有必要这样做。
此选项会影响库的名称(默认 Unicode 构建中附加了 'u')以及存储库和 setup.h 的目录(同上)。
-
WXUNIV=1
构建 wxUniversal 而不是原生 wxMSW
-
MONOLITHIC=1
从版本 2.5.1 开始,wxWidgets 能够构建为多个较小的库,而不是像过去在 2.4 及更早版本中那样构建为单个大库。这称为 “multilib build”,是 makefile 的默认行为。您仍然可以通过将 MONOLITHIC 变量设置为 1 来构建单个库(“monolithic build”)。
-
USE_GUI=0
禁用构建库的 GUI 部分,仅构建控制台应用程序使用的 wxBase 组件。请注意,如果您离开,则会构建 wxBase 和 GUI 库。
USE_GUI=1
-
USE_$LIBRARY=0
不要构建相应的库(默认情况下会构建所有库)。可以以这种方式禁用的库有:AUI、HTML、MEDIA、GL(选项名称用于此)、PROPGRID、QA、RIBBON、RICHTEXT、STC、WEBVIEW、XRC。
USE_OPENGL
DEBUG_FLAG=0
DEBUG_FLAG=1
-
DEBUG_FLAG=2
指定 wxWidgets 中的调试支持级别。请注意,这与 BUILD 和 options 无关。默认情况下,始终设置为 1 表示启用调试支持。将其设置为 0 将完全禁用 wxWidgets 中的所有调试代码,而将其设置为 2 将会因为检查而耗时较多。
DEBUG_INFO=0
-
DEBUG_INFO=1
此选项会影响是否生成调试信息。如果省略或设置为 'default',则其值将确定 BUILD 选项的值。
-
VENDOR=<your company name>
如果您计划将 wxWidgets DLL 与应用程序一起分发,请将其设置为标识您的公司的短字符串。默认值为 'custom'。此字符串作为 DLL 名称的一部分包含在内。wxWidgets DLL 包含编译器名称、版本信息和供应商名称。例如,是使用具有默认设置的 Visual C++ 构建的 DLL 之一。如果您设置 VENDOR=mycorp,则名称将更改为
wxmsw311u_core_vc_custom.dll
wxmsw311u_core_vc_mycorp.dll.
-
CFG=<configuration name>
设置配置名称,以便您可以在同一树中共存具有不同 setup.h 设置的多个 wxWidgets 构建。此选项的值将附加到构建目录名称中。这对于在某些非默认配置中构建库非常有用,例如,您可以在 中更改为 1,然后使用 .或者,你可以使用例如 使用 MSVC 时。
wxUSE_STL
%WXWIN%\include\wx\msw\setup.h
CFG=-stl
RUNTIME_LIBS=static CFG=-mt
-
COMPILER_PREFIX=<string>
如果使用同一编译器的多个版本进行构建,则可以将它们的输出放入目录(如
vc6_lib、
vc8_lib、
vc_lib、
vc6
),而不是使用变量设置。这只是一个方便的变量,您可以使用 CFG 选项实现相同的效果(但目录名称不同)。 - CFLAGS
- CXXFLAGS
- CPPFLAGS
-
LDFLAGS
分别用于 C 编译器、C++ 编译器、C 预处理器(用于 C 和 C++ 编译)和链接器的其他标志。
3.4 执行编译操作
编译wxWidgets的操作是在“命令提示符”窗口中以命令行的形式操作的,如果你不习惯命令行操作或者不熟悉dos命令,操作起来就会觉得比较困难。
我推荐的方法还是编写一个文件,把编译操作需要执行的命令保存在文件中,用鼠标双击这个文件就行了,这样就不用考虑其他的命令了。
编译wxWidgets的操作步骤如下:
①在%WXWIN%\build\msw文件夹中新建一个文件wxBuild.bat,用记事本将以下代码添加到testgcc.bat文件中。
注1:如果wxBuild.bat不在%WXWIN%\build\msw文件夹中,需要将cd %WXWIN%\build\msw前面的::去掉,则cd命令得到执行可以设置cd %WXWIN%\build\msw为当前文件夹
注2:如果存在以前编译的wxWidgets库文件,需要将mingw32-make -f makefile.gcc clean前面的::去掉,则clean参数起作用删除以前编译的wxWidgets库文件
@echo off
title Compile wxWidgets
echo Start Compile ...
echo ---------------------------------------------------------------------
::cd %WXWIN%\build\msw
::echo Clean Env
::mingw32-make -f makefile.gcc clean
echo Compile Release Version
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1
echo Compile Debug Version
mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=1 UNICODE=1
echo ---------------------------------------------------------------------
echo Compile Succeed.
pause
②鼠标双击wxBuild.bat文件,你会看到“命令提示符窗口”打开,编译wxWidgets操作开始执行。这个工作过程需要很长的时间,可能需要一个小时甚至更长的时间,请耐心等待,或者去干点其他的事情。这个过程需不要你的参与,只要不停电、不关闭“命令提示符窗口”就行。
当你看到“命令提示符”窗口中出现了“请按任意键继续…”时,说明编译工作完成了。
完成编译后,你在文件资源管理器中打开D:\CodeBlocks\wxWidgets-3.2.6\lib\gcc_lib文件夹,你会看到编译后生成的wxWidgets库文件。文件夹中编译生成的库文件的文件名有一个共同点,就是以libwx开头,以.a为扩展名。其中有libwxmsw32ud.a、libwxmsw32u.a、libwxpng.a、libwxpngd.a,其中的msw表示适用于Windows操作系统的,32表示时wxWidgets的3.2.x版本,u表示使用了参数UNICODE=1,d表示使用了参数BUILD=debug,而没有d的表示使用了参数BUILD=release。
从文件名的命名规则可以看出,在文件名中有与参数有关的字母,这也说明不同参数设置编译生成的库文件是可以共存的,你可以根据需要采用多种参数组合生成库文件。
我在编译参数中使用了MONOLITHIC=1,编译形成的带有32的库文件只有下图中的四个,单个文件的字节数较多:
而使用MONOLITHIC=0编译的库文件中文件名含有32的要有更多,单个文件的字节数很小。
MONOLITHIC参数的这两种方式各有优缺点:
将库文件集中到单个文件中,在编写程序时把这个大的库文件链接到程序中,这样会减少找不到函数的定义的错误,这对于不熟悉库文件的初学者来说会减少很多麻烦,缺点就是编译生成的exe文件有点大。
将库文件分散到多个小文件中,用到哪一个就链接哪一个,这样会减小生成的exe文件,加快编译速度,缺点是不熟悉库文件的初学者面对编译时连续出现的错误手足无措。
文章写到这里,你应该直到你要怎么选择了吧?
4.在CodeBlocks中配置使用wxWidget的选项
要想在CodeBlocks中使用wxWidgets编写程序,就要告诉CodeBlocks你编译的wxWidgets库文件在哪里。CodeBlocks使用$(#wx)来获得wxWidgets库文件的位置,你只要设置全局变量wx就可以了。
设置wx的操作步骤如下:
①在CodeBlocks中点击主菜单[Settings->Global variables…]打开[Global Variable Editor]窗口
②在Current Variable栏中点击[New]按钮添加添加一个wx变量
③选中wx,在对应的Built-in fields:栏中的 base设置为保存wxWidgets文件夹%WXWIN%,如下图中的①所示。将来你的wxWidgets安装目录变化之后只需变更此变量的base路径即可。
5.修改CodeBlocks的文件使它支持wxWidget3.2.6
编译wcWidgets并设置了wx变量后就可以创建使用wcWidgets的应用程序了。操作步骤你可以参考的另一篇文章《体验Code::Blocks下的Windows GUI编程(32 bit and 64 bit)》中的“1.使用向导新建一个Windows GUI程序”。
区别只是在第二步选择项目类型时要选择“wcWidgets project”而不是“Win32 GUI project”,之后按向导提示完成即可。
不过,当向导进行到选择wcWidgets 版本的时候,你会发现可以选择的最高版本是wcWidgets 3.1.x,没有3.2.x可供选择。
选择了 wcWidgets 3.1.x会有什么结果呢?还记得前面我们看到的编译生成的库文件中有版本号32,而选择了wcWidgets 3.1.x后在编译你的项目的时候编译器会链接版本号为31的库文件,这样就会因为找不到相应版本的库文件而导致编译失败。
怎么解决这个问题呢?我们可以在编译设置中将向导添加的库文件的版本由31改为32,这样编译就成功了。
这样的修改在每个项目中都要做,很麻烦。有没有一劳永逸的办法呢?下面我们就来找一个一劳永逸的办法。
下面我要说的方法参考了以下两篇文章,也算是抄袭吧。如果你反对抄袭,可以在心中默默地骂我一声,然后打开下面的网址去看原文。
codeblocks20.3配置wxWidget3.2.2.1_codeblocks20.03 wxwidgets 3.2.4-CSDN博客
Windows10下CodeBlocks20.3配置wxWidget3.2.2.1_codeblocks wxwidgets-CSDN博客
添加wcWidgets 3.2.6版本支持的操作步骤如下:
第一步、找到CodeBlocks安装目录下的share\CodeBlocks\templates\wizard\wxwidgets\wizard.script文件,将它备份。
第二步、在记事本中打开wizard.script文件,对它进行以下修改:
①搜索“3.1”,参照3.1的设置添加3.2
②修改下述语句(大概755行),把WxVersion == 3改成WxVersion >= 3
if (WxVersion >= 3 && GetCompilerFactory().CompilerInheritsFrom(Wizard.GetCompilerID(), _T("gcc*")))
③保存文件。
经过这样的修改之后在新建“wcWidgets project”项目的时候向导中就可以选择wcWidgets 3.2.x,编译器可以直接使用32版本的wcWidgets 库文件了。
注:关于上面文章中说的修改以下两行把false改成true,如果你觉得有必要可以一并修改了。好像在我没有修改这两行的时候codeblocks20.3似乎默认添加了libwxjpegd.a、libwxtiffd.a。
LibWxJpeg <- true; // JPEG Lib
LibWxTiff <- true; //TIFF Lib
6.测试在CodeBlocks中使用wxWidget编写的第一个程序
尽管创建“wxWidgets project”项目与《体验Code::Blocks下的Windows GUI编程(32 bit and 64 bit)》中的“1.使用向导新建一个Windows GUI程序”描述的创建“Win32 GUI project”的操作相似,但向导阶段的选择还是有差别的,所以在这里我将详细介绍创建“wcWidgets project”项目的操作步骤。
第一步:打开新建项目向导
这一步跟创建控制台程序是相同的,后续就有差别了。有两种方法:
①主菜单:File->New->Projects
②点击Start Here页面中的Create New Project
第二步:在窗口中选择项目类型wcWidgets project
第三步、按向导的提示完成创建项目的过程
我重点介绍几个向导界面,没有介绍的向导页面你直接点击Next按钮就行了。
向导页面①:选择wxWidgets 3.2.x。有这个版本号可以选择,正式我们修改wizard.script文件的成果。
向导页面②:输入项目名称。将来你编译生成的exe应用程序将会使用这个名称。保存这个项目的文件夹也会默认使用这个名称,不过你可以在这个页面中修改保存项目文件的文件夹。
向导页面③:这个界面有两组选项,如何选择很重要!!!
第一个选择Preferred GUl Builder:选择你编写程序时构建GUI界面使用的方法。
- None:你将在项目中使用输入代码的方式构建GUI界面。这种方式比较灵活、方便,但只有运行时才能看到构建的GUI界面的效果。
- wxSmith:你将在项目中使用界面设计器wxSmith以所见即所得的方式构建GUI界面。这种方式比较直观,在设计时就看到GUI界面的效果。wxSmith一款基于wxWidgets的界面设计器,也是Code Blocks默认的界面设计器。
- wxFormBuilder:你将在项目中使用界面设计器wxFormBuilder以所见即所得的方式构建GUI界面。wxFormBuilder也是一款基于wxWidgets的界面设计器,需要你自己安装了才可以使用。
第二个选择Application Type:选择你的应用程序的类型,也就是说你要基于哪一种类型创建你的应用程序的主界面。
- Dialog Based:基于wxDialog创建你的应用程序的主界面
- Frame Based:基于wxFrame创建你的应用程序的主界面
向导页面④:wxWidgets库文件的位置。默认是wx。
如果你在电脑中同时存在多个类型的wxWidgets库文件,而且已经像设置wx那样在[Settings->Global variables…]设置了不同的全局变量,你可以根据需要将wx替换为指向你想要使用的库文件的全局变量。
向导页面⑤:这个界面有两组选项,如何选择很重要!!!
第一组选项wxWidgets Library Settings:
这是一组多选项,你可以选择其中的任意一个或多个,但你选择的必须是可用的。这一组选项中的每一个选项都对应着你编译wxWidgets库文件时使用的命令行参数。
Use wxWidgets DLL:编译参数SHARED=1时可用。如果没有SHARED=0时编译的库文件,这个选项就必须选中。
wxWidgets is built as a monolithic library:编译参数MONOLITHIC=1。如果没有MONOLITHIC=0时编译的库文件,这个选项就必须选中。
Enable unicode:编译参数UNICODE=1。如果没有UNICODE=0时编译的库文件,这个选项就必须选中。
第二组选项Miscellaneous Settings:这个杂项设置你可以不用管它。如果感兴趣,你可以抽时间了解并测试这些选项。
至此,你已经完成了你第一个基于wxWidgets的项目的创建。下图中显示了向导为你创建的项目中包含的文件的清单。
第四步、编译运行你的项目
点击上图中的编译运行按钮,就会执行编译过程。Code::Blocks右下角的窗口中有两个选项卡,分别是编译日志和编译信息。如果编译出错,会在这里出现红色的错误信息。如果是代码错误,编译结束后,点击错误信息,代码窗口会跳转到出错的代码行。
只要不出现错误,编译链接完成后就会运行程序,出现你的应用程序运行后的主界面窗口。
以下是基于wxFrame创建的应用程序的主界面:在向导的选择GUI构建方式时,第一个选择了wxSmith,第二个选择了None
以下是基于wxDialog创建的应用程序的主界面:在向导的选择GUI构建方式时,第一个选择了wxSmith,第二个选择了None
7.结束语
搭建是过程,使用是目的,为了达到目的需要学习、练习。在不断的练习中积累经验,熟练掌握,实现从模仿到创新的过程,最终写出自己的应用程序。
在创建自己的应用程序时,你可以选择适合于你的目标的方式用向导创建一个应用程序框架,然后在这个框架的基础上添加你自己需要的组件和代码。
当你觉得你经验已经非常丰富了之后,你可以先建立一个空项目,然后逐步添加你的界面和代码。
在使用wxWidgets编程之前,建议你系统地学习wxWdigets编程的知识。在这里向你推荐一个完整的教程,学习了这个教程的全部内容,你将可以自豪地说,我已经学会了使用wxWidgets编程了。不过,你要成为高手,还需要进一步的努力。
如果你已经掌握了C++编程的知识,可以打开下面的链接学习使用wxWidgets编程的知识:
如果你还没有掌握编程的知识,建议你先打开下面的链接学习C和C++的知识,然后再学习使用wxWidgets:
另外,关于学习C++编程是否需要先学习C语言编程的问题,没有人知道那种答案是正确的。大家的观点可谓是仁者见仁智者见智。
我个人觉得学习C++编程还是有必要了解C语言编程的,主要是基于以下理由:
- C语言的语法比C++更容易学会,有利于初学者入门。
- C++与C语言有相同的语法,掌握了C语言后可以更快地掌握C++。
- C++面向对象的编程方式对于初学者来说不容易理解,在C语言的基础上去理解C++的面向对象的编程方式会容易一些。
- 两者都学习了之后,了解了两者的区别,在学习一些示例程序的时候可以减少迷茫,避免误解。