Qt入門(二):Qt的基本組件

目錄

Designer程序面板

1、布局Layout

打破布局

貼合窗口

2、QWidget的屬性

?3、Qlabel標簽

顯示圖片?

?4、QAbstractButton 按鈕類

按鈕組?

5、QLineEdit 單行文本輸入框

6、ComboBox 組合框

7、若干與數字相關的組件


Designer程序面板

Qt包含了一個Designer程序 ,用于通過可視化界面設計開發界面,保存的文件格式為.ui(界面文件)。界面文件內部使用xml語法的標簽式語言。

在Qt Creator中創建項目時,選中界面文件選項,可以讓自帶的窗口類使用界面文件。

可以看到項目中會增加一個界面文件,雙擊此文件,可以直接使用內置的Designer程序打開并設計。

Designer程序面板區域劃分如下所示:

所有Designer中的操作都可以通過C++代碼實現。

1、布局Layout

可以把布局看做成一個透明的盒子,內部可以放置子組件,這些內部的子組件會按照布局的預設規律自動排序。

布局是可以嵌套的,對于外層布局而言,內層布局相當于外層布局的子組件。

一般比較常用垂直布局和水平布局的方式。

· 垂直布局:內部組件豎著排成一排。

· 水平布局:內部組件橫著排成一排。

常用屬性如下:

打破布局

選中布局后,點擊可以打破布局。

貼合窗口

布局可以貼合窗口,只要選中窗口對象后,再次點擊 按鈕之一即可。

使用 Spacers?伸展器組件可以填充空白。

這樣組件之間的縫隙可以隨著窗口等比例縮放。

效果如下:

2、QWidget的屬性

QWidget的屬性在Designer中顯示為淡黃色,下面是一些常用屬性:

?3、Qlabel標簽

?

QLabel用于顯示文字和圖片,需要注意的是,QLabel不能與用戶交互的,只能展示使用,因此沒有合適的信號函數。

QLabel常用屬性如下:

顯示圖片?

Qt可以直接從本地讀取圖片,支持絕對路徑和相對路徑,但是并不建議這樣做,原因是換一臺計算機運行程序時,這些圖片路徑可能會存在改變。

建議先把圖片導入到項目中,成為項目資源,直接使用Qt虛擬的資源路徑導入圖片,可以在任何環境下使用這些資源圖片。

注意導入的圖片不能特別大(分辨率過高或文件體積過大),因為圖片的操作非常消耗程序資源。?

?下面是導入圖片成為項目資源的操作步驟:

1.? 把命名好(不包含中文字符)的圖片文件放置到項目的工作目錄中。

2.? 在Qt Creator中選中項目名稱,鼠標右鍵,點擊“添加新文件”。

3.? 在彈出的窗口中,按照下圖所示操作。

4.? 在彈出的窗口中給資源文件命名,例如res

5.? 在項目管理界面,直接點擊“完成”,可以看到在項目中多了一個.qrc格式的資源文件。

6.? 首先選中qrc文件,點擊添加前綴,可以給資源文件一個新建的虛擬路徑。

7.? 添加完成前綴后,點擊,可以導入圖片到項目中稱為資源。

8.? 導入成功后,可以在qrc文件中看到導入成功的圖片。

9.? 點擊窗口左下角的(快捷鍵?Ctrl+B)重新構建項目,然后就可以在Designer找到圖片資源并使用了。

?4、QAbstractButton 按鈕類

QAbstractButton是按鈕類的抽象基類,因此內部包含了按鈕的基礎屬性和函數。

相關組件

常用屬性:

?按鈕類的常用信號函數:

按鈕組?

可以使用 QButtonGroup 組件對多個按鈕進行分組,這是一種按鈕的邏輯分組,沒有任何UI效果,其主要目的是用一個信號槽同時監控多個按鈕對象的狀態。

信號函數如下:

參數中表示當前觸發按鈕對象本身,表示當前觸發按鈕的編號。

5、QLineEdit 單行文本輸入框

QLineEdit用于輸入一個單行文本,常用屬性如下:

