使用Qt?Designer開發(fā)的實現(xiàn)示例
Qt Designer 是屬于 Qt Creator 的 一個功能而已,Qt Designer 也叫 UI 設計師或者 UI 設計器,這都是指的同一 個東西而已。
一、在ui文件添加一個按鈕
1、新建一個項目
項目名為 02_designer_example
構建系統(tǒng)可選擇 CMake , qmake, Qbs 對于 CMake 我們比較熟悉,用于生成 Makefile ,那么
qmake 與 Qbs 也同樣道理, qmake 與 cmake 比較常用。我們需要選擇 qmake 。
這里默認選擇的基類為 QMainWindow 。在 Base class 一項中我們還可以看到還有 QWidget
和 QWialog 這樣的基類可以選擇。 簡單的來說,我們創(chuàng)建 的這個項目是基于 QMainWindow 類去開發(fā)的。默認勾選“ Generate form ”,意思是生成 ui 窗體 文件 mainwindow.ui 。為了學習方便,我們統(tǒng)一默認基類為 QMainWindow ,但是注意,在嵌入 式里一般不需要標題欄,狀態(tài)欄等,所以常用的是 QWidget 基類。
QMainWindow:主窗口類,主窗口具有主菜單欄、工具欄和狀態(tài)欄。類似于一般的應用程
序的主窗口。如果你想做個嵌套的窗口程序開發(fā)的軟件,不妨選擇這個 QMainWindow 。
QWidget:是可視界面類的基類,也就是說 QMainWindow 類也是由 QWidget 繼承封裝而來。
所以 QWidget 要比 QMainWindow 功能少一些。
QDialog :對話框類,建立一個對話框界面。比較少使用此項作為基類。一般 QMainWindow 和 QWidget 作為基類的居多。 注因為 QWidget 不帶窗口標題欄等,嵌入式里最好 QWidget
2、按鈕添加
將這個 PushButton 的 text 屬性(文本屬性)改為“關閉程序”。我們 要設計點擊這個按鈕將關閉這個窗口,關閉這個程序。
3、在ui文件里連接信號與槽
在 UI 設計器里有兩種方法可以連接信號與槽。
信號:是一個對象發(fā)出的信號
槽:是當這個對象發(fā)出這個信號時,對應連接的槽就發(fā)被執(zhí)行或者觸發(fā)。
UI 設計器里信號與槽的連接方法一:
在主窗體的上面部分,我們可以看到一些小小的按鈕,如下圖框框部分。用鼠標放在這些按鈕上面可以查看這個按鈕是什么作用。信號槽連接的按鈕也在上面。
點擊信號槽連接的按鈕如下,如下圖①處,點擊進入信號槽連接模式(若想退出信號槽連 接模式,則點擊①處左邊的按鈕),進入信號與槽的連接模式后,將鼠標選中我們的“關閉程序” 按鈕,按住按鈕,然后用鼠標向外拖動,如②處。此時就會出現(xiàn)信號槽連接的符號。
按如下圖步驟選擇,左邊的“關閉程序” pushButton 按鈕的信號,可以看到一個對象的信號可以有多種。右邊的 QMainWindow 的槽函數(shù),如果有其他對象,右邊不一定只有 MainWidnow 的槽函數(shù)(槽),也有可能是其他對象的槽。我們選擇按鈕的 clicked() 信號,將其連接 MainWindow 對象的 close() 槽。這樣就完成了信號與槽的連接,非常簡單。我們也可以預知這個信號與槽的功能,當“關閉程序”pushButton 發(fā)出了 clicked() 信號(也就是單擊信號)。 這個信號由“關閉程序”pushButton 被單擊時發(fā)出。它就會觸發(fā) MainWindow 的 close() 。進而 使整個程序關閉。MainWindow 的 close() 就是退出關閉程序,退出程序的意思。
完成信號槽連接,如下圖。要想返回編輯部件模式點擊如下圖標注位置的按鈕。下圖就是 信號與槽連接的圖示了。在編輯部件模式下我們是看不見的,只有信號槽模式才能看見這樣的 圖示。
UI 設計器里信號與槽的連接方法二:
選中“關閉程序” pushButton 按鈕,然后右鍵,如下圖。選擇“轉(zhuǎn)到槽”。
點擊“轉(zhuǎn)到槽”后,彈出下面的窗口,這一步是先讓我們選擇信號。按如下圖選擇。我們還發(fā)現(xiàn)這個 clicked() 信號并不是 pushButton 的,而是 QAbstactButton 的。只是 pusbButton 繼承了 QAbstracButton ,同時把這個信號也繼承了下來。除此之外我們還看到其 他信號也是不是屬于 pushButton 的,也是被繼承下來了。所以我們在 C++ 基礎部分學過的繼承。在 Qt 里的作用表現(xiàn)的淋漓盡致!根本不用重寫 pushButton 的 clicked() 事件。 pushButton 只需要 繼承父類的 clicked() 事件即可!
點擊確認 后,就會跳轉(zhuǎn)到槽函數(shù)里,這個代碼由 Qt Creator 自動生成。
同時在 mainwindow.h 里聲明了這個槽函數(shù)。
找到 on_pushButton_clicked 這個槽函數(shù)里。在這個槽數(shù)里寫上 this->close();調(diào)用 close() 方法關閉整個程序。
到此這篇關于使用Qt Designer開發(fā)的實現(xiàn)示例的文章就介紹到這了,更多相關Qt Designer開發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
深入解讀C++ 內(nèi)聯(lián)函數(shù)inline|nullptr
內(nèi)聯(lián)函數(shù):用** inline 修飾的函數(shù)叫做內(nèi)聯(lián)函數(shù),編譯時C++編譯器會在調(diào)用的地方展開內(nèi)聯(lián)函數(shù)**,這樣調(diào)用內(nèi)聯(lián)函數(shù)就需要創(chuàng)建棧楨,就提高效率了,這篇文章給大家介紹C++ 內(nèi)聯(lián)函數(shù)inline|nullptr的相關知識,感興趣的朋友跟隨小編一起看看吧2024-07-07淺析C++中memset,memcpy,strcpy的區(qū)別
本篇文章是對C++中memset,memcpy,strcpy的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-07-07