欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt Designer的簡(jiǎn)單使用方法

 更新時(shí)間:2021年08月17日 10:12:21   投稿:zx  
用 C++ 代碼編寫(xiě)圖形界面的問(wèn)題就是不直觀,因此 Qt 項(xiàng)目開(kāi)發(fā)了專(zhuān)門(mén)的可視化圖形界面編輯器,本文就詳細(xì)的介紹一下

在前面兩節(jié)的例子中,主界面窗口的尺寸和標(biāo)簽控件顯示的矩形區(qū)域等,都是用 C++ 代碼編寫(xiě)的。窗口和控件的尺寸都是預(yù)估的,控件如果多起來(lái),那就不好估計(jì)每個(gè)控件合適的位置和大小了。

用 C++ 代碼編寫(xiě)圖形界面的問(wèn)題就是不直觀,因此 Qt 項(xiàng)目開(kāi)發(fā)了專(zhuān)門(mén)的可視化圖形界面編輯器——Qt Designer(Qt 設(shè)計(jì)師)。通過(guò) Qt Designer 就可以很方便地創(chuàng)建圖形界面文件 *.ui ,然后將 ui 文件應(yīng)用到源代碼里面,做到“所見(jiàn)即所得”,大大方便了圖形界面的設(shè)計(jì)。

本節(jié)就演示一下 Qt Designer 的簡(jiǎn)單使用, 學(xué)習(xí)拖拽控件和設(shè)置控件屬性,并將 ui 文件應(yīng)用到 Qt 程序代碼里。

使用 Qt Designer 設(shè)計(jì)界面

在開(kāi)始菜單中找到「Qt 5.9.0-->5.9-->MinGW 5.3.0(32-bit)-->Designer」,或者在 Qt 命令行工具中直接輸入命令designer ,兩種方法都可以打開(kāi) Qt Designer。 Qt Designer 默認(rèn)會(huì)彈出新建窗體的對(duì)話(huà)框,如下圖所示:

新建窗體對(duì)話(huà)框

新建窗體對(duì)話(huà)框左邊是各種窗體的類(lèi)型模板,“templates\forms”是常見(jiàn)的作為用戶(hù)主界面的窗體類(lèi)型:

  • 前面三個(gè)(Dialog With Buttons Bottom、Dialog With Buttons Right、Dialog With Buttons)都是對(duì)話(huà)框窗口,分別為按鈕居底部、按鈕居右邊和不帶按鈕。
  • 第四個(gè)是“Main Window”,即主窗口界面,主窗口功能最為豐富,有菜單欄、工具欄、狀態(tài)欄、中央部件, 并且可以添加停靠/浮動(dòng)窗口。這個(gè)比較復(fù)雜,后續(xù)章節(jié)講解。
  • 第五個(gè)是最簡(jiǎn)單的通用“Widget”界面,本節(jié)就使用這個(gè)作為主界面窗口。

選中“Widget”之后,再點(diǎn)擊“創(chuàng)建”按鈕,就會(huì)新建一個(gè)該類(lèi)型的窗體,如下圖所示:

新建一個(gè)Widget窗體

Qt Designer 的上方是菜單欄和工具欄,工具欄里需要留心的是中間的四個(gè)按鈕,是指圖形界面的四種編輯模式,依次為:

序號(hào) 編輯模式 說(shuō)明
編輯窗口部件 為窗口拖拽控件(即部件),編輯控件布局等。
編輯信號(hào)/槽 用戶(hù)在圖形界面的一些動(dòng)作會(huì)觸發(fā)窗口或控件的信號(hào),信號(hào)對(duì)應(yīng)的處理函數(shù)就是槽函數(shù),這種模式實(shí)現(xiàn)二者的關(guān)聯(lián)關(guān)系。
編輯伙伴 最常見(jiàn)的就是將標(biāo)簽控件設(shè)置為其他控件(如編輯框)的伙伴,標(biāo)簽控件文本就可以指明關(guān)聯(lián)控件的名稱(chēng)/功能/用途,并且能方便地設(shè)置快捷鍵。
編輯 Tab 順序 在窗口中,用戶(hù)可以按 Tab 鍵依次選擇進(jìn)入各個(gè)控件,這個(gè)模式就是編輯各個(gè)控件被選擇的順序。

本節(jié)只使用第 ① 種“編輯窗口部件”的模式,其他的以后再慢慢講。

Qt Designer 左邊的“Widget Box”是控件(或叫部件)工具箱, 包含了豐富的可拖拽的 Qt 控件。

Qt Designer 中間部分帶有點(diǎn)陣標(biāo)示的窗體就是我們新建的界面窗體。

