使用wxdindows开发跨平台的界面

颠女人L

颠女人L

2016-02-19 18:09

今天给大家分享的是由图老师小编精心为您推荐的使用wxdindows开发跨平台的界面,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

  使用wxdindows开发跨平台的界面
  
  无双
  发表于loveunix.net
  mushuang.forumer.com
  Linuxsir.com
  
  转载请保留出处
  
  使用wxwindows开发的一个例子
  添加新的投票 订阅此主题 邮寄此主题 打印此主题
  无双
  发帖时间 2004-04-01 21:21:36
  
  
  天才猪
  
  
  组别: 治理员
  金钱: 3555 两
  帖子数量: 1036
  精华帖数: 47
  注册时间: 2003-09-16
  
  
  
  
  照着例子进行了半个小时
  写出了一个简单的例子 当然后面会在它上面添加功能 目标是实现一个邮件客户端(与linuxaid的某兄打赌的 欢迎大家参与 假如想参与的话分一下工好了 )
  
  WxWindows开发十分简单 我觉得比使用mfc还要简单
  主程序的入口是wxApp 类的派生类
  界面的入口是wxFrame的派生类
  事件可以像是windows那样使用宏定义的方法
  也可以通过设置事件处理的函数进行调用 (前几天写了个小程序 假如兴奋的话 在这里找就是 )
  
  另外wxWindows有丰富的文档 这几天wxwindows.sf.net上不去了 不知道为什么又把sf给封了 不过其它地方也有不少好文档 照写就是了 让你体会到快速开发界面的感觉
  
  makefile
  这个Makefile是在linux下的 照它的例子抄了一个
  
  
  代码
  
  #
  # File: Makefile for samples
  # Author: Robert Roebling
  # Created: 1999
  # Updated:
  # Copyright: (c) 1998 Robert Roebling
  #
  # This makefile requires a Unix version of wxWindows
  # to be installed on your system. This is most often
  # done typing "make install" when using the complete
  # sources of wxWindows or by installing the two
  # RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm
  # under Linux.
  #
  
  CXX = $(shell wx-config --cxx)
  
  PROGRAM = MailFox
  
  OBJECTS = $(PROGRAM).o MainGUI.o
  
  # implementation
  
  .SUFFIXES: .o .cpp
  
  .cpp.o :
  $(CXX) -c `wx-config --cxxflags` -o $@ $
  
  all: $(PROGRAM)
  
  $(PROGRAM): $(OBJECTS)
  $(CXX) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
  
  clean:
  rm -f *.o $(PROGRAM)
  
  
  这个帖子已被 无双 于 2004-04-01 21:23:13 编辑
  
  
  --------------------
  偶还是愿意看提问时写清楚问题与标题的贴子:D
  IP: [ ---------- ]
  无双
  发帖时间 2004-04-01 21:24:37
  
  
  天才猪
  
  
  组别: 治理员
  金钱: 3555 两
  帖子数量: 1036
  精华帖数: 47
  注册时间: 2003-09-16
  
  
  
  
  应用程序类 这是主程序入口 这个类对程序和界面进行初始化
  
  Oninit是初始化函数 可以看wxwindows定义
  
  代码
  
  #ifndef MAILFOX_H_
  #define MAILFOX_H_
  
  class MailFox:public wxApp{
  public:
  virtual bool OnInit();
  };
  
  #endif
  
  
  --------------------
  偶还是愿意看提问时写清楚问题与标题的贴子:D
  IP: [ ---------- ]
  无双
  发帖时间 2004-04-01 21:29:11
  
  
  天才猪
  
  
  组别: 治理员
  金钱: 3555 两
  帖子数量: 1036
  精华帖数: 47
  注册时间: 2003-09-16
  
  
  
  
  
  应用程序入口 看起来很简单
  创建界面也很简单 就只是声明了wxFrame的继续类
  并使用Show()让它显示
  使用SetTopWindow 设置这个窗口为应用程序的主窗口
  代码
  
  // author:wushuang
  // 2004/04/01
  // GPL
  // desc: mainapp
  //
  #include wx/wx.h
  #include "MainGUI.h"
  #include "MailFox.h"
  
  IMPLEMENT_APP(MailFox)
  
  bool MailFox::OnInit()
  {
  MainGUI *pGUI = new MainGUI("MailFox邮件程序",0,0,640,480);
  pGUI-Show(true);
  SetTopWindow(pGUI);
  return true;
  }
  
  
  --------------------
  偶还是愿意看提问时写清楚问题与标题的贴子:D
  IP: [ ---------- ]
  无双
  发帖时间 2004-04-01 21:32:43
  
  
  天才猪
  
  
  组别: 治理员
  金钱: 3555 两
  帖子数量: 1036
  精华帖数: 47
  注册时间: 2003-09-16
  
  
  
  
  现在到主界面窗口了
  主界面窗口从wxFrame派生 在构造函数中进行界面的初始化 (等下会看到 )
  使用DECLARE_EVENT_TABLE声明要使用事件处理宏 等下也会看到
  当然可以不使用事件处理宏 可以查找我发的前一个例子
  
  wxwindows中使用的控件,在程序退出时会自动清除 所以在析构中不必使用free
  
  代码
  
  #ifndef MAINGUI_H_
  #define MAINGUI_H_
  
  // toolbar and menubar commands
  enum {
  IDC_QUIT = 1,
  IDC_ABOUT
  };
  
  class MainGUI:public wxFrame{
  wxMenuBar *menuBar;
  wxMenu *menuFile;
  
  void OnAbout(wxCommandEvent &event);
  void OnExit (wxCommandEvent &event);
  public:
  MainGUI(const wxChar *Title,int XPos,int ypos,int width,int height);
  ~MainGUI();
  
  DECLARE_EVENT_TABLE();
  };
  
  #endif
  
  
  --------------------
  偶还是愿意看提问时写清楚问题与标题的贴子:D
  IP: [ ---------- ]
  无双
  发帖时间 2004-04-01 21:36:38
  
  
  天才猪
  
  
  组别: 治理员
  金钱: 3555 两
  帖子数量: 1036
  精华帖数: 47
  注册时间: 2003-09-16
  
  
  
  
  界面的实现
  添加控件在构造函数中进行
  注重构造函数中对父类进行了初始化wxFrame((wxFrame*)NULL,-1,Title,wxPoint(xpos,ypos),wxSize(width,height)
  
  事件的定义 声明用哪个函数处理哪个事件
  
  BEGIN_EVENT_TABLE(MainGUI,wxFrame)
  EVT_MENU(IDC_ABOUT,MainGUI::OnAbout)
  EVT_MENU(IDC_QUIT,MainGUI::OnExit)
  END_EVENT_TABLE()
  
  
  这个界面只是添加了一个菜单 然后还有一个状态栏
  没有其它控件
  
  另外 把这个文件保存成MainGUI.cpp
  上面对应的头文件为MainGUI.h
  
  上面的应用程序的类文件名分别为
  MailFox.cpp MailFox.h
  
  保存好 编译并执行就可以看到了
  
  
  代码
  
  #include wx/wx.h
  #include "MainGUI.h"
  
  
  
  MainGUI::MainGUI(const wxChar *Title,int xpos,int ypos,int width,int height)
  :wxFrame((wxFrame*)NULL,-1,Title,wxPoint(xpos,ypos),wxSize(width,height))
  {
  // create menubar and menu
  menuBar = new wxMenuBar;
  if( menuBar )
  menuFile = new wxMenu;
  else
  
   menuFile = NULL;
  
  if(!menuFile){
  delete menuBar;
  return;
  }
  
  menuFile-Append(IDC_ABOUT,"关于");
  menuFile-Append(IDC_QUIT,"退出");
  menuBar-Append(menuFile,"文件");
  SetMenuBar(menuBar);
  CreateStatusBar(3);
  SetStatusText("欢迎使用MailFox邮件软件");
  }
  
  
  MainGUI::~MainGUI()
  {
  }
  
  BEGIN_EVENT_TABLE(MainGUI,wxFrame)
  EVT_MENU(IDC_ABOUT,MainGUI::OnAbout)
  EVT_MENU(IDC_QUIT,MainGUI::OnExit)
  END_EVENT_TABLE()
  
  void MainGUI::OnAbout(wxCommandEvent& event)
  {
  wxMessageDialog aboutDialog(this,"MailFox邮件软件,新的邮件客户端",
  "关于",wxOK);
  aboutDialog.ShowModal();
  }
  
  void MainGUI::OnExit(wxCommandEvent &event)
  {
  Close(true);
  }
  
  __________________
  http://mushuang.forumer.com
  http://loveunix.onlinecq.com
  
  [IMG]http://www.loveunix.net/style_images/1/Logo2.gif[/IMG]
  欢迎参观我的论坛
展开更多 50%)
分享

猜你喜欢

使用wxdindows开发跨平台的界面

编程语言 网络编程
使用wxdindows开发跨平台的界面

C++跨平台游戏开发之ClanLib SDK

编程语言 网络编程
C++跨平台游戏开发之ClanLib SDK

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

详细解析跨平台字体效果使用浅析

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
详细解析跨平台字体效果使用浅析

跨平台Java程序

Java JAVA基础
跨平台Java程序

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用C++实现跨平台游戏开发之Allegro引擎

编程语言 网络编程
用C++实现跨平台游戏开发之Allegro引擎

跨平台字体效果浅析

电脑网络
跨平台字体效果浅析

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Skype安全吗

Skype安全吗

Skype如何进行视频通话

Skype如何进行视频通话
下拉加载更多内容 ↓