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

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

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

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

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

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

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

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

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

超文本標(biāo)記語言文本 .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

任意的二進(jìn)制數(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ù) 獲取函數(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對象都支持拖曳動(dòng)作,允許拖曳數(shù)據(jù)的控件必須設(shè)置QWidget.setDragEnabled()為True,另外,控件應(yīng)該響應(yīng)拖曳事件,以便儲(chǔ)存所拖曳的數(shù)據(jù)

常用的拖曳事件如表

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

Drag拖曳功能實(shí)例

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)
    #設(shè)置為可接受拖曳操作文本
    self.setAcceptDrops(True)

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

    #實(shí)例化單行文本框,設(shè)置為允許拖曳操作
    edit=QLineEdit()
    edit.setDragEnabled(True)

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

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

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

效果如圖

代碼分析:

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

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

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

您可能感興趣的文章:

相關(guān)文章

  • Python實(shí)現(xiàn)自動(dòng)收集參數(shù)的技巧分享

    Python實(shí)現(xiàn)自動(dòng)收集參數(shù)的技巧分享

    在Python中,充分利用函數(shù)參數(shù)的自動(dòng)收集和靈活處理,是寫出高效且易維護(hù)代碼的關(guān)鍵之一,本文將深入研究Python函數(shù)參數(shù)的收集方式,感興趣的小伙伴可以了解下
    2023-12-12
  • python編程進(jìn)階之異常處理用法實(shí)例分析

    python編程進(jìn)階之異常處理用法實(shí)例分析

    這篇文章主要介紹了python編程進(jìn)階之異常處理用法,結(jié)合實(shí)例形式分析了python異常捕獲、處理相關(guān)語句、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Python flask-script 模塊詳解

    Python flask-script 模塊詳解

    Flask Script擴(kuò)展提供向Flask插入外部腳本的功能,這篇文章主要介紹了Flask之flask-script模塊使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-11-11
  • Python字符串格式化輸出方法分析

    Python字符串格式化輸出方法分析

    這篇文章主要介紹了Python字符串格式化輸出方法,結(jié)合實(shí)例形式分析了Python格式化構(gòu)建字符串的三種常用技巧,需要的朋友可以參考下
    2016-04-04
  • 使用python制作一個(gè)截圖小工具

    使用python制作一個(gè)截圖小工具

    這篇文章主要討論了我們?nèi)绾问褂肞ython編程語言進(jìn)行截圖,我們看到了如何使用pyautogui 模塊與save() 函數(shù)和其他模塊,如NumPy 和OpenCV ,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Python 實(shí)例方法、類方法、靜態(tài)方法的區(qū)別與作用

    Python 實(shí)例方法、類方法、靜態(tài)方法的區(qū)別與作用

    Python中至少有三種比較常見的方法類型,即實(shí)例方法,類方法、靜態(tài)方法。它們是如何定義的呢?如何調(diào)用的呢?它們又有何區(qū)別和作用呢?感興趣的朋友跟隨小編一起看看吧
    2019-08-08
  • Python生成隨機(jī)數(shù)詳解流程

    Python生成隨機(jī)數(shù)詳解流程

    生成隨機(jī)數(shù)一般使用的就是random模塊下的函數(shù),生成的隨機(jī)數(shù)并不是真正意義上的隨機(jī)數(shù),而是對隨機(jī)數(shù)的一種模擬。random模塊包含各種偽隨機(jī)數(shù)生成函數(shù),以及各種根據(jù)概率分布生成隨機(jī)數(shù)的函數(shù)。今天我們的目標(biāo)就是摸清隨機(jī)數(shù)有幾種生成方式
    2022-03-03
  • 在前女友婚禮上用python把婚禮現(xiàn)場的WIFI名稱改成了

    在前女友婚禮上用python把婚禮現(xiàn)場的WIFI名稱改成了

    大家好,我是Lex 喜歡欺負(fù)超人那個(gè)Lex 擅長領(lǐng)域:python開發(fā),網(wǎng)絡(luò)安全滲透,Windows域控Exchange架構(gòu) 今日重點(diǎn):python暴力拿下WiFi密碼;python拿下路由器管理頁面 代碼干貨滿滿,建議收藏+實(shí)操!有問題及需要,請留言哦
    2021-08-08
  • Python ckeditor富文本編輯器代碼實(shí)例解析

    Python ckeditor富文本編輯器代碼實(shí)例解析

    這篇文章主要介紹了Python ckeditor富文本編輯器代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python實(shí)現(xiàn)自動(dòng)生成請假條

    Python實(shí)現(xiàn)自動(dòng)生成請假條

    這篇文章主要為大家詳細(xì)介紹了如何實(shí)現(xiàn)用Python來批量生成請假條,這回既學(xué)了東西又做了事情,兩不誤!感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12

最新評論

苏州市| 都昌县| 太仆寺旗| 朔州市| 肇东市| 南华县| 樟树市| 贞丰县| 利辛县| 乳山市| 兴化市| 咸宁市| 宝清县| 仙桃市| 涪陵区| 淳化县| 乃东县| 休宁县| 三江| 修水县| 巢湖市| 上犹县| 长顺县| 凌云县| 林芝县| 剑阁县| 衡山县| 乌拉特后旗| 红安县| 青神县| 哈尔滨市| 磐石市| 兴义市| 乐东| 于都县| 中方县| 太湖县| 荔波县| 盐池县| 涞源县| 苍山县|