Qt Designer 右邊是三個(gè)工具箱窗口:

  • 第一個(gè)是對(duì)象查看器,用來(lái)記錄當(dāng)前窗體里面有哪些控件,每個(gè)控件對(duì)象的名稱(chēng)和類(lèi)名都會(huì)列出來(lái),可以看到默認(rèn)的對(duì)象是 Form,它的類(lèi)名是 QWidget;
  • 第二個(gè)是屬性編輯器,用于編輯窗體或控件的屬性,比如對(duì)象名稱(chēng)、窗口標(biāo)題、窗口大小等等。
  • 第三個(gè)工具箱比較復(fù)雜,它是選項(xiàng)卡式的,有“資源瀏覽器”、“動(dòng)作編輯器”和“信號(hào)/槽編輯器”三個(gè)工具箱,這幾個(gè)以后再講,本節(jié)暫時(shí)用不著。

拖拽控件是最簡(jiǎn)單不過(guò)的了,這里描述拖一個(gè)標(biāo)簽控件到主界面。在左邊“Widget Box”里面,把滑塊拖到最底下, 或用鼠標(biāo)滾輪往下滾到底,可以看到“Display Widgets”類(lèi)別里的“Label”控件,這個(gè)就是前面幾節(jié)使用的 QLabel 。將鼠標(biāo)指針移到“Label”,左鍵按下不松,再往主界面窗口里拖動(dòng),拖到大概靠主界面窗體的左上位置, 然后松開(kāi)鼠標(biāo)左鍵,就給主界面窗口添加了一個(gè)標(biāo)簽控件了。添加后,界面窗體如下圖所示:

添加Label控件

上圖只截了中間的主界面窗體和右邊的兩個(gè)工具窗口,主界面的“TextLabel”就是選中的標(biāo)簽控件,它周?chē)蝗τ?8 個(gè)可拖動(dòng)的小方塊,可以拉伸標(biāo)簽控件的大小,如果鼠標(biāo)左鍵按到該控件上拖動(dòng)就可以控制 控件顯示的位置。

在對(duì)象查看器里,這時(shí)候多出來(lái)一行“l(fā)abel”和“QLabel”,就是標(biāo)簽對(duì)象的名稱(chēng)和類(lèi)名。

在屬性編輯器里,可以看到“l(fā)abel : QLabel”字樣,說(shuō)明這時(shí)可以設(shè)置 label 的屬性。 label 的屬性非常多,可以用鼠標(biāo)滾輪滾動(dòng)查看眾多屬性,就不一一枚舉了。

最關(guān)鍵的屬性都自動(dòng)被加粗顯示了,有三個(gè):

屬性 說(shuō)明
objectName 對(duì)象名稱(chēng),該名稱(chēng)決定以后在 C++ 代碼里這個(gè)對(duì)象的指針變量名,用過(guò)這個(gè)對(duì)象名稱(chēng)就能調(diào)用該對(duì)象的函數(shù)。ui 文件里的對(duì)象名稱(chēng)全是指針變量名,因?yàn)樗鼈內(nèi)际怯?new 創(chuàng)建的。
geometry 控件顯示占據(jù)的幾何圖形,就是顯示的矩形區(qū)域,該屬性是通過(guò)四個(gè)子屬性控制的, 點(diǎn)開(kāi)箭頭展開(kāi)看到 X、Y、寬度、高度,設(shè)置這四個(gè)數(shù)值,可以控制控件顯示的位置和控件的大小。
text 顯示的文本,標(biāo)簽控件就是專(zhuān)門(mén)用來(lái)顯示文本的,這個(gè)是它最主要的功能。

標(biāo)簽控件對(duì)象名稱(chēng)就不修改了,因?yàn)榫鸵粋€(gè)。我們?cè)O(shè)置 geometry 的四個(gè)子屬性: X 為 10,Y 為 10,寬度為 200,高度為 40,如下圖所示:

設(shè)置Label控件的geometry的四個(gè)子屬性

可以看到中間的標(biāo)簽控件就正確地顯示為距離左邊 10 像素,距離上方 10 像素,寬度為 200 像素, 高度為 40 像素的大標(biāo)簽了。

然后在屬性編輯器里拖動(dòng)右邊滑塊,找到 text 屬性,點(diǎn)擊值列的“TextLabel”,修改為“C語(yǔ)言中文網(wǎng)”(不含雙引號(hào)),主界面里的標(biāo)簽就顯示為“C語(yǔ)言中文網(wǎng)”了。

這時(shí)看到的是帶有點(diǎn)陣的主界面窗口,點(diǎn)陣是方便對(duì)齊控件和估計(jì)控件大小的,點(diǎn)陣分割的最小正方形就是 10*10 的。 如果希望看到運(yùn)行時(shí)的主界面窗口顯示效果,可以點(diǎn)擊 Qt Designer 的菜單“窗體 --> 預(yù)覽(P)...”,或者按快捷鍵 Ctrl+R,新彈出顯示的就是運(yùn)行時(shí)沒(méi)有點(diǎn)陣的正常窗體預(yù)覽效果:

預(yù)覽正常窗體

