用 QT實現拖放(drag drop)功能

2021-07-23 22:25:47 字數 1872 閱讀 1801

qt的 qdrag 和 qdrop功能在qt的"puzzle"示例中有介紹。但是那個介紹是以qlistwidget為基礎的。本文以qwidget為基礎,介紹如何實現拖放。拖放可以用qstring作為資訊載體,也可以使用html等型別。本文採用qbytearray。qbytearray允許程式設計師使用自定義的型別來作為資訊載體。本文定義的型別是st_info。

標頭檔案:

#ifndef mainwindow_h

#define mainwindow_h

#include #include #include #include #include #include #pragma pack(1)

struct st_info

;#pragma pack()

class mainwindow : public qmainwindow

;#endif // mainwindow_h

cpp檔案:

啟動兩個一模一樣的應用。在第乙個視窗中輸入如下:

然後在第乙個視窗中按下滑鼠,拖向第二個視窗,鬆開:

可見,第乙個視窗的資訊被正確傳入了第二個視窗。

HTML5 drag drop 拖拽與拖放簡介

html5提供專門的拖拽與拖放的api,以後實現這類效果就不必亂折騰了。但是,考慮到opera瀏覽器似乎對此不感冒,在通用性上有待商榷,所以這裡也就簡單說一說。datatransfer 物件 退拽物件用來傳遞的媒介,使用一般為event.datatransfer。draggable 屬性 就是標籤元...

WPF實現Drag Drop操作

有時候我們方便使用者操作,總會把一下copy paste 或者 input操作轉換為drag drop,wpf 跟之前winform 一樣提供了一些實現方式方便開發人員進行開發。要允許控制項drop操作,首先必須設定控制項屬性allowdrop,這樣控制項才能產生dragover dragenter...

Qt之拖放程式

拖放是應用程式內或者多個應用程式之間傳遞資訊的一種直觀的操作方式。除了為剪貼簿提供支援之外,通常還提供資料的移動和複製功能。拖放操作包括兩個截然不同的動作 拖動 放下。qt視窗部件可以作為拖動點 drag site 放下點 drop site 或者同時作為拖動點和放下點。下面介紹如何讓乙個qt應用程...