代码之家  ›  专栏  ›  技术社区  ›  xRobot

创建GUI的最佳库(gtk、qt、win32 api等)?[关闭]

  •  17
  • xRobot  · 技术社区  · 14 年前

    在您看来,在 ? 使用gtk或win32 api?

    你推荐GTK用于windows吗?对?不?为什么?

    10 回复  |  直到 14 年前
        1
  •  16
  •   EboMike    14 年前

    让我们看看。

    • Win32是非常低级的,基于C的,使用起来很笨拙。
    • .NET(或C++)与.NET可能是Windows特定开发的首选。
      • 甚至有半有限的方式将代码移植到其他平台(Mono)。
    • 对不起,你说C++。
    • QT相对独立于平台。
    • 当然,GTK+,虽然我个人没有多少经验。

    就我个人而言,如果我做一些特定于Windows的事情,我会使用.NET——Visual Studio中的工具非常强大,而且是一个很好的全方位套件。

        2
  •  22
  •   Burning Prodigy    14 年前

    如果你只为windows开发gui,我强烈推荐WIN 32 Api。我在GTK+、pyGtk、FLTK中做了很多应用,并学习了Qt、MFC和SmartWin++。相信我,但我最喜欢Win32 Api。它可能有一个陡峭的学习曲线,但对于创建本机windows应用程序来说,它是最快和最好的。程序越复杂,与其他工具包相比,Win32 Api就越简单。在Win32 Api中可以做一些事情,而在其他任何工具包中都做不到。

    开始时间(带有菜单和按钮的简单图形用户界面): GTK+=7秒; Qt=4秒; WxWidgets=3.32秒; FLTK=1秒; Win32 Api=0.34秒;

    占用空间: Qt=4.5毫巴; WxWidgets=4.5 mb; FLTK=54kb; Win32 Api=6.5kb;

        3
  •  13
  •   Christian    14 年前

    您真的有很多GUI工具包/框架可供选择:Qt、wxWidgets、GTK+/gtkmm、WinAPI、MFC、.NET WinForms/WPF。。。那些只是流行的。

    既然你把自己限制在C++上,我就要罢工.NET,因为.NET上的C++是用来作为非托管和托管世界之间的连接的。这并不意味着你不能将它用于其他类型的开发,但是考虑到笨拙的语法和无数的陷阱,我不会使用它。此外,VS的WinForms代码生成器将表单的代码放入头文件。。 brrrr公司

    正如其他人所说,WinAPI是用C语言编写的,速度快,功能强,但层次低,不易编程和学习。MFC是一个选项,因为它是用C++编写的,比WiAPI更容易使用,而且非常强大。然而,它已经过时了(主要是由于.NET的存在)。

    对于Windows 由于您没有获得本机windows外观,因此在开发人员计算机上进行设置相当烦人,而且还需要在用户计算机上安装大量依赖项。这实际上是一个遗憾,因为特别是gtkmm有一个非常漂亮的类层次结构和设计。可能是设计最好的GUI库之一:)

        4
  •  6
  •   fangzhzh    5 年前

    win32 api太复杂,MFC太烦人。 我还没试过GTK,很抱歉我什么都不知道。

    编辑2019:看起来所有这些选项都是 outdated ,跨平台解决方案如何, react-native windows , electron

        5
  •  5
  •   M3t0r    14 年前

    两者都是针对c的,但是gtk(gtkmm)有一个很好的包装器。

    win32、mfc、.net大多仅限于ms visual studio,而gtk很难与vs一起使用。

    您应该看看win32、.net、gtkmm和qt。试着用它们编写并编译一个简单的hello world程序

    win32的上方:

    • 本机windows代码

    缺点:

    • 没有类,只有带句柄的c(非常糟糕)

    gtk的上侧(mm):

    • 易学/编程
    • 有据可查

    缺点:

    • 安装开发文件有点困难
        6
  •  4
  •   Bowie Owens    14 年前

    我过去使用过GTK+作为多平台应用程序。我发现学习和使用起来相对简单。在我看来,GTK+的主要优点是您可以将应用程序移植到其他窗口系统。主要的缺点是它看起来不像其他windows应用程序。如果您正在进行跨平台工作,或者已经非常熟悉GTK+(而且没有时间学习新的工具包),我建议您使用它。

        7
  •  4
  •   Ralf    14 年前

    就我个人而言,我更喜欢Qt,但这真的取决于你想制作什么样的用户界面。

    针对Win32:

    • 如果你走这条路,我推荐一本像 Petzold

    专业Qt:

    • 漂亮的贵妇人

    • 信号和插槽机制通知用户界面事件,如“按钮点击”等。

    • 良好的布局系统

    • 与Visual Studio IDE集成

    • 现代面向对象的c++代码,易于理解和使用

    • 相对宽松的许可(LGPL)

    • Qt设计器-可用于表单设计的所见即所得设计工具

    • 线程、数据库访问等

    • 使用MOC编译器的中间步骤

    专业WPF:

        8
  •  3
  •   Seva Alekseyev    14 年前

    如果您关心的是Linux(或Mac)兼容性,那么Qt。否则32胜。

        9
  •  1
  •   bbosak    14 年前

    您可能想试试Winforms或WPF。如果您只限于使用C/C++,则可以使用/CLR选项嵌入.NET代码,编译器可以为WiFrm或WPF嵌入.NET代码。 资料来源:

    http://msdn.microsoft.com/en-us/library/k8d11d4s(VS.71).aspx
    http://msdn.microsoft.com/en-us/library/ms754130.aspx
    http://msdn.microsoft.com/en-us/library/system.windows.forms.form.aspx

        10
  •  0
  •   Vantomex    14 年前

    对于独立于平台的开发,我建议使用Qt而不是当前的GTK。GTK2的绘制速度比Qt和Win32都要慢。如果你喜欢土生土长的感觉, wxWidgets 是为你做的。