国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Qt中C++代碼搭配UI文件實(shí)現(xiàn)交互界面

這篇具有很好參考價(jià)值的文章主要介紹了Qt中C++代碼搭配UI文件實(shí)現(xiàn)交互界面。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

系列文章目錄

第一章 Qt中C++代碼搭配UI文件實(shí)現(xiàn)交互界面

第二章 Qt中多ui使用及簡單布局實(shí)現(xiàn)交互界面


文章目錄

一、關(guān)于Qt中的UI文件

二、創(chuàng)建一個(gè)基本的Qt工程

1.創(chuàng)建工程時(shí),選擇不生成ui文件

2.工程內(nèi)容

3.構(gòu)建并運(yùn)行這個(gè)工程

4.實(shí)現(xiàn)并添加UI文件

三.使用這個(gè)新增的UI

四.編譯運(yùn)行

總結(jié)

文章預(yù)告


????????前一段時(shí)間,被抽調(diào)到另一個(gè)測試項(xiàng)目,工作內(nèi)容是,基于現(xiàn)有的一份Qt實(shí)現(xiàn)的工具代碼,按照UI/UE設(shè)計(jì)做UI優(yōu)化。做軟件開發(fā)的同行都知道,我們最怕的是半路接手別人的項(xiàng)目代碼,這些代碼實(shí)際運(yùn)行中可能很正常,但通常有一些毛病:沒注釋、命名不規(guī)范、邏輯混亂、沒有設(shè)計(jì)文檔等等。

? ? ? ? 看了這份工具的代碼,我發(fā)現(xiàn)這個(gè)工作看起來不是那么容易。在跟之前負(fù)責(zé)開發(fā)這個(gè)工具的同事交流后,了解到這個(gè)同事進(jìn)入了一個(gè)誤區(qū),或者說對Qt了解甚少。

? ? ? ? Q:全部使用絕對值算窗口位置,應(yīng)該花了很多時(shí)間調(diào)整的?

? ? ? ? A:是啊,確實(shí)花了不少時(shí)間

? ? ? ? Q:為什么不使用UI設(shè)計(jì)工具來實(shí)現(xiàn)界面呢?

? ? ????A:直接拉UI總感覺不受自己控制,最后調(diào)來調(diào)去的反而浪費(fèi)時(shí)間

????????A:純UI沒辦法實(shí)現(xiàn)繼承,就需要實(shí)現(xiàn)多個(gè)界面

????????c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui??

?????????c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui

這里提到的basewidget就是下面這樣的,除了QWidget還需要繼承一個(gè)? ?JsonPhaseApi類,這個(gè)類實(shí)現(xiàn)了解析json內(nèi)容的一些邏輯。?

? ? ?c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui


一、關(guān)于Qt中的UI文件

????????我們不管使用QtCreator還是QtDesigner實(shí)現(xiàn)一個(gè)UI界面,最終表現(xiàn)形式,都只是一個(gè)后綴為.ui的文本文件,用文本編輯器打開,這個(gè)ui文件就是一個(gè)XML格式的文件。將在QtCreator或者QtDesigner中拖拽實(shí)現(xiàn)的UI界面用XML格式組織起來,等待使用。

? ? ? ? 那么Qt中會(huì)怎么使用這個(gè)ui文件呢,畢竟我們開發(fā)過程中不可能直接去讀這個(gè)ui文件,簡單來說,Qt在構(gòu)建過程中,會(huì)將這個(gè)ui文件翻譯成一個(gè)ui_打頭的c++頭文件,這個(gè)頭文件跟基本的C++頭文件沒什么不一樣,只是其中的代碼是基于Qt的,這些代碼實(shí)現(xiàn)了一個(gè)C++類。

二、創(chuàng)建一個(gè)基本的Qt工程

1.創(chuàng)建工程時(shí),選擇不生成ui文件

c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui

2.工程內(nèi)容

c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui

3.構(gòu)建并運(yùn)行這個(gè)工程

c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui

這個(gè)工程運(yùn)行起來后,就是一個(gè)很簡單的跟隨系統(tǒng)樣式的窗口,標(biāo)題欄、最小化、最大化、關(guān)閉按鈕都是跟隨系統(tǒng)的。

