Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
寻求在KDE 3上的台式机之间移动Qt 4和Java应用程序的建议_Java_Qt4_Desktop_Kde_Qt3 - Fatal编程技术网

寻求在KDE 3上的台式机之间移动Qt 4和Java应用程序的建议

寻求在KDE 3上的台式机之间移动Qt 4和Java应用程序的建议,java,qt4,desktop,kde,qt3,Java,Qt4,Desktop,Kde,Qt3,我们有一个(也许?)不寻常的情况,我们有很多应用程序构建在Qt4上,一些应用程序构建在Java(Swing)上,但我们使用的是KDE3。我们使用的是Red Hat Enterprise Linux 5,由于没有KDE 4的正式版本,因此升级到KDE 4是不可能的选择 在我们的项目中,我们的客户需要的一件事是能够在不同的桌面上打开某些应用程序。在对KDE3API进行筛选之后,似乎主要的方法是使用KWin::setOnDesktop函数 不幸的是,使用该函数需要与KDE的库(libkdecore)链

我们有一个(也许?)不寻常的情况,我们有很多应用程序构建在Qt4上,一些应用程序构建在Java(Swing)上,但我们使用的是KDE3。我们使用的是Red Hat Enterprise Linux 5,由于没有KDE 4的正式版本,因此升级到KDE 4是不可能的选择

在我们的项目中,我们的客户需要的一件事是能够在不同的桌面上打开某些应用程序。在对KDE3API进行筛选之后,似乎主要的方法是使用KWin::setOnDesktop函数

不幸的是,使用该函数需要与KDE的库(libkdecore)链接,并且可以包含KDE3头文件,其中包含大量Qt3内容。因此,我们实际上不能让任何Qt4应用程序直接与KDE对话

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


在这种情况下,有人对如何在台式机之间移动窗口有什么建议吗?谢谢你的建议。

KDE4还有一个setOnDesktop方法,可以与KDE3的KWin窗口管理器(或任何其他sane窗口管理器)进行对话。在课堂上。您可以在应用程序中使用它

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