Qt使用布局管理器實現擴展對話框


最近一直在忙項目,有段時間沒寫博客了;今天跟大家講講擴展對話框的實現;擴展對話框效果如下所示:

(1)初始界面:

(2)單擊<More>按鈕:

(3)再次單擊<More>按鈕:

這節主要講解用布局管理器方式實現,下節講解用手動進行部件定位的方式實現:

1、用Qt Creator新建一個QDialog的主窗口,然后使用Qt Designer往上面拖動一些基本部件即可,在這個例子中,我使用了一個進度條,一個文本標簽,兩個按鈕,以及一個QListWidget;其中進度條表示任務的操作進度,文本標簽則實時顯示任務的操作描述,如正在進行CRC驗證、正在寫文件等,一個OK按鈕用於關閉對話框,一個More按鈕用於顯示和隱藏QListWidget的高度部分;最后設計成的UI如下圖所示:

下面就要對這些部件進行布局設置了;OK和More按鈕使用水平布局,其中該布局中間再加上一個水平的Spacer,然后再對主對話框使用垂直布局即可。為了使OK按鈕和More按鈕更向里靠攏些,設置水平布局的layoutLeftMargin和layoutRightMargin屬性值,我設置為20,布局結果如下圖所示:

2、設置主對話框布局的大小約束為SetFixedSize;布局管理器的大小約束屬性解釋如下所示:

然后設置進度條的最小寬度即可。

3、 連接信號和槽函數
在OK按鈕的槽函數中關掉該窗口;在More按鈕的槽函數中對是否按下進行判斷,如果按下了,就顯示QListWidget,否則,就隱藏QListWidget;因為改變布局管理器中項后,布局管理器會重新計算布局信息。

4、 美化窗口
美化窗口我就不再講解了,包括圓角窗口,窗口背景以及按鈕樣式等,請各位參考我用Qt實現360界面的例子。

我把二進制文件打包供下載,希望大家提出意見,有什么不對的地方望指教;下載地址為:文件下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM