PyQt5 技术篇-在clipboard.dataChanged.connect()里如何写入剪切板示例演示,pyqt5监听剪切板变动并写入剪切板内容

2020-09-24 10:09:46 浏览数 (1)

PyQt5 自带的写入剪切板方法在 clipboard.dataChanged.connect() 里不生效,主要是为了避免死循环。 不过利用其它的写入剪切板方法放在里面就不会有影响了,比如 pyperclip

代码语言:javascript复制
import pyperclip

# 写入剪切板
def setCopy(s):
    pyperclip.copy(s)

下面是 pyqt5 监听剪切板的演示代码。

代码语言:javascript复制
from PyQt5.QtWidgets import *

app = QApplication([])
clipboard = app.clipboard()

# 当剪切板变动会执行该方法
def change_deal():
    data = clipboard.mimeData()
    
    # 获取剪切板内容
    text = data.text()
    # 当剪切板内容为"改变"时,我就写入剪切板
    if(text == "改变"):
        setCopy("不改变")
    else:
        print(text)

# 监听剪切板变动
clipboard.dataChanged.connect(change_deal)
app.exec_() 

效果图如下: 我找到改变两个字复制一下,就会触发两次,一次改变文本,另一次把剪切板内容的改变两个字变成不改变。

qt

0 人点赞