• python---剪贴板


     1 import sys
     2 from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QTextBrowser, QPushButton, QGridLayout
     3 
     4 class Demo(QWidget):
     5     def __init__(self):
     6         super(Demo, self).__init__()
     7         self.text_edit = QTextEdit(self)
     8         self.text_browser = QTextBrowser(self)
     9 
    10         self.clipboard = QApplication.clipboard()  # 实例化剪贴板
    11         self.clipboard.dataChanged.connect(lambda: print('数据变化了'))#当数据发生变化时发出信号
    12 
    13         self.copy_btn = QPushButton('复制', self)
    14         self.copy_btn.clicked.connect(self.copy_func)
    15 
    16         self.paste_btn = QPushButton('粘贴', self)
    17         self.paste_btn.clicked.connect(self.paste_func)
    18 
    19         self.g_layout = QGridLayout()
    20         self.g_layout.addWidget(self.text_edit, 0, 0, 1, 1)
    21         self.g_layout.addWidget(self.text_browser, 0, 1, 1, 1)
    22         self.g_layout.addWidget(self.copy_btn, 1, 0, 1, 1)
    23         self.g_layout.addWidget(self.paste_btn, 1, 1, 1, 1)
    24         self.setLayout(self.g_layout)
    25 
    26     def copy_func(self):
    27         self.clipboard.setText(self.text_edit.toPlainText())#给剪贴板设置文本(纯文本)
    28 
    29     def paste_func(self):
    30         #方法一
    31         self.text_browser.setText(self.clipboard.text())
    32         #self.clipboard.text()  返回剪贴板的文本
    33         #方法二
    34         mime = self.clipboard.mimeData()  #返回剪贴板的mime数据。是对象
    35         if mime.hasText():
    36             self.text_browser.setText(mime.text())
    37             # mime.text() 获取mime对象中的文本
    38 
    39 if __name__ == '__main__':
    40     app = QApplication(sys.argv)
    41     demo = Demo()
    42     demo.show()
    43     sys.exit(app.exec_())

    当然以上只是针对文本内容,当然还可以复制图片等文件,而剪贴板当然也有相应的方法,以下列出常用的:

    方法                          解释
    clear()                      清空剪贴板内容
    mimeData()             获取剪贴板上的MIME类型数据
    setMimeData()        将MIME类型数据放到剪贴板中
    pixmap()                  获取剪贴板上的QPixmap类型数据
    setPixmap()            将QPixmap类型数据放到剪贴板中
    image()                   获取剪贴板上的QImage类型数据
    setImage()              将QImage类型数据放到剪贴板中
    text()                       获取剪贴板上的文本
    setText()                 将文本放到剪贴板中

     self.mime_data.setHtml(self.text_edit.textCursor().selection().toHtml())   给MIME对象设置文本--带颜色格式的文本

    self.clipboard.setMimeData(self.mime_data)      给剪贴板设置MIME数据

  • 相关阅读:
    html+vue.js 实现分页可兼容IE
    Display、Visibility 和 Opacity 的区别
    Vue项目刷新页面 IE/360 浏览器 input输入框不清空问题处理
    Webpack入门
    linux下Tomcat日志文件catalina.out的切割
    无监控,不运维
    windows与linux下jdk+tomcat安裝
    java面向对象(提高篇)
    java面向对象(汇总)
    JAVA工程师简历模板
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10372955.html
Copyright © 2020-2023  润新知