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

Python中PyQt5可視化界面通過拖拽來上傳文件的實(shí)現(xiàn)

 更新時(shí)間:2023年12月05日 15:36:33   作者:W金剛葫蘆娃W  
本文主要介紹了Python中PyQt5可視化界面通過拖拽來上傳文件的實(shí)現(xiàn),通過構(gòu)建一個(gè)可接受拖拽的區(qū)域,并重寫相關(guān)事件處理函數(shù),可以方便地實(shí)現(xiàn)文件上傳功能,具有一定的參考價(jià)值,感興趣的可以了解一下

注:這個(gè)窗口提供了一個(gè)快速上傳文件的小tips,如果需要對(duì)上傳的文件進(jìn)行進(jìn)一步處理的可以在“processFiles”函數(shù)或者編寫其它函數(shù)進(jìn)行擴(kuò)充就可以。

1、需要安裝模塊

pip install PyQt5

2、運(yùn)行效果

1、通過拖拽的方式上傳需要的文件到窗口,會(huì)直接獲取到它的路徑并顯示出來

2、提交文件后,可以獲取窗口內(nèi)的所有文件路徑,并且以列表的形式存儲(chǔ)

3、python代碼

在代碼里都有詳細(xì)的注釋;這里就不做過多的說明

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QPushButton, QVBoxLayout, QWidget,QDesktopWidget
'''
#1、使用以下代碼中的文件拖拽功能,只需將文件或文件夾拖拽到文本編輯框中即可。如果文件是本地文件,它們將以文件路徑的形式顯示在文本編輯框中。
#2、如果你想要進(jìn)一步處理這些文件路徑,比如復(fù)制、移動(dòng)、讀取或執(zhí)行其他操作,你可以在 processFiles 方法中添加你的自定義代碼,該方法在用戶點(diǎn)擊提交按鈕后被調(diào)用。在該方法中,你可以訪問文本編輯框的內(nèi)容,將其拆分成文件路徑,并執(zhí)行相應(yīng)的操作。
'''
#使用子類來繼承父類的方法,這里的'DragDropTextEdit‘,繼承自  'QTextEdit‘ ,并且添加了文件拖拽的支持。
#這使得你可以將它用作拖拽文件的目標(biāo),以便在應(yīng)用程序中方便地處理文件路徑。
class DragDropTextEdit(QTextEdit):
    def __init__(self, parent=None):
        super(DragDropTextEdit, self).__init__(parent)
        self.setAcceptDrops(True)        #定義的 DragDropTextEdit 類的構(gòu)造函數(shù)中調(diào)用的方法,它的作用是啟用該文本編輯框接受拖拽操作。

    #當(dāng)用戶拖拽文件或其他可拖拽的內(nèi)容進(jìn)入文本編輯框時(shí),這個(gè)方法會(huì)被觸發(fā)
    def dragEnterEvent(self, event):
        if event.mimeData().hasUrls():  #它檢查拖拽事件中的 MIME 數(shù)據(jù)是否包含文件路徑
            event.accept()   #如果包含文件路徑,它調(diào)用 event.accept() 來接受拖拽事件,允許文件拖拽進(jìn)入文本編輯框。
        else:                        #否則,如果不包含文件路徑,它調(diào)用 event.ignore() 來忽略拖拽事件,表示不允許拖拽操作。
            event.ignore()


    def dropEvent(self, event):   #當(dāng)用戶釋放鼠標(biāo)按鈕時(shí),這個(gè)方法會(huì)被觸發(fā),用于處理拖拽事件。在這個(gè)方法中,你可以獲取拖拽事件中的文件路徑。
        for url in event.mimeData().urls():   #使用 event.mimeData().urls() 來獲取所有拖拽事件中的 URL 列表,每個(gè) URL 表示一個(gè)文件或文件夾。
            if url.isLocalFile() and url.toLocalFile():  #使用 url.toLocalFile() 來獲取本地文件路徑,如果是本地文件的話。
                self.append(url.toLocalFile())   #接下來,你可以將這些文件路徑添加到文本編輯框中,或者進(jìn)行任何你希望執(zhí)行的處理。
class MainApp(QMainWindow):  #創(chuàng)建實(shí)例化類
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.setWindowTitle('文件拖拽窗口')   #設(shè)置主窗口的標(biāo)題為 "文件拖拽窗口"。
        # 獲取屏幕的寬度和高度
        screen = QDesktopWidget().screenGeometry()
        screenWidth = screen.width()
        screenHeight = screen.height()
        # 計(jì)算窗口居中的坐標(biāo)
        x = (screenWidth - self.width()) // 2
        y = (screenHeight - self.height()) // 2
        #設(shè)置窗口大小已經(jīng)出現(xiàn)在屏幕的什么位置
        self.setGeometry(x, y, 600, 400)  #設(shè)置主窗口的初始位置和大小。 (x, y)是設(shè)置窗口出現(xiàn)的位置。窗口的寬度為 600 像素,高度為 400 像素。

        #初始化窗口排版模式
        central = QWidget(self)    #創(chuàng)建一個(gè)名為 central 的 QWidget(窗口中央部件),用于將其他小部件添加到主窗口的中央?yún)^(qū)域。
        self.setCentralWidget(central) #將 central 部件設(shè)置為主窗口的中央部分。這意味著所有其他小部件將放置在 central 部件中,以確保它們?cè)诖翱谥虚g顯示。
        display = QVBoxLayout(central) #創(chuàng)建一個(gè)垂直布局管理器 display,它將用于管理 central 部件中的小部件的位置和大小。垂直布局意味著小部件將按垂直方向排列。

        #窗口
        self.textEdit = DragDropTextEdit()  #####這里來實(shí)例化上面子類繼承的內(nèi)容DragDropTextEdit 的實(shí)例,并將其賦值給 self.textEdit 屬性。這個(gè)文本編輯框支持文件拖拽功能。
        display.addWidget(self.textEdit) #將 self.textEdit 添加到垂直布局管理器 display 中
        #按鈕
        self.submit_Button = QPushButton('提交文件', self)  #創(chuàng)建提交按鈕的名稱
        self.submit_Button.clicked.connect(self.processFiles) #給提交按鈕綁定事件函數(shù)processFiles
        display.addWidget(self.submit_Button)   #展示出提交按鈕
    def processFiles(self):
        file_paths = self.textEdit.toPlainText().split('\n')
        # 這里添加處理文件的代碼
        print("文件路徑如下:", file_paths)





