您的位置:首页 > 其它

unbuntu下wxWidgets的安装以及第一个程序的编译运行

2014-08-13 09:30 302 查看
在ubuntu下零零散散装了好几天的wxWidgets,看着《使用wxWidgets进行跨平台程序开发》进行第一个程序的编写时候总是有问题,现在总算是装好了。

首先是安装过程:(参照网上的教程)

去网上下载wxGTK-2.8.12.tar.gz的包

解压缩

tar -zxf wxGTK-2.8.12.tar.gz

进入wxGTK目录

cd wxGTK-2.8.12.tar.gz

编译

./configure --with-gtk 假如报错了,看它所给的错误信息,找自己少了什么依赖包,补上就行

make configure不通过则这条命令无法正常执行,没用时请检查configure的输出信息

sudo make install 安装成功时会出现安装成功的字样

然后是书上的第一个程序 sample.cpp

#include "wx/wx.h"
//定义应用程序类
class MyApp : public wxApp
{
public:
//程序启动时自动调用该该函数
virtual bool OnInit();
};

//告诉主应用程序时哪个类wxWidgets
IMPLEMENT_APP(MyApp)

//可以使用MyApp& wxGetApp()
DECLARE_APP(MyApp)
//定义主窗口类
class MyFrame : public wxFrame
{
public:
//构造函数
MyFrame(const wxString& title);

//事件处理函数
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
private:
//声明事件表
DECLARE_EVENT_TABLE()
};

bool MyApp::OnInit()
{
//创建主窗口
MyFrame *frame = new MyFrame(wxT("Minimal wxWidgets App"));
//显示主窗口
frame->Show(true);
//事件处理循环
return true;
}
//类的事件表
BEGIN_EVENT_TABLE(MyFrame,wxFrame)
EVT_MENU(wxID_ABOUT,MyFrame::OnAbout)
EVT_MENU(wxID_EXIT,MyFrame::OnQuit)
END_EVENT_TABLE()

#include "mondrian.xpm"
void MyFrame::OnAbout(wxCommandEvent& event)
{
wxString msg;
msg.Printf(wxT("Hello and welcome to %s"),wxVERSION_STRING);
wxMessageBox(msg,wxT("About ABOUT Minimal"),wxOK|wxICON_INFORMATION,this);
}

void MyFrame::OnQuit(wxCommandEvent& event)
{
Close();
}

MyFrame::MyFrame(const wxString& title):wxFrame(NULL,wxID_ANY,title)
{
//窗口图标
SetIcon(wxIcon(mondrian_xpm));

//创建菜单条
wxMenu *fileMenu = new wxMenu;

//“关于”菜单项
wxMenu *helpMenu = new wxMenu;
helpMenu->Append(wxID_ABOUT,wxT("&About...\tF1"),wxT("Show about dialog"));

fileMenu->Append(wxID_EXIT,wxT("&Exit\tAlt-X"),wxT("Quit this program"));

//将菜单项添加到菜单条中
wxMenuBar *menuBar = new wxMenuBar();
menuBar->Append(fileMenu,wxT("&File"));
menuBar->Append(helpMenu,wxT("&Help"));
//将菜单项放置在主窗口上
SetMenuBar(menuBar);

//创建一个状态条
CreateStatusBar(2);
SetStatusText(wxT("Welcome to wxWidgets!"));
}


ubuntu下使用如下命令编译运行

$(wx-config --cxx) sample.cpp $(wx-config --libs --cxxflags) sample

./sample

编译过程中遇到一个问题找不到mondrian.xpm文件,去网上搜解决方案搜了半天搜不到,一定是我太弱。。。。

其实这个问题在《使用wxWidgets进行跨平台程序开发》中就已经有写了,在安装的wxWidgets的目录中找到sample目录下随便拉一个mondrian.xpm出来,放在与源程序同一个文件中就OK了= =。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: