QT二 QT使用generate form 生成常用UI,各種UI控件

一 。沒有使用general form? 和? 使用 general form 后,file層面和代碼層面的不同比較

file層面的不同

代碼層面的不同,

在 使用了general form之后,在主界面的構造方法中,使用ui->setupUi(this),就完成了所有UI的處理。

而之前我們的沒有使用general form的時候,需要自己通過寫代碼一步一步的完成。

比較多出來的file 以及 代碼層面的不同 后的 疑問:

在沒有使用general form時,我們的代碼生成是使用了一系列函數生成的,那么是不是?ui->setupUi(this);的內部也是和我們使用一系列函數差不多呢?

驗證:

1.我們先來看多出來的mainwindow.ui是個啥?

在QT Creator中雙擊?mainwindow.ui,看到會跳轉到一個可以操作的UI界面

使用 UE 打開?mainwindow.ui,可以看到是一個xml格式的文件

 
?結論:mainwindow.ui是一個xml的文件。該文件中用xml格式記錄了當前mainwindow中的組件。QT Creator在打開這個xml的時候,做了事情,將xml文件變成了可視化的UI。如果我們通過可視化UI,給里面的增添改UI,然后QT Creator會將我們的操作變成xml文件。

驗證QT Creator 將開發者可視化UI的操作變成xml實驗:

之前界面和xml是這樣:

我們往界面上通過可視化UI 添加一個 qpushbutton,保存后,可以看到xml文件多了一些東西

2. 那么這個 ui->setupUi(this)是干啥的呢?

我們按照以往的經驗,在?ui->setupUi(this) 這一行上,按住ctrl+鼠標左鍵,看一下這一行代碼跳轉到哪里?--結果跳出來error,

這個error的意思是:我們找不到ui_mainwindows.h這個文件。或者沒有權限打開這個文件。該文件是在這個目錄下:

D:\code_qt\build-004qtUIstudy-Desktop_Qt_5_14_2_MinGW_32_bit-Debug\ui_mainwindow.h

那我們在磁盤里面找一下這個文件。發現確實沒有這個文件。

我們再來看一下給出的error信息 路徑是在

D:\code_qt\build-004qtUIstudy-Desktop_Qt_5_14_2_MinGW_32_bit-Debug\ui_mainwindow.h

這時候就想到了,這個應該是 項目build 之后生成的吧,于是查看了一下該項目的配置,果然是在D:\code_qt\build-004qtUIstudy-Desktop_Qt_5_14_2_MinGW_32_bit-Debug下面,也就是我們需要構建之后,才會生成?ui_mainwindow.h這個文件。

構建此項目

構建完成后,發現就生成了這個目錄了。

在QT Creator 中 打開ui_mainwindow.h文件查看,還是ctrl+鼠標左鍵打開。為什么不用UE直接打開呢?因為在 QT Creator 中打開代碼有關聯性,方便查看。我們終于看到了熟悉的畫面,和我們不使用general form時候的代碼。

二 使用general form 后,QT 幫我們到底做了什么 的回答

1.QT Creator 提供了可視化的UI,方便開發者增刪改UI,

2.改動的UI,QTCreator 會變成本質上是xml的 xxx.ui文件

3.然后QT 會在build 的過程中,將 xxx.ui文件變成ui_xxx.h文件。而這個?ui_xxx.h 文件并不是.h文件,實際上也含有.cpp的內容。

總結

? ? ? ? ? ? ? ? 通過QT build 的過程

xxx.ui--------------------------------------> 變成 最終的?ui_xxx.h 文件

在代碼中 通過?ui->setupUi(this); 這一行代碼 加載?ui_xxx.h,完成 UI的創建。

好處1:

開發者可以通過可視化UI ,實現自己想要的UI界面。QT 幫忙轉換成代碼,最終通過ui->setupUi(this)加載這些代碼生成UI。

?好處2:

開發者可以通過 查看這些可視化UI的最終代碼,學習在代碼層面實現,而不是借助可視化UI工具。

另一個問題:既然QT給了我們可視化UI的界面,為什么還要在第一章學習用代碼生成UI呢?這是因為兩個原因:1是在實際工作用,用代碼生成UI的部分也不少。作為開發者首先就要要弄清楚這個原理。2是因為我們在后面學習到深度定制某一個UI控件的時候(假設我們這里的需求是自己開發一個button,自己的這個button 不能接受鼠標的點擊事件,),這就需要我們自己create mybutton,并重寫 mybutton的click事件,或者直接屏蔽click事件,這些的基礎都是自己創建UI并。如果這塊暫時想不明白也沒有關系,學到后面知識就了解了。

