wxwidgets

时间:2024-05-16 14:22:39编辑:莆田seo君

c语言用什么编程软件

c语言用的编程软件有:1、MinGW是Minimalist GNUfor Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合。2、WIN-TC是一个TC2 WINDOWS平台开发工具。该软件使用TC2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能。3、ygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件。4、Microsoft Visual stdudio是一套非常完备的工具和服务,可帮助小伙伴为Microsoft平台和其他平台创建各种各样的应用程序。5、CodeBlocks是一款功能强大的C/C++集成开发环境,软件支持应用程序的开发,也可以对现有的程序进行编译,在设计过程中,可以随意调试软件。

[create_time]2022-10-12 10:31:17[/create_time]2022-10-23 00:00:01[finished_time]1[reply_count]0[alue_good]小言爱旅游玩乐[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.a595e35e.sa-0GnzE4A9X4pbIK8VbVw.jpg?time=1545&tieba_portrait_time=1545[avatar]超过49用户采纳过TA的回答[slogan]被好风景收买,剩下的全是好心情。[intro]817[view_count]

c语言用什么软件编写?

学c语言可以用的软件推荐如下:1、TurboC是由美国Borland公司开发的一套C语言程序开发工具,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套Turbo系列软件,如TurboBASIC、TurboPascal、TurboProlog,这些软件很受用户欢迎。TurboC集成了程序编辑、调试、链接等多种功能。2、WIN-TC是一个TC2WINDOWS平台开发工具。该软件使用TC2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,例如剪切、复制、粘贴和查找替换等。


[create_time]2022-11-21 22:37:25[/create_time]2012-12-01 11:16:21[finished_time]32[reply_count]0[alue_good]惠企百科[uname]https://pic.rmb.bdstatic.com/bjh/user/343825d09bee196abf9cec8955c23e80.jpeg[avatar]百度认证:北京惠企网络技术有限公司官方账号[slogan]惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。[intro]65144[view_count]

信息技术编程软件?

1.MicrosoftVisualC++这是由全球三大信息公司之一的微软公司推出的一款免费C++开发工具,并且集成了便利的除错工具,和微软Windows视窗操作系统应用程序接口、三维动画DirectXAPI、Microsift.NET框架,因软件的自动完成功能和语法高亮的功能而著称。2.MicrosoftVisualStudio这也是被世界500强公司之一的微软公司推出的最流行的Windows平台应用程序的集成开发环境之一,是一个基本完整的开发工具集,内部集成了UML工具、代码管控工具、集成开发环境等软件生命周期所需要的大部分工具。3.Eclipse这是一个基于Java的可扩展开发平台开放源代码的编程软件,很多用户喜欢将Eclipse当作Java集成开发环境(IDE)来使用,而这款软件还包括针对希望扩展Eclipse的软件开发人员的插件开发环境。十大编程软件排行榜(编程软件有哪些推荐)4.Dev-C++这款软件是拥有功能简介、技巧提示和支持多语言等众多优点,是在Windows环境下适合初学者使用的一款轻量级C、C++集成开发环境,是一款遵守GPL许可协议分发源代码,集合众多自由软件的编程软件。5.Notepad++这款软件是被誉为程序员必备的应用Notepad++是Windows操作系统下的一款免费文本编辑器,支持多国语言编写功能,于Notepad相比这款功能更加强大,且支持数十种计算机程序语言。6.MyEclipse这款软件是以Eclipse为基础加入发出的一款企业级集成开发环境,是主要用于Java、JavaEE以及移动应用的开发的十大编程工具之一,而其配合着CodeMix的使用支持也十分广泛。7.JDKJDK是由SunMicrosystems开发的一款java编程软件,分为多个版本,可应用于移动和嵌入式设备,自JAVA语言推出以来,JDK就成为使用最广泛的编程软件,而被很多认可就代表着学号JDK是学好Java的第一步。8.Code::Blocks这款软件是集开放源码、免费和全功能于一体的跨平台C、C++集成开发环境于一体,使用了著名的图形界面库wxWidgets(3.x)版,是热门C语言编程软件,支持工程管理、项目构建、代码完成等各种功能。9.Gcc这款软件是由GNU开发的包含了C、C++、Objective-C、Fortran、Java、Ada和Go语言前端的编程语言翻译器,现在已经成为大多数类Unix操作系统采纳为标准的编译器,支持多种计算机体系结构芯片。10.SublimeText这款软件是收费制的现金代码编辑器软件,是一款拥有漂亮用户界面和强大功能的跨平台文本编辑器,支持多种编程语言并拥有优秀代码自动完成功能并支持VIM模式的编程软件,软件还具有良好的扩展能力和完全开放的用户自定义设置。

[create_time]2023-04-03 17:17:40[/create_time]2023-04-18 17:17:40[finished_time]1[reply_count]0[alue_good]猪八戒网[uname]https://pic.rmb.bdstatic.com/c958ab6d003b1ca8df45ae4fa0226ac5.jpeg[avatar]百度认证:重庆猪八戒网络有限公司官方账号[slogan]猪八戒网(zbj.com)创建于2006年,现已形成猪八戒网、天蓬网和线下八戒工场的“双平台+一社区”服务模式,是中国领先的人才共享平台。 [intro]18[view_count]

如何编译wxWidgets

  1 、打开工程 wxWidgets-2.8.7\build\msw\wx_dll.dsw ,将其转换为 vs2005 工程关闭保存,再打开工程 wx_dll.sln 。
  2 、将解决方案配置更换为 DLL Unicode Debug 。
  3 、依次单独编译 wxregex 、 wxzlib 、 wxexpat 、 wxtiff 、 base 、 wxjpeg 、 wxpng 、 core 、 odbc 、 xml 、 adv 、 html 、 net 、 gl 、 dbgrid 、 qa 、 richtext 、 aui 、 xrc 、 media 库。
  其中目前版本 odbc 、 gl 、 dbgrid 工程并不完善,出现编译错误忽略即可。
  4 、如果以上顺利通过,那么将得到以下我们需要的库文件
  编译预定义环境
  wxWidgets-2.8.7\lib\vc_dll\mswud\wx\ setup.h
  wxWidgets-2.8.7\lib\vc_dll\mswud\wx\msw\ rcdefs.h
  wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_net_vc_custom.dll
  wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_odbc_vc_custom.dll
  wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_vc_vc_custom.dll
  wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_xml_vc_custom.dll
  wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_adv_vc_custom.dll
  w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_aui_vc_custom.dll
  w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_core_vc_custom.dll
  wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_gl_vc_custom.dll
  w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_html_vc_custom.dll
  w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_media_vc_custom.dll
  w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_qa_vc_custom.dll
  w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_richtext_vc_custom.dll
  w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_xrc_vc_custom.dll
  wxWidgets-2.8.7\lib\vc_dll\wxbase28ud.lib
  wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_net.lib
  wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_xml.lib
  wxWidgets-2.8.7\lib\vc_dll\wxexpatd.lib
  wxWidgets-2.8.7\lib\vc_dll\wxjpegd.lib
  wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_adv.lib
  wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_aui.lib
  wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_core.lib
  wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_html.lib
  wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_media.lib
  wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_qa.lib
  wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_richtext.lib
  wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_xrc.lib
  wxWidgets-2.8.7\lib\vc_dll\wxpngd.lib
  wxWidgets-2.8.7\lib\vc_dll\wxregexud.lib
  wxWidgets-2.8.7\lib\vc_dll\wxtiffd.lib
  wxWidgets-2.8.7\lib\vc_dll\wxzlibd.lib
  注意:将以上文件按照文件按照原目录相对结构拷贝到要制作的库路径下,并将 wxWidgets-2.8.7\ include 目录也拷贝到其目录下,以后要使用只需要包含这些路径即可。
  为了以后开发方便,设定的开发库路径为:
  wxLib\include
  wxLib\Debug\mswud\wx\msw
  wxLib\Debug


[create_time]2016-07-29 21:09:03[/create_time]2015-01-11 10:01:02[finished_time]1[reply_count]0[alue_good]huanglenzhi[uname]https://himg.bdimg.com/sys/portrait/item/public.1.3581d373.hXH0XydlHn5rhGjSCbe2Xg.jpg[avatar]知道合伙人数码行家[slogan]长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。[intro]471[view_count]

怎么编译wxwidgets

1 、打开工程 wxWidgets-2.8.7\build\msw\wx_dll.dsw ,将其转换为 vs2005 工程关闭保存,再打开工程 wx_dll.sln 。
2 、将解决方案配置更换为 DLL Unicode Debug 。
3 、依次单独编译 wxregex 、 wxzlib 、 wxexpat 、 wxtiff 、 base 、 wxjpeg 、 wxpng 、 core 、 odbc 、 xml 、 adv 、 html 、 net 、 gl 、 dbgrid 、 qa 、 richtext 、 aui 、 xrc 、 media 库。
其中目前版本 odbc 、 gl 、 dbgrid 工程并不完善,出现编译错误忽略即可。
4 、如果以上顺利通过,那么将得到以下我们需要的库文件
编译预定义环境
wxWidgets-2.8.7\lib\vc_dll\mswud\wx\ setup.h
wxWidgets-2.8.7\lib\vc_dll\mswud\wx\msw\ rcdefs.h
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_net_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_odbc_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_vc_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_xml_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_adv_vc_custom.dll
w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_aui_vc_custom.dll
w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_core_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_gl_vc_custom.dll
w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_html_vc_custom.dll
w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_media_vc_custom.dll
w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_qa_vc_custom.dll
w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_richtext_vc_custom.dll
w xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_xrc_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud.lib
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_net.lib
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_xml.lib
wxWidgets-2.8.7\lib\vc_dll\wxexpatd.lib
wxWidgets-2.8.7\lib\vc_dll\wxjpegd.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_adv.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_aui.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_core.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_html.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_media.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_qa.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_richtext.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_xrc.lib
wxWidgets-2.8.7\lib\vc_dll\wxpngd.lib
wxWidgets-2.8.7\lib\vc_dll\wxregexud.lib
wxWidgets-2.8.7\lib\vc_dll\wxtiffd.lib
wxWidgets-2.8.7\lib\vc_dll\wxzlibd.lib
注意:将以上文件按照文件按照原目录相对结构拷贝到要制作的库路径下,并将 wxWidgets-2.8.7\ include 目录也拷贝到其目录下,以后要使用只需要包含这些路径即可。
为了以后开发方便,设定的开发库路径为:
wxLib\include
wxLib\Debug\mswud\wx\msw
wxLib\Debug


[create_time]2016-02-22 01:56:49[/create_time]2011-10-09 03:31:47[finished_time]2[reply_count]1[alue_good]宇望s6[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.467f0794.LQXrgKnLmW2jwArSgKMNoA.jpg?time=2979&tieba_portrait_time=2979[avatar]TA获得超过317个赞[slogan]这个人很懒,什么都没留下![intro]1126[view_count]

如何参与到wxwidgets的开发中去

wxWidgets是一个跨平台的软件开发包。它诞生于1992年,最初的名子是wxWindows,但由于Microsoft的抗议,在2004年改名为wxWidgets。它最初是被设计成跨平台的GUI软件开发包,但后来随着越来越多的人参与进来,为wxWidgets加入了许多非GUI的功能,如多线程(MultiThread)、网络(Network)等。并且从最初的只支持C++语言,逐渐发展成为支持数种语言(如Python、Perl、C#、Basic等)。因此,现在的wxWidgets已经不再是单纯的跨平台的GUI软件开发包,而是一个可以支持多种操作系统平台的能够在多种语言中使用的通用跨平台软件开发包。

由于wxWidgets最开始是为C++而设计的,因此,本文主要讨论了wxWidgets在C++中的使用。

为什么选择wxWidgets?

目前支持C++的软件开发包非常多,比较有名的除了wxWidgets外,还有一些其它的软件开发包,如MFC、QT、ACE等。即然有这么多开发包,那么我们为什么要使用wxWidgets呢?在给出答案之前,让我们首先来看一看上述的三种软件开发包的特性。

1. MFC

MFC是Microsoft提供的软件开发包。MFC虽然十分强大,但它只能运行在Windows下运行。而且它是收费的。

2. QT

QT是由Trolltech 公司开发的一套跨平台软件开发包。它和wxWidgets类似,但是QT只在linux下免费,而在Windows或Unix下使用QT要向Trolltech公司支付版权费。

3. ACE

ACE虽然是免费开源的,但是它没有提供GUI功能。

从以上三个软件开发包可以看出,它们虽然有各自的优势,但是它们或多或少地都会使开发受到限制。而使用wxWidgets将不会有以上所述的问题。wxWidgets和MFC、QT、 ACE的特性对比如表1所示。



注:其中免费中的“是/否”代表QT在linux平台上的Free Edition是免费的,而在windows和unix下使用QT是收费的。而开源中的“是/否”代表QT有一个基于GPL的开源版本,但要进行商业开发,需要使用它的商业版本。

使用wxWidgets编写程序

学习一种编程语言的最好方法就是用它去编写程序,学习wxWidgets也不例外。由于wxWidgets的主要功能是实现跨平台的GUI,因此,本文主要从GUI入手,讨论wxWidgets在C++中如何编写跨平台的应用程序

1. 应用程序类的建立

使用wxWidgets建立系统需要一个类来描述整个应用程序。这个类必须从wxApp类继承。

class MyApp : public wxApp //应用程序类

{

public:

virtual bool OnInit(); // 在应用程序启动时调用,如果返回false,退出应用程序

};

这个类只覆盖了wxApp的一个虚方法OnInit。可以用这个方法在程序启动时做一些验证,如果验证失败,可以通过返回false退出应用程序。当然,由于这个函数是应用程序的入口点,所以建立主窗体的工作要在这个函数中完成。

2. 建立窗体类

wxWidgets中关于窗体的类很多,如果要建立一般窗体的话,可以从wxFrame继承。

class MyFrame : public wxFrame //窗体类

{

public:

MyFrame(const wxString& title); // 窗体的构造函数

};

3. 向窗体中加入控件

在本文中向这个窗体加入了一个菜单条(Menu Bar)、一个状态条、一个Panel和一个按钮。一般我们会在主窗体的构造函数中加入这些控件。

MyFrame::MyFrame(const wxString& title) : wxFrame(NULL, wxID_ANY, title)

{

wxMenu *fileMenu = new wxMenu; // 建立“文件”菜单

wxMenu *helpMenu = new wxMenu; // 建立“帮助”菜单

// 向菜单中添加子项

helpMenu->Append(wxID_ABOUT, _T("关于"tF1"), _T("显示关于对话框"));

fileMenu->Append(wxID_EXIT, _T("退出"tAlt-X"), _T("退出应用程序"));

wxMenuBar *menuBar = new wxMenuBar(); // 建立一个菜单条

menuBar->Append(fileMenu, _T("文件")); //将“文件”菜单加入到菜单条

menuBar->Append(helpMenu, _T("帮助")); //将“帮助”菜单加入到菜单条

SetMenuBar(menuBar); //将菜单条放到窗体上

wxPanel *panel = new wxPanel(this); //建立一个Panel

wxButton *button = new wxButton(panel, wxID_ABOUT, "关于", wxPoint(20, 20), wxSize(50, 30)); //建立一个Button

CreateStatusBar(2); //建立一个两栏的状态栏

SetStatusText(_T("欢迎使用wxWidgets!")); //设置状态栏的文本

在数组sample_xpm中描述了sample.ico的属性和图标本身。如X代表红色; o代表黄色等。然后在源程序中通过include “sample.xpm”引用这个资源文件。要想从这个资源文件中装载图标。可使用SetIcon(wxICON(sample)); wxICON读取资源文件,而SetIcon将这个图标设置为frame的标题栏图标。要想将ico文件转换为这种资源文件,可使用一个免费软件XnView进行转换。

5. 显示主窗体

显示主窗体非常简单,只需要将上面建立的MyFrame类实例化,并调用wxFrame的Show方法显示即可。这些代码可以写在MyApp类的OnInit方法中。

bool MyApp::OnInit()

{

//建立MyFrame类的实例

MyFrame *frame = new MyFrame(_T("第一个wxWidgets程序"));

frame->Show(true); //显示主窗体

return true; //必须返回true,否则应用程序将退出

}

在以上代码中Show方法有一个参数,如果为true,则以模式窗口的形式显示,否则以非模式窗口的形式显示。

6. 向窗体中加入事件

到目前为止,这个程序的界面已经完成了,但还未响应任何事件,下面就详细阐述如何向这个应用程序中加入事件代码。

对于事件来说,一般都会由两部分组成。

(1)调用事件部分

当程序发生某个动作时,如点击按钮;选中某个控件,可能需要执行一段代码。而这段代码一般是由系统负责调用的,也就是说系统通过事件函数指针调用相应的代码。

(2)事件函数本身

事件函数与普通函数一样,只不过它是在发生了事件之后,由系统调用的。

在wxWidgets中是通过事件哈希表(Event Hash Table)来进行事件处理的,即将相应的事件函数指针保存在一个哈希表中,然后当事件发生时,从这个哈希表中找到相应的事件函数指针,然后通过函数指针调用函数。在使用事件哈希表之前,必须定义它。由于定义哈希表非常复杂,而且每个需要处理事件的类都需要同样的代码,因此,wxWidgets为此定义了一个宏DECLARE_EVENT_TABLE()来定义哈希表。可将这个宏写在MyFrame类的任何位置。它相当于将以下语句放到了MyFrame类中。

private:

static const wxEventTableEntry sm_eventTableEntries[];

protected:

static const wxEventTable sm_eventTable;

virtual const wxEventTable* GetEventTable() const;

static wxEventHashTable sm_eventHashTable;

virtual wxEventHashTable& GetEventHashTable() const;

其中静态数组变量sm_eventTableEntries保存了MyFrame类中的所有的事件信息。

上面的代码声明了处理事件哈希表的一些方法,即然声明了,就得实现。由于实现代码也都一样,因此,wxWidgets也为实现这些方法定义了一组宏。实现这些方法的宏如下所示。

BEGIN_EVENT_TABLE(MyFrame, wxFrame)

EVT_MENU(wxID_EXIT, MyFrame::OnQuit)

EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)

EVT_BUTTON(wxID_ABOUT, MyFrame::OnAbout)

END_EVENT_TABLE()

其中BEGIN_EVENT_TABLE(…)实现了上面定义的方法,以及初始化了静态变量sm_eventTable。后面两个EVT_MENU和一个EVT_BUTTON宏初始化了静态变量sm_eventTableEntries,即将这两个事件函数的指针(button和about菜单使用一个事件函数OnAbout)和控件ID保存在sm_eventTableEntries中,最后的END_EVENT_TABLE()宏做为一个空的事件函数指针赋给了sm_eventTableEntries,这有些象C语言中处理字符串,将最后一个字符赋为’"0’,这样就可以知道哪是结尾了。

向窗体中加入事件的最后一步是声明和实现事件函数。在本例中声明了两个事件函数。

void OnQuit(wxCommandEvent& event);

void OnAbout(wxCommandEvent& event);

可以将这两个函数声明放到MyFrame中的任何位置。下面是它们的实现代码。

void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))

{

Close(true);

}

void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))

{

wxString msg;

msg.Printf( _T("这是一个关于对话框的例子."n")

_T("欢迎使用 %s"), wxVERSION_STRING);

wxMessageBox(msg, _T("¹关于"), wxOK | wxICON_INFORMATION, this);

}

其中OnQuit函数调用Close(true)关闭MyFrame,由于MyFrame是主窗体,因此,在MyFrame关闭后,应用程序也随之关闭了。OnAbout使用wxMessageBox函数弹出一个信息对话框。

7. 运行程序

到目前为止,这个程序的代码已经基本完成了,但是在前面曾说过,MyApp中的OnInit方法在应用程序启动时执行,那么是谁调用了OnInit方法呢?答案当然是wxWidgets。wxWidgets为了调用这个方法,提供了一个宏IMPLEMENT_APP(…),这个宏有一个参数,需要将MyApp做为参数传入。即IMPLEMENT_APP(MyApp)。这个宏相当于一个WinMain函数(和控制台程序的main函数类似),即在WinMain函数中调用了MyApp中的OnInit函数。在加入这个宏后,就可使用一个C++编译器将以上的源程序编译生成exe文件了。


[create_time]2017-02-19 20:49:33[/create_time]2017-02-19 22:47:49[finished_time]1[reply_count]0[alue_good]n9...8@betv777.com[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.2d05b62b.UylmWqGnzgGc6Jd2DHkxxg.jpg?time=7325&tieba_portrait_time=7325[avatar]TA获得超过551个赞[slogan]这个人很懒,什么都没留下![intro]46[view_count]

各位高手,小弟正在为选择使用Qt还是WxWidgets而烦恼,请大家给条明路吧?!

很好的一篇文章
原文:我所知道的三种开源跨平台GUI toolkits—— GTK、Qt和wxWidgets

1、GTK+

GTK+基础

GTK+最初是GIMP的专用开发库,后来发展为Linux下开发图形界面的应用程序的主流开发工具之一。GTK+2.0是自由软件,并且是GNU工程的一部分。GTK+2.0的许可协议是LGPL。

GTK+使用C语言开发,但是其设计者使用面向对象技术。 在GNOME平台上提供了C++(gtkmm)、Perl、Ruby、Java和Python(PyGTK)绑定,其他的绑定有Ada、 D、 Haskell、PHP和所有的.NET编程语言。

与其他很多部件工具箱不同,GTK+并不基于Xt。这一决策优劣互见:优点是GTK+可以应用于其他系统,其灵活性也很强;而缺点就是它无法利用以传统方法为X11定制的X资源数据库。

Glade是一个界面设计工具,但是它也包含了一种描述GUI界面的XML语言,它和libglade一起工作就可以直接使用GTK和GNOME控件。

2、Qt

Qt简介

Qt是Trolltech公司的一个产品。
Qt是一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且 允许真正地组件编程。

自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用 程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。

Qt支持下述平台: MS/Windows - 95、98、NT 4.0、ME、和2000
Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台
Macintosh - Mac OS X
Embedded - 有帧缓冲(framebuffer)支持的Linux平台。

3、wxWidgets

开源软件(LGPL),针对C++、Python以及Perl的跨平台工具集。

详细介绍,参见细述 wxWindows
wxWidget作为一个C++ GUI Library从1992发展到现在,已经在全球范围内产生了极大的影响力,利用这个类库进行GUI开发的软件更是不计其数。

wxWidgets原名wxWindows,是由Julian Smart于1992年还在英国爱丁堡大学人工智能应用研究所开始的一个项目。Julian Smart现在是Anthemion软件公司的技术总监。

简单地说,wxWidgets提供了用于可在多平台上开发GUI应用程序的一整套简单易学易用的API。wxWidgets支持的多平台包括
Windows 3.1/95/98/NT/2000/XP、带有Motif
1.2版本以上的Unix、带有GTK+的Unix/Linux/*BSD、Mac等等。开发者只需要用自己使用的系统平台的编译器编译源程序,并链接上
相应的库文件,生成的程序代码即具有该平台的外观和界面。在这些GUI之上,wxWidgets还提供了在线帮助、网络编程、流处理、多种常用图形格式支
持、数据库支持、HTML察看和打印,等等各种强大的功能。

wxWidgets支持的Windows上的多种流行编译器包括:
Visual C++ 1.5, 4.0, 5.0, 6.0
Borland C++ 4.5, 5.0
Borland C++ Builder 1.0, 3.0
Watcom C++ 10.6 (Win32)
Cygwin
MinGW32
Metrowerks CodeWarrior 4



wxWidgets和GTK+的一大吸引力是它的wxWidgets 2 licence类型是属于LGPL ( Lesser
General Public License
)的,也就是说,使用它开发的软件并不要求一定得公开源码。这样,无论是免费软件的开发者、GPL类型软件开发者,还是纯粹商业软件开发者都可以免费使用
这个软件包。

相比之下,TrollTech的Qt似乎正是因为此因素而影响了它的受接受程度,因为用Qt开发商用软件者所需交纳的费用对于个人
开发者来说还是比较昂贵的,而且分单平台、二平台、三平台(即Qt/X11、Qt/Windows和Qt/Mac都包含在内了)三个不同产品包,又分
Professional和Enterprise不同Edition亦即不同价位,而且开发人员数不同价格也不同。

从这点说来,wxWidgets是绝对具有优势的。另外Qt起源于Linux上的开发,后来推展到Windows、Mac等其它平台;而wxWidgets恰好相反,始于Windows,其后移植到Unix等其它平台。


关于LGPL(Lesser General Public License ) 许可,这是 GNU
许可家族中一个不太严格的许可。LGPL 允许任何人使用该库提供的功能,而不
要求用户公开应用程序代码。(这对于许多工业应用来说很重要,因为由于以前的协议或许可,这种场合下一般不希望公开代码或者公开代码是显然不现实的。)使
用 LGPL 许可,您既可以是开放源码社区的好伙伴也可以是好公民。

中文非正式翻译参见 http://gnu.freehostingguru.com/lgpl/


其他资源:知名 GUI lib 简评 (GTK+, Qt, wxWidgets)

Technorati Tags: GTK, Qt, wxWidgets, 图形界面, 跨平台


从网上搜到的,仅供参考,也许对你会有一点小小的帮助!


[create_time]2011-04-13 23:58:31[/create_time]2011-04-21 21:52:17[finished_time]2[reply_count]21[alue_good]百小荷[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.5983a4d9.Ame1_hFWLZCdAOskeU9RTg.jpg?time=3196&tieba_portrait_time=3196[avatar]TA获得超过887个赞[slogan]这个人很懒,什么都没留下![intro]14676[view_count]

wxwidgets和qt哪个好用

跨平台的C++ GUI工具库很多,可是应用广泛的也就那么几个,Qt、wxWidgets便是其中的翘楚。
这里把GTK+排除在外,以C实现面向对象,上手相当困难,而且Windows平台下执行相当慢且不稳定。

Qt和wxWidgets各有各的优点,也各有各的缺点,各有各的适合应用点。
工作环境和爱好限制,个人曾经分别使用过Qt和wxWidgets,
到现在,就个人而言,选择在一般程序方向采用wxWidgets,在手机应用程序方向采用Qt。

先说版权:
Qt,是芬兰的TrollTech公司研发的,现在属于Nokia,一直奉行的是双LICENSE策略,一个是商业版,一个是免费版:
商业版的LICENSE就不说了,免费版的LICENSE,4.5版本之前一直采用GPL,意味着采用Qt的程序要么是商业软件,要么就是GPL软件,
这就造成了虽然出了个著名的KDE,可惜应用范围还是受限,否则的话,应用应该更广阔点;
不过还好,Nokia收购了之后意识到这个问题,4.5版本之后采用了LGPL,其他开发人员可以发布基于免费Qt库连接的商业软件了。
wxWidgets,一直奉行的是LGPL LICENSE。

再评评各自的优缺点:
Qt,一直以来开发公司作为商业公司进行运作,以客户需求为目标,提供了一系列完整的文档和RAD工具,并提供最为完整的平台支持;
对开发人员而言,Qt库本身,也是所有的GUI工具库中最为面向对象化的,同时也是最为稳定的。
罗列一下:
Qt的优点:
1. 支持的平台最多
2. 商业化支持
3. 完整的文档和RAD工具
4. 最为面向对象
5. 世界上最为成功的手机厂商支撑,对于移动终端的支持最为完善
Qt的缺点:
1. 使用的是非标准C++
2. 每个平台不是"Native GUI"
3. 过于庞大且运行缓慢
4. 与其它库不是很兼容(主要是STL之类的兼容问题)
5. 基本只能使用特定的qmake工具(其它工具经过良好的修改也可以,不过相当于重新编写一个qmake,是否值得)

wxWidgets,一直以来的LGPL发布,相当开放,积累了相当一部分研究用户,与现有各类工具库无缝连接地非常好;
同时可惜的是没有非常强大的正规商业化运作,可靠性、资源丰富性远比不上Qt。
还是罗列一下:
wxWidgets的优点:
1. 开放,对于各类第三方库的良好兼容(TAO工具中的Naming_Service Viewer就是采用wxWidgets的)
2. 支持各平台的"Native GUI"
3. 虽然有庞大的库,运行效果极为显著
4. 对各类现有工具的支持(笔者就采用MPC一站式产生所有项目的编译工程)
5. 偏MFC,对于Windows平台MFC程序的跨平台迁移,具有天然的优势
6. XRC,则提供了代码和设计分离的便利,程序员专注整体开发,UI设计群体则提供运行期界面、多语言版本支持功能等
wxWidgets的缺点:
1. 由于是偏MFC,则面向对象封装做得不是非常好
2. 相对缺乏的文档、资源
3. 缺乏很好的商业化支持,如果商业软件出问题需要支持,稍微麻烦点

总之:
在采用第三方工具库的复杂PC应用环境,有一定的底子,wxWidgets是不二的选择
在只需采用Qt单一工具库的应用环境,Qt是个不错的选择;特别是类似于手机这种嵌入式设备环境,由于Nokia的加入,Qt更值得一用。


[create_time]2016-11-23 13:17:49[/create_time]2016-11-23 15:47:30[finished_time]1[reply_count]1[alue_good]百度网友79d5913[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.2206b1b4.vbfZqByiOOKlLzgX-BVJ5Q.jpg?time=3214&tieba_portrait_time=3214[avatar]TA获得超过2237个赞[slogan]这个人很懒,什么都没留下![intro]763[view_count]

学习c语言用什么软件

C语言作为一门古老的编程语言,应用范围非常广,至于编程的软件的话,其实就非常多了,下面我简单介绍几个不错的C语言编程软件,感兴趣的朋友可以自己尝试一下:这个是Windows环境下一个轻量级、免费的C/C++集成开发环境,自带有TDM-GCC编译器、GDB调试器,可以直接编译运行C语言程序,轻快灵活,功能简洁,支持代码高显亮,没有自动语法提示和自动补全功能,对于初学者来说,非常锻炼人,纯手工编写代码,更能打好基础。这个软件的功能和DevC++差不多,也是Windows环境下一个非常不错的C/C++开发环境,在早期的学习中,经常会用到这个软件,许多学校机房中都使用这个软件教学。可以直接编辑运行C语言程序,功能比较简单,没有任何提示功能,都是手写代码,现在来说,使用不多了,但对于初学者来说,也是一个不错的选择:相比较前面2个软件,CodeBlocks的功能强大一些,开源、免费、跨平台,小巧灵活,支持代码高亮、语法检查、自动补全等功能,除此之外,还提供了许多现成的工程模板,可以快速创建控制台应用、Qt应用等,使用起来非常方便,也是一个非常不错的C语言编程软件。这是微软开源、免费、跨平台的一个代码编辑器,插件众多,生态环境良好,配置GCC编译器后,也可以直接编辑运行C语言程序(本身支持的编程语言也非常多),支持智能补全、语法提示、Git等功能,轻便灵活,使用起来非常不错,也很好学习和掌握。这是一个专业的C/C++开发环境,也是个人和公司使用最多的IDE,项目管理、团队协作来说非常方便,集成的环境比较多,Python、VB、C#等,这个软件都能很好的兼容,自动补全、语法检查和提示功能这个软件都支持。整个软件比较大,运行起来电脑可能会比较卡,而且功能比较复杂,初学者来说,需要一段时间才能适应和基本掌握,但的确是一个值得学习和使用的IDE环境。这也是一个非常经典的C语言编程环境,只不过在Linux环境下比较常用,免费、跨平台,插件扩展比较丰富,轻巧灵活,功能简洁,安装GCC编译器后,也可以直接编译运行C语言程序,对于在Linux环境下开发C来说,是一个非常不错的选择。目前,就分享这6个不错的C语言编程软件吧,有Windows的,也有Linux的,对于初学者来说,完全可以满足日常开发和使用,当然,你也可以使用其他软件,像IDEA、Eclipse(安装插件)等,也可以,适合自己就行,网上也有相关资料可供参考。

[create_time]2022-11-14 10:30:11[/create_time]2022-11-11 00:00:00[finished_time]2[reply_count]0[alue_good]soffier2001[uname]https://pic.rmb.bdstatic.com/bjh/user/26d17437aa1c78e897008e083ea18c2d.jpeg[avatar]上海吃喝玩乐社群运营[slogan]上海吃喝玩乐社群运营[intro]978[view_count]

学习c语言用什么软件?

学c语言可以用的软件推荐如下:1、TurboC是由美国Borland公司开发的一套C语言程序开发工具,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套Turbo系列软件,如TurboBASIC、TurboPascal、TurboProlog,这些软件很受用户欢迎。TurboC集成了程序编辑、调试、链接等多种功能。2、WIN-TC是一个TC2WINDOWS平台开发工具。该软件使用TC2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,例如剪切、复制、粘贴和查找替换等。


[create_time]2022-11-21 22:37:26[/create_time]2022-08-17 16:08:16[finished_time]2[reply_count]0[alue_good]惠企百科[uname]https://pic.rmb.bdstatic.com/bjh/user/343825d09bee196abf9cec8955c23e80.jpeg[avatar]百度认证:北京惠企网络技术有限公司官方账号[slogan]惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。[intro]86[view_count]

上一篇:chdir

下一篇:整型常量