最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python PyQt5實現(xiàn)拖拽與剪貼板功能詳解

 更新時間:2022年12月01日 15:07:20   作者:SongYuLong的博客  
這篇文章主要為大家詳細介紹了Python PyQt5如何實現(xiàn)拖拽與剪貼板功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

拖拽

基于MIME類型的拖拽數據傳輸時基于QDrag類的QMimeData對象管理的數據與其對應的MIME類型相關聯(lián)。

MimeData類函數允許檢測和使用方法的MIME類型

判斷函數設置函數獲取函數MIME類型
hasText()text()setText()text/plain
hasHtml()html()setHtml()text/html
hasUrls()urls()setUrls()text/uri-list
hasImage()imageData()setImageData()image/*
hasColor()colorData()setColorData()application/x-color

常用拖拽事件

事件描述
DragEnterEvent當執(zhí)行一個拖拽控件操作,并且鼠標指針進入該控件時被觸發(fā)
DragMoveEvent在拖拽操作進行時會觸發(fā)該事件
DragLeaveEvent當執(zhí)行一個拖拽控件操作,并且鼠標指針離開該控件時被觸發(fā)
DropEvent當拖拽操作在目標控件上被釋放時,觸發(fā)該事件
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt

class Combo(QComboBox):
    def __init__(self, title, parent):
        super(Combo, self).__init__(parent)
        self.setAcceptDrops(True)
    
    def dragEnterEvent(self, e):
        print(e)
        if e.mimeData().hasText():
            e.accept()
        else:
            e.ignore()
    
    def dropEvent(self, e):
        self.addItem(e.mimeData().text())

class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()
    
    def initUI(self):
        lo = QFormLayout()
        lo.addRow(QLabel("請把左邊的文本拖拽到右邊的下拉菜單中"))
        edit = QLineEdit()
        edit.setDragEnabled(True)
        com = Combo("Button", self)
        lo.addRow(edit, com)
        self.setLayout(lo)
        self.setWindowTitle("簡單的拖拽例子")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = Example()
    win.show()
    sys.exit(app.exec_())

剪貼板

QClipboard類提供了對系統(tǒng)剪貼板的訪問,可以在應用程序之間復制和粘貼數據。它的操作類似于QDrag類,并使用類似的數據類型。

QApplication類有一個靜態(tài)方法clipboard(),返回剪貼板對象的引用。任何類型的MimeData都可以從剪貼板復制或粘貼。

QClipboard常用方法

方法描述
clear()清除剪貼板的內容
setImage()將QImage對象復制到剪貼板中
setMimeData()將MIME數據設置為剪貼板
setPixmap()從剪貼板中復制Pixmap對象
setText()從剪貼板中復制文本
text()從剪貼板中檢索文本

QClipboard類中的常用信號

信號含義
dataChanged當剪貼板內容發(fā)生變化時觸發(fā)該信號
import os
import sys
from PyQt5.QtCore import QMimeData
from PyQt5.QtWidgets import (QApplication, QDialog, QGridLayout, QLabel, QPushButton)
from PyQt5.QtGui import QPixmap

class Form(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)
        imageCopyButton.clicked.connect(self.copyImage)
        imagePasteButton.clicked.connect(self.pasteImage)
        htmlCopyButton.clicked.connect(self.copyHtml)
        htmlPasteButton.clicked.connect(self.pasteHtml)

    def copyText(self):
        print(os.path.join(os.path.dirname(__file__)))
        clipboard = QApplication.clipboard()
        clipboard.setText("I've been clipped")

    def pasteText(self):
        clipboard = QApplication.clipboard()
        self.textLabel.setText(clipboard.text())
    
    def copyImage(self):
        clipboard = QApplication.clipboard()
        clipboard.setPixmap(QPixmap(os.path.join(os.path.dirname(__file__), "images/python.jpg")))

    def pasteImage(self):
        clipboard = QApplication.clipboard()
        self.imageLabel.setPixmap(clipboard.pixmap())
    
    def copyHtml(self):
        mimeData = QMimeData()
        mimeData.setHtml("<b>Bold and<font color=red>Red</font></b>")
        clipboard = QApplication.clipboard()
        clipboard.setMimeData(mimeData)

    def pasteHtml(self):
        clipboard = QApplication.clipboard()
        mimeData = clipboard.mimeData()
        if mimeData.hasHtml():
            self.textLabel.setText(mimeData.html())

            
if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = Form()
    win.show()
    sys.exit(app.exec_())

到此這篇關于Python PyQt5實現(xiàn)拖拽與剪貼板功能詳解的文章就介紹到這了,更多相關PyQt5拖拽 剪貼板內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • TensorFlow實現(xiàn)卷積神經網絡CNN

    TensorFlow實現(xiàn)卷積神經網絡CNN

    這篇文章主要為大家詳細介紹了TensorFlow實現(xiàn)卷積神經網絡CNN,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python XlsxWriter模塊創(chuàng)建aexcel表格的實例講解

    python XlsxWriter模塊創(chuàng)建aexcel表格的實例講解

    今天小編就為大家分享一篇python XlsxWriter模塊創(chuàng)建aexcel表格的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Vue中自定義指令的三個常用方法小結

    Vue中自定義指令的三個常用方法小結

    這篇文章主要為大家詳細介紹了Vue中自定義指令的三個常用方法,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以了解一下
    2024-02-02
  • 黑科技 Python腳本幫你找出微信上刪除你好友的人

    黑科技 Python腳本幫你找出微信上刪除你好友的人

    黑科技,Python腳本幫你找出微信上刪除你好友的人,有興趣的朋友可以閱讀一下
    2016-01-01
  • 基于Python編寫一個自動關機程序

    基于Python編寫一個自動關機程序

    這篇文章主要介紹了基于Python編寫的一個自動關機程序,文中的示例代碼講解詳細,對我們學習Python有一定的幫助,感興趣的同學可以學習一下
    2022-01-01
  • Python和JS反爬之解決反爬參數?signKey

    Python和JS反爬之解決反爬參數?signKey

    這篇文章主要介紹了Python和JS反爬之解決反爬參數?signKey,Python?反爬中有一大類,叫做字體反爬,核心的理論就是通過字體文件或者?CSS?偏移,接下來文章的詳細介紹,需要的小伙伴可以參考一下
    2022-05-05
  • Python利用魔法方法玩轉對象

    Python利用魔法方法玩轉對象

    Python中魔法方法(magic method)其實就是那些被雙下劃線包圍的方法,這些魔法方法為類添加了**“魔力”,讓我們可以在面向對象編程中用更加簡潔的代碼來操作對象,下面我們就來具體了解一下如何利用魔法方法玩轉對象吧
    2023-12-12
  • python 遍歷列表提取下標和值的實例

    python 遍歷列表提取下標和值的實例

    今天小編就為大家分享一篇python 遍歷列表提取下標和值的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python Django框架介紹之模板標簽及模板的繼承

    Python Django框架介紹之模板標簽及模板的繼承

    今天給大家?guī)鞵ython Django框架的相關知識,文中對模板標簽及模板的繼承介紹的非常詳細,對正在學習python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Python?argparse庫的基本使用步驟

    Python?argparse庫的基本使用步驟

    argparse庫是python下的一個命令行參數管理庫,支持int、str、float、bool、數組等5種基本數據類型,這篇文章主要介紹了Python?argparse庫的基本使用,需要的朋友可以參考下
    2022-07-07

最新評論

正安县| 巫溪县| 宿松县| 海安县| 咸宁市| 鞍山市| 望谟县| 海伦市| 璧山县| 鸡东县| 双桥区| 洮南市| 昭平县| 志丹县| 卢湾区| 南雄市| 玛纳斯县| 潼关县| 庆安县| 兰考县| 陆川县| 巫溪县| 乐东| 孙吴县| 泰宁县| 临湘市| 白银市| 霍州市| 高平市| 巴里| 勃利县| 东海县| 桦甸市| 如皋市| 九台市| 逊克县| 平定县| 疏附县| 师宗县| 开阳县| 镇坪县|