三。 QT控件學習

實際上就是學習如下圖的所有,但是有些UI不常用,有些UI,常用的部分,會在標題前面加上紅色的"常用"兩個字

四 ,Layouts 部分詳解

垂直布局

水平布局(QHBoxLayout

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/74051.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74051.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/74051.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt中多線程

在Qt中實現多線程主要有兩種常用方式&#xff1a;基于QThread的子類化和QObjectmoveToThread的Worker模式。以下是詳細說明和示例代碼&#xff1a; 1. 傳統方法&#xff1a;繼承 QThread&#xff08;適用于簡單任務&#xff09; #include <QThread> #include <QDebug…

從PGC到AIGC:海螺AI多模態內容生成系統架構一站式剖析

海螺AI&#xff1a;基于多模態架構的下一代認知智能引擎 海螺AI核心模型架構基礎模型&#xff1a;abab-6.5語音模型&#xff1a;speech-01 視頻生成管線關鍵子系統快速接入海螺AI 藍耘MaaS平臺什么是MaaS平臺&#xff1f;支持的大模型藍耘搭載海螺AI的優勢 實戰應用教程如何注冊…

二分查找上下界問題的思考

背景 最近在做力扣hot100中的二分查找題目時&#xff0c;發現很多題目都用到了二分查找的變種問題&#xff0c;即二分查找上下界問題&#xff0c;例如以下題目&#xff1a; 35. 搜索插入位置 74. 搜索二維矩陣 34. 在排序數組中查找元素的第一個和最后一個位置 它們不同于查找…

android adjust 卸載與重裝監測

想要洞察應用內用戶的留存率,可以通過Adjust 的卸載與重裝進行監測 名詞解釋: 卸載:集成完成后,卸載應用,安裝狀態為:卸載 重裝:如果應用已經卸載,但一段時間后又進行安裝,則會被視為重裝。 ??????:adjust 文件中說到24 小時后,可以再 adjust 控制臺看安裝…

算法系列——有監督學習——4.支持向量機

一、概述 支持向量機&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一種應用范圍非常廣泛的算法&#xff0c;既可以用于分類&#xff0c;也可以用于回歸。 本文將介紹如何將線性支持向量機應用于二元分類問題&#xff0c;以間隔&#xff08;margin&#x…

【Mani_skill】success判斷的核心調用邏輯

1. 可視化調用流程&#xff08;from Deepseek-r1-Cursor&#xff09; [RL算法調用 env.step()]↓ 調用 env.get_info()↓ 調用 env.evaluate() → 返回包含 success 的字典↓ 將 success 存入 info 字典↓ 在 step() 中處理終止條件&#xff1a; terminated success | fail

【圖像處理基石】什么是HDR圖片?

1. 什么是HDR圖片&#xff1f; HDR&#xff08;高動態范圍圖像&#xff0c;High Dynamic Range&#xff09;是一種通過技術手段擴展照片明暗細節的成像方式。以下是關于HDR的詳細說明&#xff1a; 核心原理 動態范圍&#xff1a;指圖像中最亮和最暗區域之間的亮度差。人眼能…

嵌入式筆記 | 正點原子STM32F103ZET6 4 | 中斷補充

1. 外設引腳重映射 1.1 定義 在STM32中&#xff0c;每個外設的引腳都有默認的GPIO端口&#xff0c;但有些引腳可以通過重映射寄存器將功能映射到其他端口。這種機制稱為引腳重映射&#xff0c;主要用于解決引腳復用沖突或優化PCB布線。 1.2 重映射的類型 部分重映射&#x…

如何選擇合適的 AI 模型?(開源 vs 商業 API,應用場景分析)

1. 引言 在 AI 迅猛發展的今天&#xff0c;各類 AI 模型層出不窮&#xff0c;從開源模型&#xff08;如 DeepSeek、Llama、Qwen&#xff09;到商業 API&#xff08;如 OpenAI 的 ChatGPT、Anthropic 的 Claude、Google Gemini&#xff09;&#xff0c;每種方案都有其優勢與適用…

攻克 3D 模型網站建設難題,看迪威系統優勢

在當今數字化時代&#xff0c;3D 模型廣泛應用于建筑設計、游戲開發、工業制造、文化創意等諸多領域。擁有一個功能強大的 3D 模型網站&#xff0c;對于企業展示產品、設計師分享作品、教育機構開展教學等都具有重要意義。然而&#xff0c;構建這樣一個網站卻并非易事&#xff…

使用uniapp的vite版本進行微信小程序開發,在項目中使用mqtt連接、訂閱、發布信息

1、保證在微信公眾平臺配置socket合法域名 2、項目中使用mqtt 建議在package.json中配置"mqtt": “4.1.0”&#xff0c;使用這個版本的依賴 頁面中引入mqtt并配置連接 // ts-ignoreimport * as mqtt from mqtt/dist/mqtt.js; //要使用這里面的const state reacti…

【FAQ】HarmonyOS SDK 閉源開放能力 —Map Kit(6)

1.問題描述&#xff1a; 使用華為內置的MapComponent&#xff0c; 發現顯示不出來。查看日志&#xff0c; MapRender底層有報錯。 解決方案&#xff1a; 麻煩按以下步驟檢查下地圖服務&#xff0c;特別是簽名證書指紋那部分。 1.一般沒有展示地圖&#xff0c;可能和沒有配置…

現代復古像素風品牌海報游戲排版設計裝飾英文字體 Psygen — Modern Pixel Font

Psygen 是一種像素化等寬字體&#xff0c;具有強烈的復古未來主義和網絡風格美學。塊狀的、基于網格的字體采用了早期的計算機界面、街機游戲排版和 ASCII 藝術。 該字體支持拉丁文、西里爾文和希臘文腳本&#xff0c;使其適用于多語言設計。擴展的字符集還具有唯一的符號和方…

小科普《DNS服務器》

DNS服務器詳解 1. 定義與核心作用 DNS&#xff08;域名系統&#xff09;服務器是互聯網的核心基礎設施&#xff0c;負責將人類可讀的域名&#xff08;如www.example.com&#xff09;轉換為機器可識別的IP地址&#xff08;如192.0.2.1&#xff09;&#xff0c;從而實現設備間的…

lunar是一款無第三方依賴的公歷 python調用

lunar是一款無第三方依賴的公歷(陽歷)、農歷(陰歷、老黃歷)、佛歷和道歷工具&#xff0c;支持星座、儒略日、干支、生肖、節氣、節日、彭祖百忌、吉神(喜神/福神/財神/陽貴神/陰貴神)方位、胎神方位、沖煞、納音、星宿、八字、五行、十神、建除十二值星、青龍名堂等十二神、黃道…

力扣hot100——三數之和(雙指針)

題目&#xff1a;三數之和 排序 雙指針 本題的難點在于如何去除重復解。 算法流程&#xff1a; 1、特判&#xff0c;對于數組長度 n&#xff0c;如果數組為 null 或者數組長度小于 3&#xff0c;返回 []。 2、對數組進行排序。 3、遍歷排序后數組&#xff1a; &#xff08…

操作系統為ubantu的服務器上部署nginx軟件基礎步驟總結

今天在這里&#xff0c;我們總結一下ubantu的服務器上部署nginx軟件&#xff0c;請按照以下步驟進行安裝&#xff1a; 1、更新包列表&#xff1a; 首先更新你系統中的可用軟件包列表&#xff0c;以確保你可以安裝最新版本。 sudo apt update2、 Ubuntu上更新已安裝軟件包&…

記錄一次,rabbitmq開啟stomp插件之后,還是連不上15674端口的問題

原因是裝在docker 里面的rabbitmq 沒有映射15674端口&#xff0c;需重新刪除容器之后重新運行 docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -p 15674:15674 -p 1883:1883 -p 15675:15675 rabbitmq:版本號 進入docker容器開啟插件 docker exec -it rabbitm…

MATLAB 控制系統設計與仿真 - 27

狀態空間的標準型 傳遞函數和狀態空間可以相互轉換&#xff0c;接下來會舉例如何有傳遞函數轉成狀態空間標準型。 對角標準型 當 G(s)可以寫成&#xff1a; 即&#xff1a; 根據上圖可知&#xff1a; 約當標準型 當 G(s)可以寫成&#xff1a; 即&#xff1a; 根據上圖…

1.FastAPI簡介與安裝

文章目錄 為什么選擇FastAPI&#xff1f;FastAPI支持的功能FastAPI的安裝第一個FastAPI應用運行應用 為什么選擇FastAPI&#xff1f; python web開發: Django: 適合大型復雜項目&#xff1b;Flask&#xff1a;適合靈活開發&#xff0c;搭建小型項目&#xff1b;FastAPI: 兼具開…