java - 寻求有关在 KDE 3 上的桌面之间移动 Qt 4 和 Java 应用程序的建议

标签 java qt4 desktop kde-plasma qt3

我们遇到了一个(也许?)不寻常的情况,我们有很多基于 Qt 4 构建的应用程序和一些基于 Java (Swing) 构建的应用程序,但我们使用的是 KDE 3。我们使用的是 Red Hat Enterprise Linux由于 KDE 4 没有官方版本,因此无法升级到 KDE 4。

在我们的项目中,客户要求的一件事是能够在不同的桌面上打开某些应用程序。在仔细研究了 KDE 3 API 后,似乎主要的方法是使用 KWin::setOnDesktop 函数。

不幸的是,使用该函数需要链接 KDE 的库 (libkdecore),并且您可以包含 KDE 3 头文件,其中包含一堆 Qt 3 内容。因此,我们实际上无法让任何 Qt 4 应用程序直接与 KDE 对话。

Java 应用程序的问题是获取 X11 窗口 id 是一件非常痛苦的事情,因为它需要通过 JNI 调用。 (有一个关于 Java 和 X11 交互的方便的 StackOverflow 页面 here 。)

有人对这种情况下如何在桌面之间移动窗口有任何建议吗?感谢您的任何想法。

最佳答案

KDE4 还有一个 setOnDesktop 方法,可以与 KDE3 的 KWin 窗口管理器(或任何其他正常的窗口管理器)对话。它位于 KWindowSystem类(class)。您可以在您的应用程序中使用它。

重点是 setOnDesktop 方法将使用底层 X11 协议(protocol)来完成这项工作。应用程序是用一种技术编写的,而窗口管理器是用另一种技术编写的,这并不重要。

关于java - 寻求有关在 KDE 3 上的桌面之间移动 Qt 4 和 Java 应用程序的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593947/

相关文章:

java - 在 Java 中,如何显式引用 `this` 类的静态成员?

java - 查找错误的CacheManager Spring ehcache

java - JPA:字节数组字段的 TypedQuery

c++ - 如何在 Qt QImage 中使用颜色 LUT

linux - 禁用 Gnome 3 通知/弹出窗口/集成通知

java - 在 Java 中使用带有多个参数的工厂模式

android - Qt 中的 GUI 或 Android 中的 GUI

c++ - 从 QT 中的自定义小部件插件公开子控件

c++ - 通过注入(inject)绘制到桌面

javascript - 简单的响应式图片方法