一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

python3+PyQt5实现使用剪贴板做复制与粘帖示例

时间:2017-03-06 编辑:简简单单 来源:一聚教程网

 代码如下复制代码

#!/usr/bin/env python3

importos

importsys

fromPyQt5.QtCoreimport(QMimeData, Qt)

fromPyQt5.QtWidgetsimport(QApplication, QDialog, QGridLayout, QLabel,

    QPushButton)

fromPyQt5.QtGuiimportQPixmap

 

classForm(QDialog):

 

  def__init__(self, parent=None):

    super(Form,self).__init__(parent)

 

    textCopyButton=QPushButton("&Copy Text")

    textPasteButton=QPushButton("Paste &Text")

    htmlCopyButton=QPushButton("C&opy HTML")

    htmlPasteButton=QPushButton("Paste &HTML")

    imageCopyButton=QPushButton("Co&py Image")

    imagePasteButton=QPushButton("Paste &Image")

    self.textLabel=QLabel("Original text")

    self.imageLabel=QLabel()

    self.imageLabel.setPixmap(QPixmap(os.path.join(

        os.path.dirname(__file__),"images/clock.png")))

 

    layout=QGridLayout()

    layout.addWidget(textCopyButton,0,0)

    layout.addWidget(imageCopyButton,0,1)

    layout.addWidget(htmlCopyButton,0,2)

    layout.addWidget(textPasteButton,1,0)

    layout.addWidget(imagePasteButton,1,1)

    layout.addWidget(htmlPasteButton,1,2)

    layout.addWidget(self.textLabel,2,0,1,2)

    layout.addWidget(self.imageLabel,2,2)

    self.setLayout(layout)

 

    textCopyButton.clicked.connect(self.copyText)

    textPasteButton.clicked.connect(self.pasteText)

    htmlCopyButton.clicked.connect(self.copyHtml)

    htmlPasteButton.clicked.connect(self.pasteHtml)

    imageCopyButton.clicked.connect(self.copyImage)

    imagePasteButton.clicked.connect(self.pasteImage)

 

    self.setWindowTitle("Clipboard")

 

 

  defcopyText(self):

    clipboard=QApplication.clipboard()

    clipboard.setText("I've been clipped!")

 

 

  defpasteText(self):

    clipboard=QApplication.clipboard()

    self.textLabel.setText(clipboard.text())

 

 

  defcopyImage(self):

    clipboard=QApplication.clipboard()

    clipboard.setPixmap(QPixmap(os.path.join(

        os.path.dirname(__file__),"images/gvim.png")))

 

  defpasteImage(self):

    clipboard=QApplication.clipboard()

    self.imageLabel.setPixmap(clipboard.pixmap())

 

 

  defcopyHtml(self):

    mimeData=QMimeData()

    mimeData.setHtml("Bold and Red")

    clipboard=QApplication.clipboard()

    clipboard.setMimeData(mimeData)

 

 

  defpasteHtml(self):

    clipboard=QApplication.clipboard()

    mimeData=clipboard.mimeData()

    ifmimeData.hasHtml():

      self.textLabel.setText(mimeData.html())

 

if__name__=="__main__":

  app=QApplication(sys.argv)

  form=Form()

  form.show()

  app.exec_()

运行结果:

热门栏目