【问题标题】:How to make Linux C++ GUI apps [closed]如何制作 Linux C++ GUI 应用程序[关闭]
【发布时间】:2023-01-19 03:45:50
【问题描述】:

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

【问题讨论】:

    标签: c++ user-interface ubuntu gnome


    【解决方案1】:

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

    Glade 用于 GTK。

    QT Designer 用于 QT。

    wxDesignerwxFormBuilderwxWidgets

    更新:我应该提到这些输出 C++ 等等?

    【讨论】:

    • 这不能被投票足够多次......这些太棒了!
    • Glade 和 gtkmm,完美的结合!
    • QT Designer url 已损坏:“无法找到请求的页面‘products/developer-tools/’。”
    【解决方案2】:

    我个人更喜欢 QT,因为我更喜欢使用信号/槽机制,并且发现使用它可以轻松快速地开发应用程序。您的一些其他选择是 wxWidgets 和 GTK+。

    【讨论】:

    • Qt 很棒,尽管 Qt 应用程序在 Gnome 中看起来有点格格不入。
    • 我认为 QGtkStyle,尤其是在 QT4.5 下,与本地 gtk 应用程序融合得很好。
    • 它融合得很好,但是,仍然存在集成问题。例如,像颜色选择器这样的标准对话框是不同的。虽然我真的很喜欢 Qt,但不幸的是颜色选择器尤其是。与 GTK+ 相比完全糟透了。但他们想改变这一点(使用 GTK+ 选择器)。
    • 我切换到 kubuntu,所以现在一切正常。
    【解决方案3】:

    gtkmm 是绑定到 gtk 的 c++,它应该可以正常工作

    【讨论】:

    • 我看过 gtk,但我不知道如何安装它。我运行了 configure 但它没有用。
    • 尝试像 sudo apt-get install gtk-dev 这样的东西
    • 非常感谢!我没想到会那么容易!
    • 不要忘记 Ubuntu 和 Debian 倾向于在 build-essential 包中放置很多“经典”开发基础设施,所以也安装它。
    【解决方案4】:

    只是为了清楚到目前为止提到的工具包(GTK+、QT 和 wxWidgets)

    GTK+ 是 GNOME 使用的工具包

    QT 是 KDE 使用的工具包

    wxWidget 旨在成为那些(和其他)之上的抽象,以减少桌面环境的特定性。

    另一个值得一看的工具包是EFL E17 使用的工具包,虽然这个桌面环境的冰川开发速度可能会让你望而却步,但我听说它的设计不错。请注意,来自 Enlightenment 项目的某些组件(例如 imlib2)已被其他项目使用多年。

    【讨论】:

    • “冰川发育速度”?由于流量原因,我不得不从 Enlightenment CVS 邮件列表中退订 - 每天有 15 次以上的主要提交!
    • 我有一段时间没关注了。但据我所知,这个项目仍然没有发布 1.0。
    • 按照你的说法,听起来 KDE 是 Qt 的唯一主要用户。实际上 Qt 应用程序包括 Google Earth、Opera 和 Skype。
    【解决方案5】:

    试试 QT,它可以在 Ubuntu 上运行,并且背后有很多开发工具和文档。

    例如tutorial,或另一个tutorial或另一个tutorial

    【讨论】:

      【解决方案6】:

      我建议Juce。它优雅、跨平台、快速、编写良好、几乎完全没有错误,并且与它运行的每个平台上的最后一个像素相同。的数量已知的错误几乎总是零,因为提交错误报告时,作者会删除所有内容并修复它! The Register 不久前写了一篇关于它的文章,对这个库进行了很好的概述。

      【讨论】:

      • 几年前我用过这个库,它写得很好,值得推荐。我们的应用程序在 Windows XP 和 Linux 上完全相同。
      【解决方案7】:

      我个人可以保证 qt 的一般易用性,以及特定于 linux 的开发。看看这个 :)

      【讨论】:

        【解决方案8】:

        最简单的方式绝对是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();
        }
        

        【讨论】:

        • +1 刚刚发现并 100% 同意:这是迄今为止创建 GUI 应用程序最简单、最简单的方法;此外,您不需要/必须/使用 Upp-classes/templates 并且可以轻松使用 boost :-) 我尝试了这个问题和其他地方提到的所有知名 IDE,最终得到了 ultimate++ 和 code::blocks(最简单的对于 CLI 开发)
        猜你喜欢
        • 2013-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        • 2021-07-03
        • 2010-12-09
        • 1970-01-01
        相关资源
        最近更新 更多