Wxwidgets 为什么wxWindows和PangoCairo一起使用?

Wxwidgets 为什么wxWindows和PangoCairo一起使用?,wxwidgets,pangocairo,Wxwidgets,Pangocairo,我可能已经脱离了这个循环,但是使用一个本机外观的GUI库,然后(如果您没有使用wxGTK的话)在另一个GUI库的文本渲染器中使用shoehorn,这看起来很奇怪。这是怎么回事 我想我理解你的意思。在Windows上使用GTK(和Pango Cairo),告诉wxWidgets在内部使用GTK,似乎是在复制窗口管理器。 这只是品味的问题。Windows中的GTK确实调用Windows API来进行窗口处理。但是一些用户喜欢GTK方式的窗口、菜单和其他控件,而不是本机windows方式,而wxWid

我可能已经脱离了这个循环,但是使用一个本机外观的GUI库,然后(如果您没有使用wxGTK的话)在另一个GUI库的文本渲染器中使用shoehorn,这看起来很奇怪。这是怎么回事

我想我理解你的意思。在Windows上使用GTK(和Pango Cairo),告诉wxWidgets在内部使用GTK,似乎是在复制窗口管理器。 这只是品味的问题。Windows中的GTK确实调用Windows API来进行窗口处理。但是一些用户喜欢GTK方式的窗口、菜单和其他控件,而不是本机windows方式,而wxWidgets提供了这一功能(当然,还有本机用法,保持本机外观)。
无论如何,Linux上的GTK在内部调用X11或Wayland来处理窗口和菜单。你也把这称为“复制”吗?

这个问题似乎源于一个错误的假设,所以很难回答,让我来解释一下事情的真相:


基于Cairo的
wxGraphicsContext
可以选择在MSW下使用,因为这允许在所有平台下生成完全相同的图形输出,这对于某些类型的应用程序非常重要。但是,默认情况下不使用它,您需要显式请求它,如果不使用,您将使用GDI+或Direct2D,这两种库都是完全本地的库。

我不确定问题是什么。你能说得更具体些吗。特别澄清“不使用wxGTK”部分。你是说wxQt吗?还是在Windows下使用wxGTK?或者韦兰?你能给出一个你想问的场景吗?如果你在使用WX,为什么要使用GTK中的库,而WX不一定是GTK?似乎在Windows窗体程序中使用Java TreeView。Linux中的wx在内部使用GTK和Pango Cairo。在Windows和OSX中,使用OS-API函数。完整地说,您还可以在Windows中将wx与GTK一起使用。您不需要自己使用Pango和Cairo,但是如果您愿意,您可以这样做。因此,使用PangoCairo和WX需要在非Linux上同时运行两个不同的窗口工具包。为什么这仅仅是为了文本处理?Pango有那么好吗?还有wxX11不使用GTK。但它没有wxGTK成熟。如果可能,wx只调用GTK命令,但在某些情况下,最好直接使用Pango(例如文本度量)。wx不仅仅是文本处理。