QClipboard在GNU/Linux下工作很有趣 !/usr/bin/python 从PyQt4.QtGui导入QApplication、QClipboard 导入系统 app=QApplicationsys.argv QApplication.clipboard.setText'yo',mode=QClipboard.clipboard 输入等待输入 当我将mode=QClipboard.Clipboard设置为默认模式时,它不起作用。它将旧数据保留在剪贴板和选择剪贴板中。 当我将其更改为mode=QClipboard.Selection(特定于X的选项)时,它将用yo替换当前选项和主剪贴板。

QClipboard在GNU/Linux下工作很有趣 !/usr/bin/python 从PyQt4.QtGui导入QApplication、QClipboard 导入系统 app=QApplicationsys.argv QApplication.clipboard.setText'yo',mode=QClipboard.clipboard 输入等待输入 当我将mode=QClipboard.Clipboard设置为默认模式时,它不起作用。它将旧数据保留在剪贴板和选择剪贴板中。 当我将其更改为mode=QClipboard.Selection(特定于X的选项)时,它将用yo替换当前选项和主剪贴板。,linux,pyqt4,Linux,Pyqt4,问:为什么main thing模式默认为QClipboard.Clipboard毕竟不起作用,而应该只在条件下起作用的东西QClipboard.supportsSelection起作用?我怎样才能使它正常工作?我无法在我的Linux系统上重现这个问题:它对我来说都很好 但是,用户可能会说剪贴板在X11上需要一个事件循环: X11剪贴板是事件驱动的,即剪贴板不会 如果事件循环未运行,则正常运行。类似地,它也是 建议存储或检索剪贴板的内容 直接响应用户输入事件,例如鼠标按钮或按键 新闻和发布。不应存

问:为什么main thing模式默认为QClipboard.Clipboard毕竟不起作用,而应该只在条件下起作用的东西QClipboard.supportsSelection起作用?我怎样才能使它正常工作?

我无法在我的Linux系统上重现这个问题:它对我来说都很好

但是,用户可能会说剪贴板在X11上需要一个事件循环:

X11剪贴板是事件驱动的,即剪贴板不会 如果事件循环未运行,则正常运行。类似地,它也是 建议存储或检索剪贴板的内容 直接响应用户输入事件,例如鼠标按钮或按键 新闻和发布。不应存储或检索剪贴板 响应计时器或非用户输入事件的内容

因此,您可以通过强制处理以下排队事件,使您的示例在您的系统上运行:

app.clipboard().setText('yo')
app.processEvents()
input()
显然,这是一种人为的解决方案,正确的方法是启动事件循环并遵循文档中的建议