如何使Linux C ++ GUI应用程序

制作Linux C ++ GUI应用程序最简单的方法是什么? 我使用GNOME和Ubuntu 8.10。

我个人更喜欢QT,因为我更喜欢使用信号/插槽机制,并且很容易用它快速开发应用程序。 你的其他一些选项是wxWidgets和GTK +。

最简单的方法是使用GUI GUI生成器。

GTK的Glade 。

QT的QT设计师 。

用于wxWidgets的 wxDesigner和wxFormBuilder 。

更新:我应该提到,这些输出C ++之间的许多其他?

gtkmm是C ++绑定到gtk,它应该工作正常

尝试QT,它将在Ubuntu上运行,并且有很多开发工具和文档。

例如教程 ,或另一个教程或另一个教程

只是为了清楚迄今为止提到的工具包(GTK +,QT和wxWidgets)

GTK +是GNOME使用的工具包

QT是KDE使用的工具包

wxWidget的目标是成为那些(和其他人)上面的抽象,以减少桌面环境的具体情况。

另外一个工具包worl的是EFL E17使用的工具包,虽然这个桌面环境的冰川开发速度可能会让你失望,但是我听到它的设计很好的东西。 请注意,Enlightenment项目中的一些组件(如imlib2)已被其他项目使用了多年。

我建议Juce 。 它的优雅,跨平台,快速,写得很好,几乎完全没有bug,并且与运行在每个平台上的最后一个像素相同。 已知错误的数量几乎总是为零,因为当提交错误报告时,作者将丢弃所有内容并修复错误! 登记册前一段时间写了一篇文章,对图书馆进行了很好的概述。

一般来说,我可以亲自担保qt的易用性,以及linux特定的开发。 一探究竟 :)

最简单的方法肯定是Ultimate ++ 。 我不知道它有多棒,你只需要尝试一下就可以自信了。 以下是一个完整的申请:

#include <CtrlLib/CtrlLib.h> using namespace Upp; class HelloWorld : public TopWindow { MenuBar menu; StatusBar status; void FileMenu(Bar& bar); void MainMenu(Bar& bar); void About(); public: typedef HelloWorld CLASSNAME; HelloWorld(); }; void HelloWorld::About() { PromptOK("{{1@5 [@9= This is the]::@2 [A5@0 Ultimate`+`+ Hello world sample}}"); } void HelloWorld::FileMenu(Bar& bar) { bar.Add("About..", THISBACK(About)); bar.Separator(); bar.Add("Exit", THISBACK(Close)); } void HelloWorld::MainMenu(Bar& bar) { menu.Add("File", THISBACK(FileMenu)); } HelloWorld::HelloWorld() { AddFrame(menu); AddFrame(status); menu.Set(THISBACK(MainMenu)); status = "Welcome to the Ultimate++ !"; } GUI_APP_MAIN { SetLanguage(LNG_ENGLISH); HelloWorld().Run(); }