has*_*sen 9 python clipboard qt pyqt
以下代码片段似乎根本不会影响系统剪贴板:
clipboard = QtGui.QApplication.clipboard()
clipboard.setText(text)
Run Code Online (Sandbox Code Playgroud)
根据Qt文档,这是你如何将文本复制到剪贴板,
为什么不工作?
谷歌搜索变成这样了.
它建议在上面的代码之后添加:
event = QtCore.QEvent(QtCore.QEvent.Clipboard)
app.sendEvent(clipboard, event)
Run Code Online (Sandbox Code Playgroud)
但是这个表现很奇怪:它只在程序退出后将文本复制到剪贴板.此外,该链接中的一些人报告说这不适用于linux.
没关系,我做错其他的地方,而不是将复制槽绑定到复制按钮,我将它连接到"退出"按钮.
Zv_*_*oDD 11
您可能需要指定模式.
这段代码在Windows上对我有用:
cb = QtGui.QApplication.clipboard()
cb.clear(mode=cb.Clipboard )
cb.setText("Clipboard Text", mode=cb.Clipboard)
Run Code Online (Sandbox Code Playgroud)
我知道你没有使用 Windows,但也许这会给你一些想法......我在 PyQt 程序中使用它来将 URL 复制到剪贴板:
import win32clipboard
s = 'copy this to the clipboard'
try:
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText(s)
win32clipboard.CloseClipboard()
except:
print 'Could not copy clipboard data.'
Run Code Online (Sandbox Code Playgroud)