【发布时间】:2023-01-19 03:45:50
【问题描述】:
制作 Linux C++ GUI 应用程序的最简单方法是什么?我正在使用 GNOME 和 ubuntu 8.10。
【问题讨论】:
标签: c++ user-interface ubuntu gnome
制作 Linux C++ GUI 应用程序的最简单方法是什么?我正在使用 GNOME 和 ubuntu 8.10。
【问题讨论】:
标签: c++ user-interface ubuntu gnome
最简单的方法是使用 GUI GUI 生成器。
Glade 用于 GTK。
QT Designer 用于 QT。
wxDesigner和wxFormBuilder为wxWidgets。
更新:我应该提到这些输出 C++ 等等?
【讨论】:
我个人更喜欢 QT,因为我更喜欢使用信号/槽机制,并且发现使用它可以轻松快速地开发应用程序。您的一些其他选择是 wxWidgets 和 GTK+。
【讨论】:
gtkmm 是绑定到 gtk 的 c++,它应该可以正常工作
【讨论】:
只是为了清楚到目前为止提到的工具包(GTK+、QT 和 wxWidgets)
GTK+ 是 GNOME 使用的工具包
QT 是 KDE 使用的工具包
wxWidget 旨在成为那些(和其他)之上的抽象,以减少桌面环境的特定性。
另一个值得一看的工具包是EFL E17 使用的工具包,虽然这个桌面环境的冰川开发速度可能会让你望而却步,但我听说它的设计不错。请注意,来自 Enlightenment 项目的某些组件(例如 imlib2)已被其他项目使用多年。
【讨论】:
我建议Juce。它优雅、跨平台、快速、编写良好、几乎完全没有错误,并且与它运行的每个平台上的最后一个像素相同。的数量已知的错误几乎总是零,因为提交错误报告时,作者会删除所有内容并修复它! The Register 不久前写了一篇关于它的文章,对这个库进行了很好的概述。
【讨论】:
我个人可以保证 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();
}
【讨论】: