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

时间:2022-07-25
本文章向大家介绍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_() 

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