def main():
    app = QApplication(sys.argv)
    ex = MainApp()
    ex.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

到此這篇關(guān)于Python中PyQt5可視化界面通過拖拽來上傳文件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)PyQt5拖拽上傳文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 利用Python檢測(cè)URL狀態(tài)

    利用Python檢測(cè)URL狀態(tài)

    最近小編接到這樣的需求,Python檢測(cè)URL狀態(tài),并追加保存200的URL。接下來通過實(shí)例代碼給大家分析講解,需要的朋友跟隨小編一起看看吧
    2019-07-07
  • Python?PySpark案例實(shí)戰(zhàn)教程

    Python?PySpark案例實(shí)戰(zhàn)教程

    PySpark是由Spark官方開發(fā)的Python語言第三方庫,Python開發(fā)者可以使用pip程序快速的安裝PySpark并像其它三方庫那樣直接使用,本文給大家介紹Python?PySpark案例實(shí)戰(zhàn),感興趣的朋友一起看看吧
    2023-09-09
  • pandas的排序和排名的具體使用

    pandas的排序和排名的具體使用

    這篇文章主要介紹了pandas的排序和排名的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python中生成不重復(fù)ID的方法小結(jié)

    Python中生成不重復(fù)ID的方法小結(jié)

    在軟件開發(fā)中,生成不重復(fù)的ID是一個(gè)常見的需求,Python中提供了多種方法來生成不重復(fù)的ID,本文將介紹幾種常見且實(shí)用的方法,希望對(duì)大家有所幫助
    2025-01-01
  • python實(shí)現(xiàn)將list拼接為一個(gè)字符串

    python實(shí)現(xiàn)將list拼接為一個(gè)字符串

    這篇文章主要介紹了python實(shí)現(xiàn)將list拼接為一個(gè)字符串方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 采用Psyco實(shí)現(xiàn)python執(zhí)行速度提高到與編譯語言一樣的水平

    采用Psyco實(shí)現(xiàn)python執(zhí)行速度提高到與編譯語言一樣的水平

    這篇文章主要介紹了采用Psyco實(shí)現(xiàn)python執(zhí)行速度提高到與編譯語言一樣的水平的方法,是非常實(shí)用的Python第三方庫,需要的朋友可以參考下
    2014-10-10
  • 一文詳解Python中pip安裝路徑的查看與修改指南

    一文詳解Python中pip安裝路徑的查看與修改指南

    在日常Python開發(fā)中,我們經(jīng)常使用pip安裝各種第三方庫,但你是否曾好奇這些包到底安裝到了電腦的哪個(gè)位置,下面小編就和大家詳細(xì)講講如何查看和修改pip的默認(rèn)安裝路徑吧
    2026-03-03
  • windows下python連接oracle數(shù)據(jù)庫

    windows下python連接oracle數(shù)據(jù)庫

    這篇文章主要為大家詳細(xì)介紹了windows下python連接oracle數(shù)據(jù)庫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • pyecharts結(jié)合flask框架的使用

    pyecharts結(jié)合flask框架的使用

    這篇文章主要介紹了pyecharts結(jié)合flask框架,主要是介紹如何在Flask框架中使用pyecharts,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • python自動(dòng)化測(cè)試之異常及日志操作實(shí)例分析

    python自動(dòng)化測(cè)試之異常及日志操作實(shí)例分析

    這篇文章主要介紹了python自動(dòng)化測(cè)試之異常及日志操作,結(jié)合實(shí)例形式分析了python自動(dòng)化測(cè)試中的異常捕獲與日志記錄相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11

最新評(píng)論

景洪市| 桂林市| 弥渡县| 丰原市| 正定县| 吴忠市| 金溪县| 六枝特区| 东兴市| 桂阳县| 邢台市| 罗江县| 桦南县| 河北省| 蒙城县| 青川县| 文山县| 乡宁县| 抚顺市| 建瓯市| 思南县| 昆明市| 屯门区| 太白县| 黄浦区| 胶南市| 洛隆县| 金塔县| 江北区| 博湖县| 天津市| 陈巴尔虎旗| 随州市| 延津县| 康平县| 个旧市| 临颍县| 康定县| 涞源县| 绍兴县| 汕尾市|