常用的信號函數如下:

6、ComboBox 組合框

?

雙擊組合框可以進行編輯?

?

ComBox用于選擇一個選項,功能類似于QRadioButton。

常用屬性如下:

常用信號如下:

7、若干與數字相關的組件

?以下組件都是數字相關。

這些組件有一些共同的屬性和函數。

常用信號

// value屬性值發生改變時發射的信號
// 參數為當前的value值
void	valueChanged(int value)[signal]

?

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

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

相關文章

Qt編程技巧總結篇(3)-信號-槽-多線程(二)

文章目錄 Qt編程技巧總結篇(3)-信號-槽-多線程(二)主進程與子線程線程同步實例與應用 小結 Qt編程技巧總結篇(3)-信號-槽-多線程(二) 多線程學習,使用QMutex,…

RTK_ROS_導航(3):點云的壓縮,PointCloud轉scan

目錄 1. 源碼的安裝2. 修改訂閱的話題3. 可視化1. 源碼的安裝 安裝過程如下 mkdir -p point_to_scan_ws/src cd point_to_scan_ws/src git clone https://github.com/BluewhaleRobot/pointcloud_to_laserscan.git cd .. catkin_make source devel/setup.bash2. 修改訂閱的話題 …

2024.07.01校招 實習 內推 面經

綠*泡*泡VX: neituijunsir 交流*裙 ,內推/實習/校招匯總表格 1、校招 | 元戎啟行2025校園招聘正式批正式啟動(內推) 校招 | 元戎啟行2025校園招聘正式批正式啟動(內推) 2、提前批 | 多益網絡2025屆校園…

基于抽象 HandlerInterceptor 快速實現接口鑒權

