【问题标题】:What is the downside of having a standard GUI library for C++? [closed]为 C++ 提供标准 GUI 库的缺点是什么? [关闭]
【发布时间】:2013-07-12 12:20:21
【问题描述】:

对于 C++ 中的 GUI 编程,我们可以在太多的库中进行选择,例如 QtGtkmmwxWidgetsFLTK 还有一个已经存在的:Nana

Nana C++ 库使用现代 C++ (C++11) 语言功能,如 lambda、模板等,并且似乎与 C++ 标准库兼容。

如果一个 GUI 库与 C++ 标准库 100% 兼容,那么为什么我们不能将它用于下一个 C++ 标准(C++14 或 C++17)?

库要在 C++ 标准库中需要哪些条件? 如果条件没有定义,那么我们就注定永远处于文本的黑洞中,它会伤害你的心! 否则如果条件被定义,那么我在哪里可以请求图书馆在下一个 C++ 标准?

【问题讨论】:

  • 至于您的问题,“我在哪里可以请求库符合下一个 C++ 标准?”我建议您编写一个并尝试将其添加到 Boost 中。如果您能通过该挑战,那么您很有可能获得委员会的批准并被纳入标准。
  • @JohnDibling:谢谢 :) 我找到了尝试过这个的人:lists.boost.org/Archives/boost/2012/06/194393.php

标签: c++ user-interface standard-library nana


【解决方案1】:

Bjarne Stroustrup 有already answered 这个问题:

为什么 C++ 没有 GUI?

C++ 有许多商业和开源 GUI(例如 Gtkmm、SmartWin++、 V C++ GUI、FLTK 和 Qt)。特别是每个平台供应商 提供了一个 C++ 库来访问他们的 GUI。问题是它 没有标准的 GUI,这确实是一个主要问题。笔记 提供 GUI 既是技术问题,也是政治问题。那里 有很多有很多用户的 GUI,通常他们不会喜欢 其他一些要声明为标准的 GUI。无论如何,标准 委员会没有资源来构建一个新的更好的 GUI。

【讨论】:

  • 谢谢,那么他的意思是我们不需要标准的 GUI,因为我们有太多非标准的 GUI!
  • 嗯,我的收获是没有紧迫的需求,因为有很多图书馆。但他们不这样做的真正原因是他们没有时间或资源。
  • 我认为 Stroustrup 对这个“主要问题”是“既是……又是政治问题”是有礼貌的。
【解决方案2】:

你会如何在心脏起搏器上画一个按钮?

你应该说:

或GUI编程Windows或Linux下用C++,我们可以选择 在太多的库之间,例如 Qt、Gtkmm、wxWidgets、FLTK 和 还有一个已经存在:娜娜。

C++ 与操作系统无关。想象一下在一个根本没有 gui 的平台上如何支持这样的库。就像一个微控制器,或者一些嵌入式硬件。

永远不要说永远,但我绝不会期望像您提到的那样的 GUI 库会被添加到 C++ 标准中。

如果一个 GUI 库与 C++ 标准库 100% 兼容,那么 为什么我们不能将它用于下一个 C++ 标准(C++14 或 C++17)?

因为这些 GUI 库还使用特定于平台和操作系统的功能来完成它们的工作。

【讨论】:

  • 但我们将在 C++ 标准库中拥有特定于操作系统的文件系统功能。
  • 从某种意义上说,C++ 已经有了一个 GUI 库。
  • 在一些特殊设备中我们也没有终端或任何显示屏。如果一个设备没有显示按钮的能力,那么我们就不需要使用这个功能,但这并不意味着我们根本不需要这个功能!
  • 功能齐全的 GUI 框架非常复杂。例如,GTK+ 可以将按钮位置调整为从右到左的语言环境,支持复杂的 unicode 渲染以及一些富文本功能(任何文本都可以着色、粗体、斜体、结合 LTR 和 RTL 脚本等),几乎任何嵌套允许使用小部件(尽管将按钮放在另一个按钮中没有意义),并且可以与窗口管理器中的低级功能进行交互;但是它缺少很多功能。如果您的“标准 GUI”只能在矩形窗口中显示矩形按钮,那么不会有多少人会使用它。
  • 我认为原因在于 GUI 的主观性,每个人都有自己的喜好。
猜你喜欢
  • 1970-01-01
  • 2017-05-31
  • 2017-08-01
  • 1970-01-01
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-19
相关资源
最近更新 更多