Qt 學習之路 2(54) 剪貼簿

2021-08-08 22:18:32 字數 2247 閱讀 8107

剪貼簿的操作經常和前面所說的拖放技術在一起使用。大家對剪貼簿都很熟悉。我們可以簡單地把它理解成乙個資料儲存池,外面的資料可以存進去,裡面資料也可以取出來。剪貼簿是由作業系統維護的,所以這提供了跨應用程式的資料互動的一種方式。qt 已經為我們封裝好很多關於剪貼簿的操作,我們可以在自己的應用中很容易實現對剪貼簿的支援,**實現起來也是很簡單的:

1

2

3

4

5

6

7

8

9

class

clipboarddemo

:public

qwidget

;

我們定義了乙個clipboarddemo類。這個類只有兩個槽函式,乙個是從剪貼簿獲取內容,乙個是給剪貼簿設定內容。

12

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

clipboarddemo

::clipboarddemo

(qwidget *

parent)

:qwidget

(parent)

主介面也很簡單:程式分為上下兩行,上一行顯示乙個文字框,下一行是兩個按鈕,分別為設定剪貼簿和讀取剪貼簿。最主要的**還是在兩個槽函式中:

1

2

3

4

5

6

7

8

9

10

11

12

void

clipboarddemo

::setclipboardcontent()

void

clipboarddemo

::getclipboardcontent()

另外值得說的是,通過上面的例子可以看出,qtextedit預設就支援 ctrl+c, ctrl+v 等快捷鍵操作的。不僅如此,很多 qt 的元件都提供了很方便的操作,因此我們需要從文件中獲取具體的資訊,從而避免自己重新去發明輪子。

qclipboard提供的資料型別很少,如果需要,我們可以繼承qmimedata類,通過呼叫setmimedata()函式讓剪貼簿能夠支援我們自己的資料型別。具體實現我們已經在前面的章節中有過介紹,這裡不再贅述。

在 x11 系統中,滑鼠中鍵(一般是滾輪)可以支援剪貼操作。為了實現這一功能,我們需要向qclipboard::text()函式傳遞qclipboard::selection引數。例如,我們在滑鼠按鍵釋放的事件中進行如下處理:

12

3

4

5

6

7

8

9

void

mytexteditor

::mousereleaseevent

(qmouseevent *

event)

}這裡的supportsselection()函式在 x11 平台返回 true,其餘平台都是返回 false。這樣,我們便可以為 x11 平台提供額外的操作。

另外,qclipboard提供了datachanged()訊號,以便監聽剪貼簿資料變化。

Qt學習之路 55 剪貼簿操作

剪貼簿的操作經常和前面所說的拖放技術在一起使用,因此我們現在先來說說剪貼簿的相關操作。大家對剪貼簿都很熟悉。我們可以簡單的把它理解成乙個資料的儲存池,可以把外面的資料放置進去,也可以把裡面的資料取出來。剪貼簿是由作業系統維護的,所以這提供了跨應用程式資料互動的一種方式。qt 已經為我們封裝好很多關於...

Qt學習之路 55 剪貼簿操作

2010 04 07 23 46 39 標籤 c 教程學習 qt教程qt 原始出處 作者資訊和本宣告。否則將追究法律責任。剪貼簿的操作經常和前面所說的拖放技術在一起使用,因此我們現在先來說說剪貼簿的相關操作。大家對剪貼簿都很熟悉。我們可以簡單的把它理解成乙個資料的儲存池,可以把外面的資料放置進去,也...

Qt學習之路 55 剪貼簿操作

剪貼簿的操作經常和前面所說的拖放技術在一起使用,因此我們現在先來說說剪貼簿的相關操作。大家對剪貼簿都很熟悉。我們可以簡單的把它理解成乙個資料的儲存池,可以把外面的資料放置進去,也可以把裡面的資料取出來。剪貼簿是由作業系統維護的,所以這提供了跨應用程式資料互動的一種方式。qt 已經為我們封裝好很多關於...