亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python GUI庫圖形界面開發(fā)之PyQt5控件數(shù)據(jù)拖曳Drag與Drop詳細使用方法與實例

 更新時間:2020年02月27日 16:14:49   作者:jia666666  
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5控件數(shù)據(jù)拖曳Drag與Drop詳細使用方法與實例,需要的朋友可以參考下

PyQt5數(shù)據(jù)拖曳Drag與Drop介紹

為用戶提供的拖曳功能很直觀,在很對桌面應用程序中,復制或移動對象都可以通過拖曳來完成

基于MIME類型的拖曳數(shù)據(jù)傳輸是基于QDrag類的,QMimeData對象將關聯(lián)的數(shù)據(jù)與其對應的MIME類型相關聯(lián)

MIME意為多功能Internet郵件擴展,它設計的最初目的是為了在發(fā)送電子郵件時附加多媒體數(shù)據(jù),讓郵件客戶程序能根據(jù)其類型進行處理。然而當它被HTTP協(xié)議支持之后,它的意義就更為顯著了。它使得HTTP傳輸?shù)牟粌H是普通的文本,而變得豐富多彩。

每個MIME類型由兩部分組成,前面是數(shù)據(jù)的大類別,例如聲音audio、圖象image等,后面定義具體的種類。

常見的MIME類型(通用型):

超文本標記語言文本 .html text/html

xml文檔 .xml text/xml

XHTML文檔 .xhtml application/xhtml+xml

普通文本 .txt text/plain

RTF文本 .rtf application/rtf

PDF文檔 .pdf application/pdf

Microsoft Word文件 .word application/msword

PNG圖像 .png image/png

GIF圖形 .gif image/gif

JPEG圖形 .jpeg,.jpg image/jpeg

au聲音文件 .au audio/basic

MIDI音樂文件 mid,.midi audio/midi,audio/x-midi

RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio

MPEG文件 .mpg,.mpeg video/mpeg

AVI文件 .avi video/x-msvideo

GZIP文件 .gz application/x-gzip

TAR文件 .tar application/x-tar

任意的二進制數(shù)據(jù) application/octet-stream

MIME類型的數(shù)據(jù)可以簡單的理解為互聯(lián)網(wǎng)上的各種資源,比如文本,音頻和圖片等資源,互聯(lián)網(wǎng)上的每一種資源都屬于一種MIME類型的數(shù)據(jù)

MimeData類函數(shù)允許檢測和使用方便的MIME類型

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

許多QWidget對象都支持拖曳動作,允許拖曳數(shù)據(jù)的控件必須設置QWidget.setDragEnabled()為True,另外,控件應該響應拖曳事件,以便儲存所拖曳的數(shù)據(jù)

常用的拖曳事件如表

事件 描述
DragEnterEvent 當執(zhí)行一個拖曳控件操作,并且鼠標指針進入該控件時,這個事件將會被觸發(fā)。在這個事件中可以獲得被操作的窗口控件,還可以有條件地接受或拒絕該拖曳操作
DragMoveEvent 在拖曳操作進行時會觸發(fā)該事件
DragLeaveEvent 當執(zhí)行一個拖曳操作,并且鼠標指針離開該控件時,這個事件被觸發(fā)
DropEvent 當拖曳操作在其目標控件上被釋放時,這個事件將被觸發(fā)

Drag拖曳功能實例

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

class Combo(QComboBox):
  def __init__(self,title,parent):
    super(Combo, self).__init__(parent)
    #設置為可接受拖曳操作文本
    self.setAcceptDrops(True)

  #當執(zhí)行一個拖曳控件操作,并且鼠標指針進入該控件時,這個事件將會被觸發(fā)。
  # 在這個事件中可以獲得被操作的窗口控件,還可以有條件地接受或拒絕該拖曳操作
  def dragEnterEvent(self,e):
    #檢測拖曳進來的數(shù)據(jù)是否包含文本,如有則接受,無則忽略
    if e.mimeData().hasText():
      e.accept()
    else:
      e.ignore()
  #當拖曳操作在其目標控件上被釋放時,這個事件將被觸發(fā)
  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)

    #實例化Combo對象,添加控件到布局中
    com=Combo('Button',self)
    lo.addRow(edit,com)

    #設置主窗口布局及標題
    self.setLayout(lo)
    self.setWindowTitle('簡單的拖曳例子')

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

