小编Dej*_*oop的帖子

PyQt5 - 在 Ubuntu 16.04 上使用 .setMimeData() 时出现“无法设置 X11 选择所有者”错误

使用 PyQt5 时不断出现此错误clipboard.setMimeData()

QXcbClipboard::setMimeData: Cannot set X11 selection owner

def copy(index, app):
    clipboard = app.clipboard()
    Mode = clipboard.Clipboard

    initialMimeData = clipboard.mimeData(mode = Mode)

    import pyautogui
    pyautogui.hotkey('ctrl', 'c')

    mimeData = clipboard.mimeData(mode = Mode)
    clipboards[index-1]["Data"] = mimeData
    clipboard.setMimeData(initialMimeData, mode = Mode) #getting the error here
Run Code Online (Sandbox Code Playgroud)

我在 Ubuntu 16.04 上运行这个。为什么会出现此问题以及如何解决它?

python qt5 pyqt5 pyautogui ubuntu-16.04

8
推荐指数
0
解决办法
1719
查看次数

Python - 使用子进程获取和设置剪贴板数据

我最近从这篇文章中发现了一种通过子进程在python中获取和设置剪贴板数据的方法,这正是我对项目所需要的.

import subprocess

def getClipboardData():
    p = subprocess.Popen(['pbpaste'], stdout=subprocess.PIPE)
    retcode = p.wait()
    data = p.stdout.read()
    return data

def setClipboardData(data):
    p = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE)
    p.stdin.write(data)
    p.stdin.close()
    retcode = p.wait()
Run Code Online (Sandbox Code Playgroud)

但它似乎只适用于OS X操作系统.如何在windows,mac和linux中重新创建此功能?

UPDATE

使用我的原始代码和bigbounty提供的windows解决方案,我想我现在只需要一个Linux解决方案.也许是利用xclip或xsel的东西?

python clipboard subprocess multiplatform python-3.x

7
推荐指数
1
解决办法
2437
查看次数