點(diǎn)擊右上角關(guān)閉按鈕就可以關(guān)閉預(yù)覽。到這我們的主界面窗口就編輯完成了。

點(diǎn)擊 Qt Designer 菜單“文件 --> 保存(S)”,或者按快捷鍵 Ctrl+S,將該文件保存到 D:\QtDemo\ 文件夾里面,保存的文件名為 hello.ui 。 

ui 文件其實(shí)就一個(gè)標(biāo)準(zhǔn) XML 格式的文本文件,我們可以用文本編輯器打開(kāi),它的內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
    <class>Form</class>

    <!-- 主窗口 -->
    <widget class="QWidget" name="Form">
        <!-- 主窗口幾何尺寸 -->
        <property name="geometry">
            <rect>
                <x>0</x>
                <y>0</y>
                <width>427</width>
                <height>244</height>
            </rect>
        </property>
        <!-- 主窗口標(biāo)題 -->
        <property name="windowTitle">
            <string>Form</string>
        </property>

        <!-- Label控件 -->
        <widget class="QLabel" name="label">
            <!-- Label控件幾何尺寸 -->
            <property name="geometry">
                <rect>
                    <x>10</x>
                    <y>10</y>
                    <width>200</width>
                    <height>40</height>
                </rect>
            </property>
            <!-- Label控件文本 -->
            <property name="text">
                <string>C語(yǔ)言中文網(wǎng)</string>
            </property>
        </widget>
    </widget>

    <resources/>
    <connections/>
</ui>

<!-- -->包圍起來(lái)的是注釋?zhuān)俏易约禾砑拥摹?/p>

到此這篇關(guān)于Qt Designer的簡(jiǎn)單使用方法的文章就介紹到這了,更多相關(guān)Qt Designer使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中ctemplate的使用

    C++中ctemplate的使用

    CTemplate是一種簡(jiǎn)單但功能強(qiáng)大的模板引擎,廣泛用于各種HTML模板解析和生成,本文主要介紹了C++中ctemplate的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • C++實(shí)現(xiàn)本地TCP通訊的示例代碼

    C++實(shí)現(xiàn)本地TCP通訊的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C++如何利用TCP技術(shù),實(shí)現(xiàn)本地ROS1和ROS2的通訊,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • 解析在Direct2D中畫(huà)Bezier曲線(xiàn)的實(shí)現(xiàn)方法

    解析在Direct2D中畫(huà)Bezier曲線(xiàn)的實(shí)現(xiàn)方法

    本篇文章是對(duì)在Direct2D中畫(huà)Bezier曲線(xiàn)的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語(yǔ)言簡(jiǎn)易掃雷游戲

    C語(yǔ)言簡(jiǎn)易掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言簡(jiǎn)易掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C++數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)鄰接表

    C++數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)鄰接表

    這篇文章主要為大家詳細(xì)介紹了C++數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)鄰接表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Opencv光流運(yùn)動(dòng)物體追蹤詳解

    Opencv光流運(yùn)動(dòng)物體追蹤詳解

    這篇文章主要為大家詳細(xì)介紹了Opencv光流運(yùn)動(dòng)物體追蹤的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • OpenCV實(shí)現(xiàn)馬賽克功能

    OpenCV實(shí)現(xiàn)馬賽克功能

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)馬賽克功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++超詳細(xì)講解友元與內(nèi)部類(lèi)

    C++超詳細(xì)講解友元與內(nèi)部類(lèi)

    朋友們好,這篇播客我們繼續(xù)C++的初階學(xué)習(xí),現(xiàn)在對(duì)我們對(duì)C++的友元,內(nèi)部類(lèi)知識(shí)點(diǎn)做出總結(jié),整理出來(lái)一篇博客供我們一起復(fù)習(xí)和學(xué)習(xí),如果文章中有理解不當(dāng)?shù)牡胤?還希望朋友們?cè)谠u(píng)論區(qū)指出,我們相互學(xué)習(xí),共同進(jìn)步
    2022-06-06
  • C語(yǔ)言三子棋小游戲的實(shí)現(xiàn)代碼

    C語(yǔ)言三子棋小游戲的實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言三子棋小游戲的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 深入學(xué)習(xí)C語(yǔ)言mmap和shm*的使用方法技巧

    深入學(xué)習(xí)C語(yǔ)言mmap和shm*的使用方法技巧

    本文將詳細(xì)介紹mmap和shm的工作原理,包括它們?cè)趦?nèi)存映射和共享內(nèi)存方面的優(yōu)勢(shì)和適用場(chǎng)景,同時(shí),文章還會(huì)分享一些使用mmap和shm的技巧和經(jīng)驗(yàn),以幫助讀者優(yōu)化并提高程序性能,使你能夠在實(shí)際項(xiàng)目中更好地利用這些技術(shù)來(lái)加速數(shù)據(jù)共享和多線(xiàn)程應(yīng)用
    2023-10-10

最新評(píng)論