4.實(shí)現(xiàn)并添加UI文件

????????這里我們可以使用QtCreator或者QtDesigner實(shí)現(xiàn)一個(gè)獨(dú)立的UI,然后將這個(gè)ui文件添加到這個(gè)工程中。這個(gè)UI中僅拖入一個(gè)Push Button類型的按鈕,結(jié)果如下:

c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,uic++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui

? ? ? ? 這之后,我們選擇清空掉build目錄下所有內(nèi)容,然后重新構(gòu)建,這之后,就能在build目錄中看到一個(gè)ui_form.h的文件,這就是上面說到的Qt自動(dòng)翻譯的文件,將form.ui翻譯成ui_form.h,具體如下圖所示:

c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui

將這個(gè)文件放到Q他Creator中打開后,跟編輯模式中ui文件比對一下就能發(fā)現(xiàn),Qt翻譯的真準(zhǔn)確:

c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,uic++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui

三.使用這個(gè)新增的UI

? ? ? ? 接下來就是本篇文章的核心環(huán)節(jié),核心觀點(diǎn)就一個(gè),生成的UI可以當(dāng)成一個(gè)普通的類使用。經(jīng)過Qt翻譯生成的ui_form.h,基類是UI_Form,其派生類是用Ui這個(gè)namespace包裹的From類。那么,在C++中使用一個(gè)類的傳統(tǒng)方式是:在代碼中顯式的include對應(yīng)的頭文件,聲明并定義一個(gè)類的實(shí)例,然后使用這個(gè)實(shí)例,使用這個(gè)From同樣如此。

? ? ? ? 為了將新增的UI嵌入到工程中的Widget類中使用,首先在widget.h中聲明From類的對象,考慮到隱藏ui_form.h中的細(xì)節(jié),選擇前置聲明的方式,具體如下圖所示:

c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui

????????接著,在widget.cpp中包含對應(yīng)的頭文件,并實(shí)例化Widget類中的私有成員變量:Form類型對像ui,具體如下圖所示:

c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui

?ps:當(dāng)然這里也需要注意在析構(gòu)函數(shù)中回收ui指針指向的這段內(nèi)存,這個(gè)很重要

四.編譯運(yùn)行

最后,就是激動(dòng)人心的編譯運(yùn)行環(huán)節(jié),運(yùn)行結(jié)果如下圖所示:

c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui


總結(jié)

????????使用Qt提供的UI設(shè)計(jì)器,可以簡單的通過鼠標(biāo)拖拽的方式來設(shè)計(jì)交互界面,優(yōu)點(diǎn)有很多,所見即所得、速度快、簡單,如果有更細(xì)的分工:比如邏輯實(shí)現(xiàn)與UI實(shí)現(xiàn),那么代碼實(shí)現(xiàn)與UI實(shí)現(xiàn)完全可以分開進(jìn)行。負(fù)責(zé)邏輯實(shí)現(xiàn)的工程師,根據(jù)溝通好的內(nèi)容(約定好UI中有哪些控件),yiju UE文檔編寫邏輯代碼、實(shí)現(xiàn)信號(hào)槽等等;負(fù)責(zé)UI實(shí)現(xiàn)的工程師,只需要根據(jù)UI文檔實(shí)現(xiàn)交互界面。

? ? ? ? 當(dāng)然,一個(gè)工具的界面內(nèi)容很多,考慮到代碼開發(fā)與后期維護(hù),完全可以將一個(gè)完整的界面分割成一個(gè)個(gè)子界面,最后通過簡單的代碼將每一個(gè)子界面在主窗口中完成布局。這就像C++中實(shí)現(xiàn)一個(gè)功能,首先根據(jù)高內(nèi)聚低耦合的原則,將這個(gè)功能拆分成多個(gè)子功能,然后將子功能抽象為一個(gè)個(gè)子類,最后將所有子類聚合為一個(gè)完整的功能。

? ? ? ? 如果你的英文閱讀水平不錯(cuò)的話,可以看看Qt的幫助文檔中Using a Designer UI File in Your Application章節(jié),在線幫助文檔和QtCreator自帶幫助文檔,可以在QtCreator的幫助中直接搜索Using a Designer UI File in Your Application,如下:

