zoukankan      html  css  js  c++  java
  • 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数据

  • 相关阅读:
    使用javamail发信过程中的一些问题及解决方法
    互联网标准
    发送邮件报错javax.activation.UnsupportedDataTypeException: no object DCH for MIME type text/plain; charset=UTF-8
    在用split分割处理csv数据时,使用不包含在双引号中的逗号进行分割
    java 网络代理官方资料
    ORA-28000错误的原因及解决办法
    日文软件下载站点
    Azure 入门
    ElasticSearch 5学习(10)——结构化查询(包括新特性)
    ElasticSearch 5学习(9)——映射和分析(string类型废弃)
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10372955.html
Copyright © 2011-2022 走看看