效果如圖

代碼分析:

在這個例子中,DragEnterEvent會驗證事件的MIM的數(shù)據(jù)是否包含字符串文本,如果包含字符串文本,就接受事件提出的添加文本操作,并將文本作為新條目(Item)添加到ComboBox控件中,否則忽略這次操作

  def dragEnterEvent(self,e):
    #檢測拖曳進來的數(shù)據(jù)是否包含文本,如有則接受,無則忽略
    if e.mimeData().hasText():
      e.accept()
    else:
      e.ignore()

本文主要介紹了PyQt5控件數(shù)據(jù)拖曳Drag與Drop詳細使用方法與實例,更多關于這方面的知識請查看下面的相關鏈接

您可能感興趣的文章:

相關文章

  • Python?pandas處理缺失值方法詳解(dropna、drop、fillna)

    Python?pandas處理缺失值方法詳解(dropna、drop、fillna)

    缺失數(shù)據(jù)會在很多數(shù)據(jù)分析應用中出現(xiàn),pandas的目標之一就是盡可能無痛地處理缺失值,下面這篇文章主要給大家介紹了關于Python?pandas處理缺失值方法的相關資料,處理方法分別是dropna、drop、fillna,需要的朋友可以參考下
    2022-08-08
  • python 實時得到cpu和內存的使用情況方法

    python 實時得到cpu和內存的使用情況方法

    今天小編就為大家分享一篇python 實時得到cpu和內存的使用情況方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python 設置文件編碼格式的實現(xiàn)方法

    python 設置文件編碼格式的實現(xiàn)方法

    下面小編就為大家分享一篇python 設置文件編碼格式的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 中秋快到了利用python畫個月亮和月餅

    中秋快到了利用python畫個月亮和月餅

    眼看中秋又快到了,今天小編就利用python畫出月亮和月餅,感興趣的小伙伴一定要收藏起來送給遠方的朋友呀
    2021-09-09
  • Django模板Templates使用方法詳解

    Django模板Templates使用方法詳解

    這篇文章主要介紹了Django模板Templates使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python中如何實現(xiàn)將數(shù)據(jù)分成訓練集與測試集的方法

    python中如何實現(xiàn)將數(shù)據(jù)分成訓練集與測試集的方法

    這篇文章主要介紹了python中如何實現(xiàn)將數(shù)據(jù)分成訓練集與測試集的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Python棧類實例分析

    Python棧類實例分析

    這篇文章主要介紹了Python棧類,實例分析了Python實現(xiàn)棧的入棧、出棧、移除、判定為空的相關技巧,需要的朋友可以參考下
    2015-06-06
  • Python 高級專用類方法的實例詳解

    Python 高級專用類方法的實例詳解

    這篇文章主要介紹了Python 高級專用類方法的實例詳解的相關資料,希望通過本文大家能夠掌握這部分內容,需要的朋友可以參考下
    2017-09-09
  • Python抓取網(wǎng)頁圖片難點分析

    Python抓取網(wǎng)頁圖片難點分析

    沒想到python是如此強大,令人著迷,以前看見圖片總是一張一張復制粘貼,現(xiàn)在好了,學會python就可以用程序將一張張圖片,保存下來。今天網(wǎng)上沖浪看到很多美圖,可是圖片有點多,不想一張一張地復制粘貼,怎么辦呢?辦法總是有的,即便沒有我們也可以創(chuàng)造一個辦法
    2023-01-01
  • python批量讀取文件名并寫入txt文件中

    python批量讀取文件名并寫入txt文件中

    這篇文章主要為大家詳細介紹了python批量讀取文件名并寫入txt文件中,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評論