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

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_() 

效果图如下:

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

喜欢的点个赞❤吧!

上一篇:在Activity,Service,Window中监听Home键和返回键的一些思考,如何把事件传递出来的做法!


下一篇:Blender 精确建模3D打印注意事项