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_()
效果图如下:
我找到改变两个字复制一下,就会触发两次,一次改变文本,另一次把剪切板内容的改变两个字变成不改变。
喜欢的点个赞❤吧!