The following snippet of code doesn't seem to affect the system clipboard at all:
clipboard = QtGui.QApplication.clipboard()
clipboard.setText(text)
According to the Qt documentation, this is how you copy text to clipboard,
Why isn't it working?
Googling turned this up.
It suggests adding this after the above code:
event = QtCore.QEvent(QtCore.QEvent.Clipboard)
app.sendEvent(clipboard, event)
But this one behaves odd: it only copies the text to the clipboard after the program exits. Plus, some people in that link reported that this doesn't work with linux.
Nevermind, I was doing something wrong else where, instead of binding the copy slot to the copy button, I connected it to the "quit" button.
Sorry for my English. I use linux. I wrote only this command
QApplication.clipboard().setText("This is text 2 clipboard")
You may need to specify the mode.
This code worked for me on windows:
cb = QtGui.QApplication.clipboard()
cb.clear(mode=cb.Clipboard )
cb.setText("Clipboard Text", mode=cb.Clipboard)
I know you are not using Windows, but maybe this will give you some ideas... I used this in a PyQt program to copy URLs to the clipboard:
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.'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With