PySide6实时检测剪贴板(QClipboard)并更新文本

PySide6实时检测剪贴板(QClipboard)并更新文本

注意事项

  1. 代码已经在Windows 10 工作站版与Linux Gnome环境上做过测试
  2. 差异Windows10工作站版运行代码无法读取上一次剪贴板内容(程序运行以后,可以获取)

代码示例

单行文本框 QLineEdit实现
py 复制代码
# coding = utf-8

from PySide6.QtWidgets import QMainWindow,QLineEdit,QApplication
from PySide6.QtGui import QGuiApplication
import sys

class TestCliboard(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi()

    def setupUi(self):
        self.setWindowTitle("实时检测并更新文本")
        self.resize(400,300)

        # 实例化 剪贴板对象
        self.clipboard = QGuiApplication.clipboard()
        
        # 嵌入单行文本
        self.lineText =  QLineEdit()
        self.setCentralWidget(self.lineText)

        # 触发剪贴板数据改变信号时更新文本
        self.clipboard.dataChanged.connect(self.updateText)

    
    def updateText(self):
        clipboardText = self.clipboard.text()
        if clipboardText:
            self.lineText.setText(clipboardText)
        else:
            self.lineText.setText("剪贴板内没有文本!")




if __name__ == "__main__":
    app = QApplication(sys.argv)
    testCliboard = TestCliboard()
    testCliboard.show()
    sys.exit(app.exec())
标签QLabel实现
py 复制代码
# coding = utf-8
# coding = utf-8
from PySide6.QtWidgets import QWidget,QLabel,QVBoxLayout,QApplication
from PySide6.QtGui import QGuiApplication
import sys

class BoardText(QWidget):

    def __init__(self):
        super().__init__()
        self.setupUi()

    def setupUi(self):
        self.setWindowTitle("更新与显示剪贴板内容")
        self.resize(400,100)

        vbox = QVBoxLayout(self)
        self.textLable =  QLabel(self)
        vbox.addWidget(self.textLable)
        
        self.clipboard_ = QGuiApplication.clipboard()
        self.clipboard_.dataChanged.connect(self.updateLabelText)
        
    def updateLabelText(self):
        mimeData_ = self.clipboard_.mimeData()
        hasText = mimeData_.hasText()
        clipboardText = mimeData_.text()

        if hasText:
            self.textLable.setText(clipboardText)
        else:
            self.textLable.setText("剪贴板内没有文本!")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    boardText = BoardText()
    boardText.show()
    sys.exit(app.exec())

效果演示




参考

剪贴板类(QtGui.QClipboard)

剪切板数据改变检测信号(QtGui.QClipboard.dataChanged()

主窗口设置中心控件(QMainWindow.setCentralWidget()

基础窗口布局设置

相关推荐
quantdash_cc5 分钟前
量化数据源怎么选:稳定性、实时性和数据完整性到底该如何权衡?
开发语言·python·数据分析·量化交易·股票数据·quantdash
hfywmsj26 分钟前
广州餐饮铺位招租数据分析:选址权重模型与租金评估实操
人工智能·python·数据分析·广州餐饮铺位招租
cui_ruicheng35 分钟前
FastAPI 应用开发(一):FastAPI、路由参数与交互式 API 文档
python·fastapi
小柯南敲键盘1 小时前
跨境电商翻译工具,AI批量图片及视频字幕翻译
大数据·人工智能·python·音视频
天天喝旺仔1 小时前
Python asyncio 异步编程实战:用协程与事件循环构建高性能网络服务
服务器·网络·python·性能优化·fastapi
2601_962298091 小时前
零基础学大数据分析全栈
hadoop·python·spark·实战·大数据分析
quantdash_cc2 小时前
Python 股票 K 线数据质量校验:字段、缺失值、重复行和价格异常
开发语言·python·数据分析·量化交易·股票数据·quantdash
长空任鸟飞_阿康2 小时前
三、《从零手撸 Agent》 · system prompt 与核心参数:调好你的旋钮
人工智能·python·ai·prompt
一晌小贪欢2 小时前
python-第29天:Python面向对象之多态与抽象类
开发语言·python·数据可视化·面向对象·python办公·python多态
2601_962381583 小时前
ArcGIS+Python+AI赋能高标准农田建设项目审计提质增效
python·arcgis·ai·高标准农田审计·大数据审计