你需要使用QClipboard类。
但我不确定是否理解问题。"任意位置"是什么意思?您想在Qt应用程序之外粘贴剪贴板吗?(我认为X11和ICCCM和EWMH不支持这样做)。
我相信你必须要使用特定于平台的方法来解决这个问题。
首先,你需要以某种方式获取先前活动应用程序的ID/句柄。在Windows中,可以使用 GetWindow()
来完成,如 此处 所述。在EWMH窗口管理器中,可以使用 _NET_CLIENT_LIST_STACKING 属性。
其次,您需要要求该窗口执行粘贴操作。同样,在Windows中,使用SendMessage(window, WM_PASTE, 0, 0)
([SendMessage]和WM_PASTE的文档)。实际上,我不确定您如何在X11中完成此操作。
以上方法可能有大约70,000个案例无法奏效,但也许可以帮助您入门?