歡迎關注公眾號:冬瓜白 相關文章: 每天學習一點點之 Spring Web MVC 之抽象 HandlerInterceptor 快速實現常用功能(限流、權限等) 在[每天學習一點點之 Spring Web MVC 之抽象 HandlerInterceptor 快速實現常用功能&#xff08…

Numpy的廣播機制(用于自動處理不同形狀的數組)

NumPy 廣播是一種強大的機制,允許 NumPy 在執行元素級運算時自動處理不同形狀的數組。廣播的規則使得無需顯式地創建匹配形狀的數組,直接進行運算,大大簡化了代碼并提高了效率。 基本概念 廣播的基本思想是讓較小的數組在需要的維度上進行擴…

【MySQL數據庫之概念性問題】

1、關系型數據庫和非關系型數據庫 關系型數據庫(Relational Database,簡稱RDBMS)和非關系型數據庫(NoSQL Database)是兩種不同的數據庫類型。SQL本身叫做結構化查詢語言1、關系型數據庫:(MySQL…

Django 更新數據 save()方法

1,添加模型 Test/app11/models.py from django.db import modelsclass Post(models.Model):title models.CharField(max_length200)content models.TextField()pub_date models.DateTimeField(date published)class Book(models.Model):title models.CharFie…

Spring Boot集成grpc快速入門demo

1.什么是GRPC? gRPC 是一個高性能、開源、通用的RPC框架,由Google推出,基于HTTP2協議標準設計開發,默認采用Protocol Buffers數據序列化協議,支持多種開發語言。gRPC提供了一種簡單的方法來精確的定義服務&#xff0c…

UE5.3-基礎藍圖類整理一

常用藍圖類整理: 1、獲取當前關卡名:Get Current LevelName 2、通過關卡名打開關卡:Open Level(by name) 3、碰撞檢測事件:Event ActorBeginOverlap 4、獲取當前player:Get Player Pawn 5、判斷是否相等&#xff1…

深入解析CSS中的!important規則:優先級與最佳實踐

先上實踐,再討論設計 在實際工程中,!important 的使用場景通常出現在需要確保某個樣式規則具有最高優先級,以覆蓋其他可能沖突的樣式規則時。以下是一個具體的例子: 場景描述 假設你正在開發一個網站,該網站使用了多…

JavaScript的數組與函數

數組 <script type"text/javascript">/** 知識點&#xff1a;數組* 理解&#xff1a;一維數組的容器* 概念&#xff1a;* 1.數組中的數據叫做元素* 2.元素都有編號叫做下標/索引* 3.下標從0開始* 注意&#xff1a;* 1.數組作為數據的容器…

【JavaScript腳本宇宙】狀態管理利器:JavaScript 庫全面解析

提升項目效率與可維護性&#xff1a;JavaScript 狀態管理庫大揭秘 前言 在現代前端開發中&#xff0c;狀態管理是一個至關重要的話題。隨著復雜性的增加&#xff0c;有效地管理應用程序的狀態變得越來越具有挑戰性。本文將介紹一些流行的 JavaScript 庫&#xff0c;這些庫提供…

WEB安全基礎:網絡安全常用術語

一、攻擊類別 漏洞&#xff1a;硬件、軟件、協議&#xff0c;代碼層次的缺陷。 后?&#xff1a;方便后續進行系統留下的隱蔽后?程序。 病毒&#xff1a;一種可以自我復制并傳播&#xff0c;感染計算機和網絡系統的惡意軟件(Malware)&#xff0c;它能損害數據、系統功能或攔…

C++語言學習精簡筆記(包含C++20特性)

目錄 1 C新語法C與CC編譯運行String編程范式C基礎類型**自動類型推導**統一對象初始化&#xff1a;Uniform Initialization 控制結構if語句for語句switch語句namespace 2 函數函數聲明形式參數函數參數傳遞的選擇函數返回值的選擇 函數重載 Lambda表達式函數的定義和申明生存期…

磁力貓磁力搜索大全教程,如何使用磁力鏈接

磁力鏈接是一種特殊的下載鏈接&#xff0c;磁力鏈接可以理解為一個文件識別碼&#xff0c;而并非具體的資源地址&#xff0c;下載軟件需要拿著這個識別碼去整個互聯網(DHT網絡)去尋找持有該資源的用戶(節點)&#xff0c;如果找到則可以進行傳輸下載。一般年代越久遠的磁力鏈接下…

【一】m2芯片的mac中安裝ubuntu24虛擬機集群

文章目錄 1. 虛擬機配置2. 復制虛擬機2.1 修改主機名2.2 修改網絡 1. 虛擬機配置 在官方網站下載好ubuntu24-arm版鏡像開始安裝&#xff0c;安裝使用VMWare Fusion的社區免費授權版,使用一臺m2芯片的mac電腦作為物理機平臺。 為什么選擇ubuntu24&#xff1f;因為centOS7目前已…

Proteus + Keil單片機仿真教程(五)多位LED數碼管的靜態顯示

Proteus + Keil單片機仿真教程(五)多位LED數碼管 上一章節講解了單個數碼管的靜態和動態顯示,這一章節將對多個數碼管的靜態顯示進行學習,本章節主要難點: 1.鎖存器的理解和使用; 2.多個數碼管的接線封裝方式; 3.Proteus 快速接頭的使用。 第一個多位數碼管示例 元件…

『C + ⒈』‘\‘

&#x1f942;在反斜杠(\)有⒉種最常用的功能如下所示&#x1f44b; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main(void) {int a 10;int b 20;int c 30;if (a 10 &&\b 20 &&\c 30){printf("Your print\n");}else{prin…

二分查找3

1. 有序數組中的單一元素&#xff08;540&#xff09; 題目描述&#xff1a; 算法原理&#xff1a; 二分查找解題關鍵就在于去找到數組的二段性&#xff0c;這里數組的二段性是從單個數字a開始出現然后分隔出來的&#xff0c;如果mid落入左半部分那么當mid為偶數時nums[mid1]…

ByteMD富文本編輯器的vue3配置

Git地址&#xff1a;GitHub - bytedance/bytemd: ByteMD v1 repository 控制面板輸入 npm install bytemd/vue-next 下載成功后在src/main.ts中引用 import "bytemd/dist/index.css";引入后保存&#xff0c;下面是一些插件&#xff0c;比如說我用到gmf和hightLight&…