0.前言
欢迎来到 wxSmith 教程页面!wxSmith 与 Code::Blocks、wxWidgets 和 C++ 编译器相结合,为您提供一种所见即所得的方式来创建具有图形用户界面 (GUI) 的应用程序。该组合形成了一个用于快速应用程序开发 (RAD) 的工具,可在 Linux、Mac OS X 和 Windows 上运行。当您工作时,您会在屏幕上看到您正在设计的表单;他们看着你,就像他们看着你的程序的用户一样。
这些教程假设您是Code::Blocks 或 wxWidgets 的初学者,事实上,它们也是学习它们的好教程;假设您对 C++ 有基本的了解,您能够看懂教程中的C++实例代码。
使用wxSmith仅仅是在程序设计时构建GUI界面,同时帮你构建了基于wxWidgets 的应用程序框架,更多的代码编写还是需要您用其他的方便添加,比如手动添加或者AI生成后复制到您的应用程序中。
使用wxSmith有以下优点,但不限于这一些:
- wxSmith 对所有主要的 wxWidgets 组件(按钮、复选框、单选按钮、下拉列表等)都了解很多,您可以选择一个并“拖放”到表单上,得到所见即所得的程序界面。
- 当您在表单设计器或组件管理器中选择表单中的一个组件时,wxSmith 属性浏览器会显示组件的所有属性并允许您修改它们。
- 您还可以在属性浏览器中点击图标{ }显示组件可以生成的所有事件,并且只需快速单击鼠标,就会为您设置框架,以编写程序对事件的响应的代码。
- 每个wxWidgets 组件都有一个常用的事件被称为默认事件,在表单设计器中双击这个组件,就会为您设置框架,以编写程序对事件的响应的代码。
尽管严格来说,wxSmith 是 Code::Blocks 的插件,但wxSmith 对程序的编写者很重要。作为用户,在您看来,wxSmith 就是 Code:Blocks 的一部分。
我们的教程将从最基础的开始,一直到一些相当棘手但非常有用的技术。
在这篇文章中,您将看到以下内容:
- 编写本教程的理由
- 本教程其他文章的链接(目录)
- 结束语
1.编写本教程的理由
在Code::Blocks 的用户文档中有wxSmith教程,这些文档和其中的wxSmith教程都是英文版的。起初我只想翻译其中的wxSmith教程,后来发现这些英文版的教程中有很多不尽人意的地方:
- 教程编写时间比较早,示例中的一些代码已经过时了,是wxWidgets 或者wxSmith不再使用的;
- 教程中存在错误(可能是打字员的失误造成),需要修正了才可以看懂和调试这些代码;
- 教程中的有些描述语言不符合中国人的习惯,或者是作者的私人感言,对学习者似乎没有什么可以借鉴的;
- 有些读者不喜欢阅读英文,更喜欢使用自己的母语阅读。
基于这些原因,我决定在原版的基础上编写这一篇教程。为了表示对原版作者的尊重,每一篇文章中都添加了原版文章的连接。
原版中大多数的内容是很好的,所以我的一部分内容采用了原版内容的翻译,有些插图也直接使用了原版的插图。原版的示例是在波兰语版的 Ubuntu Linux 操作系统上实现的,有些界面元素与Windows界面存在差别,但这并不影响您学习文章的内容。
2.本教程其他文章的链接(目录)
Code::Blocks 的用户文档网址:User documentation - Code::Blocks
Code::Blocks 的wxSmith教程:WxSmith tutorials - Code::Blocks
原版的教程中分了10篇文章,有10个示例程序。在我的教程中同样使用10篇文章讲述与原版一样的内容,并使用原版中的示例。
教程中的是个示例分为两部分:一部分讲述使用wxSmith构建应用程序的GUI界面,并形成应用程序的框架,另一部分是在前一部分的基础上添加代码实现wxWidgets编程。
以下是本教程其他文章的链接(目录):
- 教程一:从Hello world开始讲述wxSmith使用基础
- 教程二:使用菜单和组件
- 教程三:构建更复杂的窗口
- 教程四:使用多个表单(多窗口程序)
- 教程五:使用wxPanel资源
- 教程六:访问表单中的组件
- 教程 七:使用自定义绘制和鼠标处理创建项目
- 教程八:在屏幕上绘图和保存绘图
- 教程九:键盘输入和显示结果
- 教程十:使用 wxGrid:使用 wxSmith 创建 wxGrid
3.结束语
使用wxSmith仅仅是在程序设计时构建GUI界面,同时帮你构建了基于wxWidgets 的应用程序框架,更多的代码编写还是需要您用其他的方便添加。
对于初学者还不熟悉wxWidgets 编程,则可以通过阅读wxSmith生成的代码来了解wxWidgets 编程,积累编程的经验。
对于有经验的程序员来说,wxSmith简化了程序维护的工作,让编程工作变得更轻松愉快。