Qt是c++的應用程序開發框架,使用Qt能快捷地開發想要的程序。本文介紹Qt動態添加控件的方法,具體而言就是根據用戶操作生成新的控件到界面,同時,相應的操作可以使得控件動態刪除。
首先,我們使用Qtcreator創建一個gui工程,所有的設置使用默認即可。本例中使用的qt4.8.5進行開發。
然后,打開工程中的界面文件,在界面中添加兩個按鈕和一個布局,具體設置效果可以通過下面的圖片看到。
然后,我們轉到“新建”按鈕的槽中,實現當鼠標點擊新建按鈕,自動創建一個label控件,並將之加入到下方的gridlayout中。
我們轉到按鈕單擊的槽函數,添加label創建代碼如下圖所示。
運行程序,我們點擊多次新建按鈕,可以看到,在下方生成了多個label控件,當然也可以設置生成其他控件。
接下來,我們要對這些控件進行刪除操作,這一步是關鍵,一般說來,我們由於我們是通過addWidget加入到布局中的,所以我們要先調用removeWidget將這些控件移除,然后再通過delete刪除控件。所以可以看出控件的指針是操作的關鍵,之前我們沒有保存控件指針,操作中如果使用鏈表等保存這些控件指針將帶來操作的方便。
在下圖中的操作中,我們先獲取布局總item的數目,然后我們每次都獲取一下最后一個控件的指針,之后,先異常控件,再釋放控件資源。
程序運行可以看到刪除效果,需要注意的是,調用remove函數並不釋放控件資源,如下圖,沒有delete的話,控件還是存在的,只是不再布局罷了。