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