1. 程式人生 > >編寫Qt Designer自定義控制元件(一)——如何建立並使用Qt自定義控制元件

編寫Qt Designer自定義控制元件(一)——如何建立並使用Qt自定義控制元件

    http://blog.csdn.net/giselite/article/details/12622429

  在使用Qt Designer設計窗體介面時,我們可以使用Widget Box裡的窗體控制元件非常方便的繪製介面,比如拖進去一個按鈕,一個文字編輯器等。雖然Qt Designer裡的控制元件可以滿足我們大部分的需求,但是有時候,也會產生一些特殊的需要,比如一個輸入框,我們要輸入的是經緯度,此時就會有兩種輸入方式,一種是小數形式,一種是度分秒的形式,此時只使用一個簡單的LineEdit是無法滿足需求的。我們設想構造這樣一個輸入控制元件,它可以支援浮點數輸入,同時它還具有一個屬性,更改這個屬性可以使其切換為經緯度輸入形式。如果我們的多個窗體上都需要輸入經緯度,那麼構造這樣一個控制元件,將會非常方便。下面就以此為例,講解一下如何建立自定義的窗體控制元件。

第一步:建立QtDesigner自定義控制元件工程

      開啟Qt Creator,建立一個Qt 設計師自定義控制元件,如下圖所示:


      根據嚮導提示,建立好工程,這裡取名為LogLatEdit,工程目錄如下圖所示:


第二步:編譯控制元件工程

      為了淌通整個自定義控制元件的編寫流程,我們先不做任何更改,切換為Release版本,直接編譯一下。

第三步:部署外掛

      編譯完成後,在輸出目錄下,將生成的dll檔案和lib檔案一起拷貝到Qt的外掛目錄下,以我使用的Qt 4.8.4為例,在Qt 4.8.4的安裝目錄D:\Qt\4.8.4下,找到plugins目錄,在其中找到designer目錄,然後把dll和lib放進去,完整路徑為:D:\Qt\4.8.4\plugins\designer。之後,啟動D:\Qt\4.8.4\bin下的designer.exe,建立一個窗體,此時就會發現在左側的Widget Box裡出現了我們自己的LogLatEdit控制元件,我們可以像使用其它控制元件一樣,把我們自己的控制元件拖繪到窗體上,如下圖所示:


      如果自定義控制元件沒有出現在Widgetbox裡,那麼此時你可以通過【幫助-關於外掛】選單,開啟外掛資訊對話方塊,點選重新整理按鈕,只要你沒有忘記把dll和lib檔案拷貝到正確的位置,外掛都會自動識別並載入。對於其它版本的Qt也一樣,比如我自己的電腦裡安裝了好幾個版本的Qt,對於其它版本的Qt,做法也是一樣,只需要把外掛工程生成的dll和lib檔案放置到相應版本的外掛目錄下去即可。

       到此,我們就理清了如何建立一個自定義控制元件,並且知道了如何部署、載入並使用自定義控制元件。下面我們開始編寫我們需要的控制元件,對於只想瞭解自定義控制元件開發過程的讀者,至此就已經知道如何做了,那麼後面的內容您可以略過不讀了。

未完,待續。