c++交互界面設(shè)計(jì),Qt開發(fā)技巧,qt,c++,ui

文章預(yù)告

下一篇文章,會(huì)說一說在一個(gè)Widget類中使用多ui以及簡單代碼實(shí)現(xiàn)布局,敬請期待?。。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-547546.html

到了這里,關(guān)于Qt中C++代碼搭配UI文件實(shí)現(xiàn)交互界面的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [QT基礎(chǔ)]QT不同ui界面的簡單切換(C++)

    [QT基礎(chǔ)]QT不同ui界面的簡單切換(C++)

    ????????window10,QT 5.11.1,語言c++ ? ? ? ? 設(shè)計(jì)兩個(gè)ui界面,能實(shí)現(xiàn)一個(gè)ui界面到另一個(gè)ui界面的跳轉(zhuǎn)。 為了以防萬一,如果是第一次使用qt創(chuàng)建ui界面可以參考以下博客 QT界面創(chuàng)建 1,代碼思路 ? ? ? ? 兩個(gè)ui界面,使用一個(gè)按鈕進(jìn)行頁面的切換,考慮到實(shí)際的應(yīng)用場景,

    2024年02月03日
    瀏覽(30)
  • Qt純代碼實(shí)現(xiàn)UI界面

    Qt純代碼實(shí)現(xiàn)UI界面

    設(shè)置編輯框內(nèi)容的字體樣式,包括加粗、下劃線、斜體、藍(lán)色、紅色、黑色

    2024年01月19日
    瀏覽(29)
  • 基于C++和Qt封裝一個(gè)簡單的socket(TCP/IP)通信UI界面

    基于C++和Qt封裝一個(gè)簡單的socket(TCP/IP)通信UI界面

    ????????最近在學(xué)習(xí)TCP/IP和socket套接字的有關(guān)知識(shí),了解了三次握手四次揮手,TCP協(xié)議等等一大堆知識(shí),但紙上得來終覺淺。網(wǎng)絡(luò)上C++代碼實(shí)現(xiàn)socket通信的資料很多,方便學(xué)習(xí),于是想到自己用Qt實(shí)現(xiàn)一個(gè)基礎(chǔ)的具有網(wǎng)絡(luò)通信收發(fā)功能的服務(wù)端UI軟件。進(jìn)入正題: ? ? ? ?

    2024年02月08日
    瀏覽(21)
  • QT練手小項(xiàng)目-——天氣播報(bào)小狗(ui展示分析,構(gòu)造實(shí)現(xiàn),json格式數(shù)據(jù)分析,界面交互,天氣圖標(biāo)處理,小狗語音)

    QT練手小項(xiàng)目-——天氣播報(bào)小狗(ui展示分析,構(gòu)造實(shí)現(xiàn),json格式數(shù)據(jù)分析,界面交互,天氣圖標(biāo)處理,小狗語音)

    前言 ? ? ? ? 經(jīng)過之前一段時(shí)間的QT學(xué)習(xí),做出一個(gè)小軟件來總結(jié)自己掌握關(guān)于qt的知識(shí)點(diǎn)。網(wǎng)絡(luò)上有許多免費(fèi)的天氣接口(api),有xml格式的,也有json格式的。具體xml和json有什么區(qū)別,這里我就不去深究了,我們這里用的是一個(gè)json格式的數(shù)據(jù),所以 重點(diǎn)是對json格式的數(shù)據(jù)

    2023年04月17日
    瀏覽(29)
  • 基于easyx和C++實(shí)現(xiàn)的鼠標(biāo)交互界面(點(diǎn)擊按鈕)| 系統(tǒng)設(shè)計(jì)

    基于easyx和C++實(shí)現(xiàn)的鼠標(biāo)交互界面(點(diǎn)擊按鈕)| 系統(tǒng)設(shè)計(jì)

    實(shí)現(xiàn)效果一覽: 當(dāng)鼠標(biāo)放上去后效果: 代碼實(shí)現(xiàn)及詳解: 歡迎討論!

    2024年04月27日
    瀏覽(25)
  • [編程語言][C++][Qt]單獨(dú)添加UI文件

    [編程語言][C++][Qt]單獨(dú)添加UI文件

    不知什么原因,Qt Creator并不是很完美很智能。當(dāng)先寫好界面類的頭文件和源代碼文件后,我們再添加用于可視化界面設(shè)計(jì)的UI文件時(shí),會(huì)出現(xiàn)一些問題。 當(dāng)使用CMake管理項(xiàng)目時(shí),CMake會(huì)讀取 CMakeLists.txt 文件來確定各種項(xiàng)目設(shè)置。需要把 MainWindow.ui 包含進(jìn)項(xiàng)目時(shí),在 CMakeLists.

    2024年02月07日
    瀏覽(25)
  • 基于Qt5的圖像交互控件開發(fā)(C++實(shí)現(xiàn))

    基于Qt5的圖像交互控件開發(fā)(C++實(shí)現(xiàn))

    博主近期看到海康VM、halcon以及visionpro視覺軟件都包含一個(gè)圖像智能交互控件,然后近期根據(jù)其中的技術(shù)原理,也基于Qt5仿照開發(fā)了一個(gè)類似的功能,包含矩形、旋轉(zhuǎn)矩形、任意多邊形、圓、圓環(huán)、扇環(huán),直線卡尺以及圓卡尺等常用控件,圖像智能交互是在計(jì)算機(jī)視覺領(lǐng)域中

    2024年02月05日
    瀏覽(65)
  • 12-2_Qt 5.9 C++開發(fā)指南_自定義Qt Designer 插件(UI 設(shè)計(jì)器自定義界面組件的 Widget 插件,直接安裝到 UI設(shè)計(jì)器組件面板里,如同 Qt 自帶的界面設(shè)計(jì)組件一樣)

    12-2_Qt 5.9 C++開發(fā)指南_自定義Qt Designer 插件(UI 設(shè)計(jì)器自定義界面組件的 Widget 插件,直接安裝到 UI設(shè)計(jì)器組件面板里,如同 Qt 自帶的界面設(shè)計(jì)組件一樣)

    上篇使用提升法(promotion)來創(chuàng)建自定義組件,本篇為 UI 設(shè)計(jì)器設(shè)計(jì)自定義界面組件的 Widget 插件,直接安裝到 UI設(shè)計(jì)器的組件面板里,如同 Qt 自帶的界面設(shè)計(jì)組件一樣使用,在設(shè)計(jì)時(shí)就能看到組件的實(shí)際顯示效果,只是編譯和運(yùn)行時(shí)需要使用到插件的動(dòng)態(tài)鏈接庫 (Windows 平臺(tái)上

    2024年02月05日
    瀏覽(60)
  • Qt QWebEngine 加載網(wǎng)頁及交互,實(shí)現(xiàn)C++與JS 相互調(diào)用

    Qt QWebEngine 加載網(wǎng)頁及交互,實(shí)現(xiàn)C++與JS 相互調(diào)用

    本篇主要介紹QT開發(fā)過程中如何利用QWebengine加載網(wǎng)頁,通過C++與JS 相互調(diào)用,實(shí)現(xiàn)QT程序與HTML網(wǎng)頁的交互。QtWebEngine 是Qt的一個(gè)子模塊,它提供了一個(gè) Web 瀏覽器引擎,可以輕松地將互聯(lián)網(wǎng)上的內(nèi)容嵌入到 Qt 應(yīng)用程序中。 Qt WebEngine 分為以下三大部分: Qt WebEngine Widgets Module 用

    2024年02月04日
    瀏覽(29)
  • Qt C++手動(dòng)創(chuàng)建.ui文件并且與類進(jìn)行綁定

    Qt C++手動(dòng)創(chuàng)建.ui文件并且與類進(jìn)行綁定

    前言:有的時(shí)候做一些新的窗口時(shí),創(chuàng)建完.cpp和.h后發(fā)現(xiàn)沒有.ui文件,有些控件純代碼實(shí)現(xiàn)就比較費(fèi)時(shí)間,而且微調(diào)很麻煩。以下時(shí)近一段時(shí)間總結(jié)的手動(dòng)給類創(chuàng)建.ui文件并且與所創(chuàng)建的類進(jìn)行綁定。 1. 首先需要在項(xiàng)目里添加一個(gè)Qt Designer Form 選擇需要的控件類型,比如QSt

    2024年02月12日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包