gpt4 book ai didi

java - 据说 `libX11` 不是线程安全的。这是否意味着我不能将 Java AWT 与其他也使用 X11 的东西(如 Qt)混合使用?

转载 作者:行者123 更新时间:2023-11-30 11:07:10 26 4
gpt4 key购买 nike

据说 libX11 不是线程安全的。这是否意味着如果我有一个已经使用 AWT(直接或通过 Swing 间接使用)的 Java 应用程序,我就不能使用除它之外的其他工具包(如 Qt,或其他使用 X11 的库)(在同一个过程)?

据我了解,这些工具包不会相互了解,会在 libX11 之上启动它们自己的事件处理线程,因此在多个线程中使用 libX11,这听起来有问题,因为 libX11 不是线程安全的。

或者 AWT 是否有一些我不知道的方法可以在同一进程中与 libX11 的其他用户同步?

最佳答案

如果您有单独的顶层窗口,混合工具包应该很容易。您也可以将它们混合在同一个窗口中,但这很棘手(您需要合并事件循环)并且很难看。

Qt Jambi implements its own event system based on Qt/C++. This event loop is separate from the one in other toolkits such as AWT/Swing or in SWT. As a concequence, it is not possible to have Jambi widgets and widgets from other toolkits in the same part of the user interface. Having a toplevel window running Jambi and another toplevel window running AWT/Swing does not run into this limitation.

Although it is possible to merge event loops for different toolkits, so that a QPushButton can inhabit a JSplitPane, it often not desired as this means that different parts of the same user inteface may have slightly different look&feel. Different repaint behaviour, fonts etc.

source

关于java - 据说 `libX11` 不是线程安全的。这是否意味着我不能将 Java AWT 与其他也使用 X11 的东西(如 Qt)混合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29017938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com