wxWidgets界面设计工具DialogBlocks

wxWidgets界面设计工具DialogBlocks

// * create by zyzx
// * 2009-3-12
// * 转载请注明来源: http://www.cppblog.com/zyzx

          工欲善其事,必先利其器。在 MFC 上开发,有 VS 系列强大的可视化工具,基于 wx 的开发工具虽然没有 VS 、 QT 的界面设计器强大,但在灵活度上 VS 的界面设计器是没法比的( QT 的没有用过,不做评论)。
         如果选择了 wx 库,了解几款基于其上的界面设计工具,会大大提高开发效率。

一、 wx 界面设计工具简介

         官方建议的工具集合: http://wiki.wxwidgets.org/Tools

         在刚开始的时候,我也尝试过几款工具( wxFormBuilder 、 wxDev-C++ 、 wxDesigner 等),但后来还是选择了 DialogBlocks-4.18 。对于这些工具的选择,各有特色。选择 DialogBlocks ,主要是因为其灵活度很大,当然缺点就是需要手工写代码来结合工具使用。但这点对于熟悉 wx 以后就不再是缺点,而是她最大的优点。

二、 DialogBlocks 简介

         DialogBlocks 官方主页: http://www.anthemion.co.uk/dialogblocks/

三、 DialogBlocks 入门向导

         安装完成后, DialogBlocks 有几个实例工程可以供大家参考。

    1 、新建 HelloWorld 工程

          关闭这些后点击 File->New Project 进入工程向导。

          点击 Next 进入下一个选择页面

         Mode 中有 3 个选项:
         Generate for C++ :表示工具并不生成 *.xrc ( xml 格式文件)配置文件,直接将窗口的一些信息(比如样式、大小、是否可见等等)直接写在源代码中,用相应的标记区别,由工具来维护此段代码区域。如果手工破坏了标记信息,工具将无法识别。
         Generate C++ for XRC :表示工具将窗口信息( … )写入相应的 *.xrc 配置文件中,代码块中只写加载这些配置的代码。这种方式十分适合,界面大小不一致,需灵活配置界面。代码块的事件关联每一个窗口控件唯一的 ID 。
         Generate XRC only :表示不生成源代码,只生成 *.xrc 配置文件。更灵活的将代码和界面设计的配置文件分开。代码块只需要通过窗口控件 ID 来控制其行为。

         后面一路 next ,默认选项即可。
         保存工程得到 HelloWorld/HelloWorld.pjd 文件,以后只要从此文件打开即可。

    2 、新建主 wxFrame 或 wxDialog

    3 、添加其他控件

             修改启动的主 Frame : Main window 选项修改为 HelloWorld Frame 的 ID 编号。

   3 、添加其他控件

            比如菜单、工具条、状态条、窗口里面的控件元素等等。

            注意窗口元素不是随意添加的,必须先搞清楚 wx 的窗口元素之间的关系。比如: wxFrame/wxDialog 直接包容 wxMenuBar 、 wxToolBar 、 wxStatusBar ,而 wxTextCtrl 、 wxComboBox 、 wxStaticText 等等最好建立在 wxBoxSizer 之内。
            wxBoxSizer 是 wx 的特色之一,它可以对其包含的控件进行自动调整。当然需要设定其自动调整属性。以上均使用默认的属性。


  
    四、 HelloWorld 的 VS 工程配置

            完成以上部分就说明最基本的界面框架已经做好了。我们还需要新建基于 Win32 的空 HelloWorld 工程,将 DialogBlocks 生成的 *.h *.cpp 文件添加 HelloWorld 工程中去。

            按照上一篇关于 Win32 部分的配置 来设置本工程。

            编译运行(别忘了把 wx 库的 *.dll 文件 … )结果会报出 wxWidgets Assert 忽略即可,原因是上面建立的 wxToolBar/Tool 没有找到对应的图标,把图标添加进去并设定 wx 资源加载路径即可。

   
    五、 绑定控件事件控制

             在 DialogBlock 中选中 wxButton : ID_BUTTON1 切换右边视图到 Event handlers ,点选 BUTTON_CLICK 事件,并保存。绑定事件有两种方式, DialogBlocks 采用的是静态绑定的方式,还一种是采用动态绑定事件。

           
           再找到 HelloWorld 类,并添加头文件 #include <wx/msgdlg.h>
           void HelloWorld::OnButton1Click( wxCommandEvent& event )
            {
                       wxMessageBox(wxT("Hello World ! /r/n 单击了 Button1Click!")); 
            }

           即可得到如下效果:


         工程文件下载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值