L'extrait de code suivant ne semble pas affecter le presse-papiers du système: selon la documentation QT, voici la copie de texte dans le presse-papiers, P> Pourquoi ne travaille-t-il pas? p> Googling tourné Ceci up. p> Il suggère d'ajouter cela après le code ci-dessus: p> mais celui-ci se comporte impair: il ne se comporte que Texte dans le Presse-papiers après la sortie du programme. De plus, certaines personnes dans ce lien ont signalé que cela ne fonctionne pas avec Linux. P> Nevermind, je faisais quelque chose de mal d'autre où, au lieu de lier le logement de copie à Le bouton Copie, je l'ai connecté au bouton "Quit". P> P> Mise à jour: h3>
4 Réponses :
Je sais que vous n'utilisez pas Windows, mais peut-être que cela vous donnera quelques idées ... J'ai utilisé cela dans un programme PYQT pour copier des URL dans le Presse-papiers:
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.'
Je suis sur Windows en réalité (principalement, bien que je dispose d'une installation de Linuxmint)
Win32Clipboard semble être un excellent candidat à des mises à jour, en particulier un gestionnaire de contexte avec win32clippboard.open () comme my_clippboard: code> pour faire les pièces ouvertes, vides et fermer.
Vous pouvez essayer GTK.CliPboard de PyGTK . Je crois que c'est multi-plate-forme. P>
Cela pourrait faire partie de la raison pour laquelle vous rencontrez des problèmes avec Pyqt's l'objet de QClipboard: p>
qapplication qplippboard.clipboard () strong> p>
retourne un pointeur à l'application
Presse-papiers mondiaux. P>
Remarque: l'objet QApplication devrait
déjà être construit avant
Accéder au presse-papiers. P>
blockQuote>
La conclusion ci-dessus de la documentation citée est incorrecte. Selon le documentation PyQt de l'objet du QClipboard : p>
La classe QCliPboard permet d'accéder au presse-papiers du système de fenêtre. P>
blockQuote>
Il est pointant vers le presse-papiers em> Application em>, pas le presse-papiers du système. Vous devrez probablement utiliser autre chose que l'objet QCliPboard pour atteindre votre fin. Frappe> p>
@Chris Morgan, merci d'avoir souligné ça! Je suis retourné et j'ai mis à jour la réponse.
Vous devrez peut-être spécifier le mode .
Ce code a fonctionné pour moi sous Windows: P>
cb = QtGui.QApplication.clipboard() cb.clear(mode=cb.Clipboard ) cb.setText("Clipboard Text", mode=cb.Clipboard)
Désolé pour mon anglais. J'utilise Linux. J'ai écrit cette commande p>
qapplication.clipboard (). Settext ("Ceci est le Text 2 Clipboard") P>
Bonjour et bienvenue. Veuillez utiliser le style de code pour mettre en surbrillance votre code. udrop.com/947h/capture.png Aussi, il semble que l'affiche de la question originale déjà Utilisé ce que vous avez suggéré et plus loin, ajoutez une nouvelle partie à dire qu'il l'a déjà résolu et que le problème était ailleurs. Donc, la question a déjà été résolue résolue