Qt學習 簡單的檔案拖放操作

2021-08-10 18:32:06 字數 1734 閱讀 2623

下面來看乙個很簡單的例子,就是將桌面上的.txt檔案拖入到text edit中。新建 qt widgets應用,基類選擇 qmainwindow,並向介面上拖入乙個text edit部件

protected:

void

dragenterevent(qdragenterevent * event); // 拖動進入事件

void dropevent(qdropevent * event); // 放下事件

#include 

#include

#include

#include

#include

void mainwindow::dragenterevent(qdragenterevent *event) // 拖動進入事件

else event->ignore(); // 否則忽略該事件

}void mainwindow::dropevent(qdropevent *event) // 放下事件

}}

setacceptdrops(true);     //設定主視窗可以接收放下事件,預設為 flase
測試函式

獲取函式

設定函式

mime型別

hastext( )

text( )

settext( )

text/plain

hashtml( )

html( )

sethtml( )

text/html

hasurls( )

urls( )

seturls( )

text/uri-list

hasimage( )

imagedata( )

setimagedata( )

image/*

hascolor( )

colordata( )

setcolordata( )

當滑鼠拖拽乙個資料進入主視窗是,就會觸發dragenterevent()事件處理函式,從而獲取其中的mime資料;然後檢視他是否包含url路徑。因為拖入文字實際上就是拖入了它的路徑,這就是event->mimedata( )->hasurls( )實現的功能。如果有這樣的資料,就接受它,否則忽略該事件。當鬆開滑鼠左鍵時,將資料放入主視窗(我們這裡是重新實現了主視窗的拖放動作相應的事件函式)時就會觸發dropevent( )事件處理函式,這裡獲取了mime資料中的url列表。因為拖入的只有乙個檔案,所以獲取了列表中的第乙個條目,並使用tolocalfile( )函式將它轉換為本地檔案路徑。然後使用qfileqtextstream將檔案中的資料讀入的編輯器中。

現在執行程式,然後從桌面上將乙個文字檔案拖入程式的主視窗介面(不是裡面的text edit部件,我們這裡是重新實現了主視窗的拖放動作相應的事件函式),可以看到文字編輯器中顯示了文字檔案中的內容。

QT學習筆記 拖放操作

qt具備強大的拖放機制。拖放操作分為drag 拖動 和drop 放下 跟拖放相關的類是qdragenterevent,也是繼承自qevent 當資料被拖動會被儲存為mime型別的資料。qt使用qmimedata類表示mime 拖動事件 virtual protected void qwidget d...

3Qt檔案拖放操作

檔案拖放技術是程式設計中的一項重要的技術,可以快速的開啟檔案,複製檔案等 1標頭檔案 ifndef mylable h define mylable h include include include include include class mylable public qlabel endif...

檔案拖放操作

我們知道,很多程式都直接檔案拖放。例如常見的excel,word等等。如果要為我們自己的應用程式新增檔案拖放到支援,那麼可以按照如下的一些步驟完成 1.設定窗體的allowdrop屬性為true 2.編寫兩個事件 dragenter和dragdrop 以下是我的乙個小軟體中的兩段 供參考 當拖放檔案...