【发布时间】:2013-06-23 13:54:18
【问题描述】:
QWidget::winId 的文档指出(除其他事项外)“如果小部件是非本地的(外星人)并且在其上调用了 winId,则将为该小部件提供本地句柄。”
我不确定“外星人”在这种情况下是什么意思,但我现在选择忽略它。 :)
那么假设我的小部件现在有一个与之关联的有效本机句柄,那么我是否可以将该本机句柄传递给另一个进程并传入QWidget::find 并在第二个进程中获取一个有效的 QWidget 对象?
除了显示/隐藏它并将其附加到父小部件之外,我可能不需要在第二个过程中对小部件做太多其他事情。 (保证不会在第一个进程中附加到任何父窗口小部件,并且在第一个进程的上下文中永远不可见)。
如果以上所有方法都有效:
第二个进程对该小部件有多少控制权?
第一个进程是否会接收用户输入事件,就好像它是附加的一样 到第一个进程的 UI,第一个进程能否正常更新小部件?
詹姆斯
【问题讨论】:
-
您是否想从所有应用程序(包括非 Qt 应用程序)中获取 QWidget?我不知道这在非 Qt 应用程序上是否可行。
-
不,我有一个非常具体的案例,我可以完全控制有问题的两个 Qt 应用程序。