wxWidgets使用

wxWidgets

Code::Blocks环境

Code::Blocks下载:

Code::Blocks使用:

codeblocks-16.01mingw-setup.exe

它的gcc版本为4.9.2,也可在设置中对其进行更改

## wxMSW-3.1.0_gcc492下载: ##

  • wxMSW-3.1.0\_gcc492TDM\_Dev.7z
  • wxMSW-3.1.0\_gcc492TDM\_ReleaseDLL.7z
  • wxWidgets-3.1.0-headers.7z

Code::Blocks配置:

解压wxMSW-3.1.0_gcc492TDM_Dev.7z与wxWidgets-3.1.0-headers.7z到同一目录:X:\wxMSW-3.1.0_gcc492TDM

在环境变量里添加一个wxWidgets根目录环境变量,新增的用户变量命名为wxwin,值为X:\wxMSW-3.1.0_gcc492TDM

打开Code::Blocks,选择菜单Settings->Global Variables…,在设置default下新建立一个wx变量,在Build-in fields:下,base中填入“ w x w i n ” ( w x w i n 是 刚 才 设 置 好 的 一 个 变 量 ) , i n c l u d e 中 填 入 “ {wxwin}”(wxwin是刚才设置好的一个变量),include中填入“ wxwinwxwininclude{wxwin}\include”,lib中填入“${wxwin}\lib”

新建项目:

建立项目

建立项目的过程

通过菜单“File”->“New”->“Project…”,选择“Empty project”建一个项目。

点击菜单File->New->File…为项目新建一个源程序文件,main.cpp:

#include 
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;
}

选菜单Project->Build options…,在选项卡Search directories中,设置Compiler。通过“Add”增加目录X:\wxMSW-3.1.0_gcc492TDM\include和X:\wxMSW-3.1.0_gcc492TDM\lib\gcc_dll\mswud,最好include在上mswud在下。(debug版用mswud,release版用mswu)

选菜单Project->Build options…,在选项卡Linker settings中,需要加入要连接的“目标文件”。如图所示,通过Add按钮加入X:\wxMSW-3.1.0_gcc492TDM\lib\gcc_dll文件夹中的所有.a文件

此时编译即可通过。

利用Code::Blocks的向导建立

使用向导建一个“wxWidgets project”项目。

  • GUI设计工具和程序类型,用wxSmith和Dialog based。如果设置了“Code::Blocks配置”,wxWidgets’location直接填入“$(#wx)”就可以了,否则设置为X:\wxMSW-3.1.0_gcc492TDM目录。

  • wxWidgets Library Settings选择Enable unicode

  • 选择Configure Advanced Options

  • 选择Use _WXDEBUG_ and Debug wxWidgets lib

  • 选择GUI Mode Application

生成的程序源码:

wxTest3.1.0.rar

程序运行:

程序运行时需要一些dll,到wxMSW-3.1.0_gcc492TDM_ReleaseDLL.7z中寻找,放到程序目录即可启动。

VS2010环境

wxMSW-3.1.0_vc100下载:

  • wxMSW-3.1.0_vc100\_Dev.7z
  • wxMSW-3.1.0\_vc100\_ReleaseDLL.7z
  • wxWidgets-3.1.0-headers.7z

项目

把wxMSW-3.1.0_vc100_Dev.7z与wxWidgets-3.1.0-headers.7z解压到 X:\wxMSW-3.1.0_vc100_Dev

新建win32项目 windows应用程序 空项目

附加包含目录

  • X:\wxMSW-3.1.0_vc100_Dev\include
  • X:\wxMSW-3.1.0_vc100_Dev\lib\vc_lib\mswud(debug)
  • X:\wxMSW-3.1.0_vc100_Dev\lib\vc_lib\mswu(release)

添加附加依赖项:

wxbase31ud_net.lib
wxmsw31ud_html.lib
wxbase31ud_xml.lib
wxmsw31ud_adv.lib
wxmsw31ud_aui.lib
wxmsw31ud_gl.lib
wxmsw31ud_media.lib
wxmsw31ud_propgrid.lib
wxmsw31ud_qa.lib
wxmsw31ud_ribbon.lib
wxmsw31ud_richtext.lib
wxmsw31ud_stc.lib
wxmsw31ud_xrc.lib
wxscintillad.lib
wxmsw31ud_core.lib
wxbase31ud.lib
wxtiffd.lib
wxjpegd.lib
wxpngd.lib
wxzlibd.lib
wxexpatd.lib
winmm.lib
comctl32.lib
rpcrt4.lib
wsock32.lib
odbc32.lib

头文件:

#include 
class wxMyApp:public wxApp
{
public:
    virtual bool OnInit();
};
class wxMyFrame:public wxFrame
{
public:
    wxMyFrame(const wxString& title);
};

源文件:

#include "头文件.h"
bool wxMyApp::OnInit()
{
    wxMyFrame *pMyFrame=new wxMyFrame(_("myframe"));
    pMyFrame->Show(TRUE);
    return TRUE;
}
wxMyFrame::wxMyFrame(const wxString& title):wxFrame(NULL,NULL,title)
{

}
DECLARE_APP(wxMyApp);
IMPLEMENT_APP(wxMyApp);

参考:

  • wxwidgets文档
  • wxWidgets教程
  • wxWidgets wiki
  • WxSmith tutorials
  • Cross-Platform GUI Programming with wxWidgets
  • wxWidgets应用程序初体验
  • 用wxSmith进行可视化设计
  • Windows上配置Code::Blocks + wxWidgets
  • VS2010下新建wxWidgets空白工程

你可能感兴趣的:(个人博客,gcc,wxWidgets)