PyQt5自带的写入剪切板方法在clipboard.dataChanged.connect()里不生效,主要是为了避免死循环。
不过利用其它的写入剪切板方法放在里面就不会有影响了,比如pyperclip。
import pyperclip# 写入剪切板def setCopy(s):pyperclip.copy(s)
下面是pyqt5监听剪切板的演示代码。
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_()
效果图如下:
我找到改变两个字复制一下,就会触发两次,一次改变文本,另一次把剪切板内容的改变两个字变成不改变。
喜欢的点个赞❤吧!
PyQt5 技术篇-在clipboard.dataChanged.connect()里如何写入剪切板示例演示 pyqt5监听剪切板变动并写入剪切板内容