第三節_PySide6中Qt Designer 的基礎使用_上篇

文章目錄

  • 前言
  • 一、Qt Designer簡介
    • 1.什么是 Qt Designer?
    • 2.核心功能
    • 3.核心優勢
  • 二、Qt Designer界面介紹
    • 1.主窗口的創建
    • 2.窗口五大區域的簡單介紹
  • 三、界面布局 Layout
    • 1.窗口布局方式介紹
    • 2.UI布局技巧概述
    • 3.UI布局實戰應用
  • 總結


前言

第二節_PySide6項目創建流程介紹、手把手教學打包EXE可執行文件 詳細介紹了PySide6項目的創建和exe可執行文件的打包;本節介紹如何快速入門,簡單來說就是如何通過拖曳鼠標等可視化操作創建一個 UI 程序,達到快速入門的目的。
即主要講解使用 Qt Designer(PySide6-Designer工具) 來制作 UI 界面,需要注意的是創建 UI 程序,可以通過 UI 工具和編寫純代碼兩種方式來實現,各有優勢。


一、Qt Designer簡介

1.什么是 Qt Designer?

Qt Designer 是 Qt 框架官方提供的 可視化界面設計工具,專為快速構建 GUI 應用程序而生。作為 PySide6(Qt 的 Python 綁定)的核心配套工具,它允許開發者通過拖拽組件的方式設計窗口、對話框等界面元素,無需手動編寫布局代碼,大幅提升開發效率。

2.核心功能

1)拖拽式設計:提供按鈕、文本框、表格等 200+ 預制 Qt 控件,直接拖拽到畫布;

2)實時預覽:支持切換不同主題(如 Windows、Fusion)查看界面效果;

3)屬性編輯器:精細調整控件尺寸、樣式、字體、事件等屬性;

4)信號與槽連接:可視化綁定控件事件與業務邏輯(需結合代碼實現);

5)資源管理:集成圖片、圖標等資源到 .qrc 文件,避免路徑依賴;

6)多語言支持:為國際化(i18n)生成翻譯模板文件(.ts)。

3.核心優勢

優勢說明
開發效率提升復雜布局秒級完成,告別手寫 QHBoxLayout 和 QVBoxLayout 代碼
設計代碼分離通過 .ui 文件隔離界面與邏輯,便于團隊協作和后期維護
跨平臺一致性生成的界面自動適配 Windows/macOS/Linux 原生風格
官方維護支持由 Qt 公司持續更新,完美兼容 PySide6 最新版本

二、Qt Designer界面介紹

1.主窗口的創建

在Pycharm的外部工具中點擊 PySide6-Designer 工具,會自動彈出 “新建窗體” 對話框,在模板選項中,最常用的就是 Widget(通用窗口)和 Main Window(主窗口);這里我們選擇 Main Window 模板,點擊 ”創建“ ,并保存并命名為 test002.ui,其主窗口默認添加了菜單欄、工具欄和狀態欄:

在這里插入圖片描述
在這里插入圖片描述

2.窗口五大區域的簡單介紹

區域 1 是 Widget Box(工具箱)窗格,其中提供了很多控件,每個控件都有自己的名稱,用于提供不同的功能,如常用的按鈕、單選按鈕、文本框等,可以直接拖曳到主窗口中:

在這里插入圖片描述
區域 2 為主窗口,可以將區域 1 的控件拖曳到區域 2 中,在菜單欄中選擇“窗體”→“預覽”
命令,或者按 Ctrl+R 快捷鍵,就可以看到窗口的預覽效果:

在這里插入圖片描述
區域 3 為“對象查看器”面板,可以查看主窗口中放置的對象列表:

在這里插入圖片描述
區域 4 是 Qt Designer 的“屬性編輯器”面板,其中提供了對窗口、控件、布局的屬性編輯功能,
1)sizePolicy:控件大小策略;2)minimumSize:最小寬度和最小高度;3)maximumSize:最大寬度和最大高度等屬性對UI界面上排版比較重要,需要多注意下:

在這里插入圖片描述
區域 5 是 “信號/槽編輯器” 面板、 “動作編輯器” 面板和“資源瀏覽器” 面板的集合:
1)在 “信號/槽編輯器” 視圖中可以為控件添加自定義的信號與槽函數,以及編輯控件的信號與槽函數;
2)在 “動作編輯器” 視圖中可以編輯在菜單欄里添加的各種動作,重新命名、增加圖標和添加快捷鍵等操作;
3)在 “資源瀏覽器” 視圖中創建、增加 .qrc 資源文件,便于其他控件對資源文件的引用。
其中信號/槽使用方式主要還是通過代碼操作比較方便,但是 “動作編輯器” 和 “資源瀏覽器” 在UI工具使用的很多,這兩部分需要注意下。

在這里插入圖片描述

三、界面布局 Layout

1.窗口布局方式介紹

當主窗口中有很多控件時,為了避免雜亂需要對界面進行排版和布局,這點非常重要。
進行布局一般有兩種方式:一是使用布局管理器進行布局;二是使用容器控件進行
布局;由于大體邏輯一致,這邊主要對用布局管理器進行布局進行講解。

在這里插入圖片描述

四種窗口布局方式

布局方式說明
Vertical Layout(垂直布局)將控件按 垂直方向(從上到下) 依次排列,適用場景:設置菜單、縱向排列的選項組
Horizontal Layout(水平布局)將控件按 水平方向(從左到右) 依次排列,適用場景:工具欄按鈕、水平排列的表單元素
Grid Layout(網格布局)將控件放置在 二維網格的行列交叉點,支持跨行跨列,適用場景:復雜表單、儀表盤、棋盤式布局
Form Layout(表單布局)專門用于 標簽-輸入框對 的快速布局,自動對齊標簽和控件,適用場景:登錄窗口、數據錄入表單

2.UI布局技巧概述

在進行UI布局之前,需要了解下布局的一些技巧,總體來說是 由內而外,層層遞進,后面實戰應用中會使用到下述技巧,可以先進行大體理解,然后在UI界面布局時進行相互印證:

1)先不使用任何的布局方式 Layout ,把所有控件 按位置 擺放在界面上;

2)然后先從 最內層開始 進行控件的布局方式 Layout 設定;

3)逐步拓展到 外層 進行控件的布局方式 Layout 設定;

4)最后調整 layout 中控件的大小比例, 優先使用布局方式 Layout的 layoutStrentch 屬性來控制。

3.UI布局實戰應用

參照第二節_PySide6項目創建流程介紹、手把手教學打包EXE可執行文件的demo例程進行創建Pycharm項目,并命名為PythonDemo002,以下是項目目錄結構:

在這里插入圖片描述
打開 test002.ui 文件,將所需要的控件 按位置 擺放在界面上,先不進行任何布局,并將每個控件進行命名。如下圖所示,全部控件主要分為 9 部分,總體呈垂直分布排列:

在這里插入圖片描述
在這里插入圖片描述
對第 3 部分 lab_Image 顯示圖像的控件進行 最小高度 的值設置為 300,避免界面縮放時保持控件的高度;對第 5 部分 PushButton 控件進行 最小尺寸 、最大尺寸和圖標尺寸的屬性設置為 60,固定圖標的大小(btn_4控件放寬了最大寬度的值,為了后續展示網格布局的差異):

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
按住Ctrl按鍵,然后使用鼠標點擊控件,可以實現選中多個控件,然后右鍵選擇布局操作。
1)對第 1 部分進行水平布局;
2)對第 5 部分進行網格布局(注意:網格布局中的“btn_4”控件默認占一個方格,對其進行拉伸就可以占 2個方格);
3)將第 7 部分和第 8 部分合并成一個區域,整體進行水平布局,其中第7 部分遵循布局技巧從 最內層開始 先將 label_3 、btn_OpenCalc 、btn_OpenNote三個控件進行水平布局,再跟TextEdit_1控件進行垂直布局,逐步拓展到 外層 最后跟第 8 部分進行水平布局;
4)最后再將MainWindow進行垂直布局即可,布局結構目錄可以在 “對象查看器” 中查看:

在這里插入圖片描述
在這里插入圖片描述
對布局界面進行一些精細的調整,調整第 1 部分和第 7 部分中控件的大小比例, 優先使用布局方式 Layout的 layoutStrentch 屬性來控制,分別調整為:1,6,2 和 2,1,1 比例:

在這里插入圖片描述
對第 9 部分 PushButton 控件進行居中處理,需要先在工具欄拖動一個水平布局控件,然后將 PushButton 控件放入水平布局中(注意:如果在界面上無法放進去,可以先在界面上選中水平布局控件,然后將PushButton 控件拖入 “對象查看器” 中所被選中的水平布局控件);最后將 PushButton 控件的 水平策略 設置為 Fixed

在這里插入圖片描述
對第 8 部分進行優化,期望 “打開圖片消息” label_2 控件能居中,并且 TextEdit_2 控件的上邊緣能跟第 7 部分的 TextEdit_1 控件上邊緣在同一水平:
1)使 label_2 控件居中可以參照步驟 ⑥ 的用法;
2)使 TextEdit 控件上邊緣在同一水平可以通過調整水平布局 horizontalLayout_5 控件 Layout 屬性的 LayoutTopMarginLayoutBottomMargin 值可以來調整控件上下間距,這里各設置為 4 (調整控件左右間距可以通過 LayoutLeftMarginLayoutRightMargin ):

在這里插入圖片描述
對主窗體 MainWindow 進行風格和樣式的設置,通過對 styleSheet 屬性指定以下內容就可以對主界面的風格和樣式進行改變:

* { \n color: blue ;\n font-size:15px;\n}

在這里插入圖片描述

總結

以上就是關于如何通過拖曳鼠標等可視化操作創建一個 UI 程序的詳細介紹,主要講解了 Qt Designer的核心功能和優勢,以及UI界面的整體布局,通過實戰應用能更快的入門,小伙伴都行動起來操作一下吧!需要明確的是 Qt Designer 符合 MVC(模型—視圖—控制器)設計模式,做到了顯示和業務邏輯的分離,本節的講解主要是顯示方面,后續會通過對 “信號/槽編輯器” 面板、 “動作編輯器” 面板和“資源瀏覽器” 面板的介紹來講解業務邏輯的方面,可參考 第四節_PySide6中Qt Designer 的基礎使用_下篇

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

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

相關文章

行列式的線性性質(僅限于單一行的加法拆分)

當然可以,以下是經過排版優化后的內容,保持了原始內容不變,僅調整了格式以提升可讀性: 行列式的線性性質(加法拆分) 這個性質說的是:如果行列式的某一行(或某一列)的所有…

Git使用說明

配置Git 確定已經安裝了Git, 通過以下的命令配置全局的郵箱和用戶名 git config --global user.email "your@xx.com" git config --global user.name "yourname" 初始化本地倉庫 首先,打開終端并切換到存放你代碼的項目目錄。接著執行以下命令,將該…

【后端高階面經:緩存篇】36、如何保證Redis分布式鎖的高可用和高性能?

一、分布式鎖核心挑戰:從單機到分布式的跨越 (一)分布式鎖的本質需求 互斥性:同一時刻僅一個客戶端持有鎖容錯性:節點故障時鎖仍有效(避免單點)原子性:加鎖/釋放鎖操作原子完成可重入性:支持同一客戶端多次獲取同一把鎖(二)Redis天然優勢 單線程模型保證操作原子性…

【后端高階面經:MongoDB篇】40、怎么優化MongoDB的查詢性能?

一、索引優化:構建高效查詢的基石 (一)索引類型與適用場景 1. 五大核心索引類型 索引類型適用場景示例代碼性能影響單字段索引單條件查詢(如用戶ID、狀態字段)db.users.createIndex({ user_id: 1 })低復合索引多條件…

Linux wget 常用命令詳解

目錄 1.1 工具定位 基礎下載示例 二、高效下載參數詳解 2.1 下載控制類 2.2 文件管理類 2.3 網絡優化類 三、高級應用場景 3.1 遞歸下載與整站鏡像 3.2 自動化下載實踐 3.3 安全下載配置 四、參數速查手冊 4.1 常用參數匯總 1.1 工具定位 基礎下載語法 wget [選項…

Pytorch中文文本分類

本文為🔗365天深度學習訓練營內部文章 原作者:K同學啊 將對中文文本進行分類,示例如下: 文本分類流程圖 1.加載數據 import time import pandas as pd import torch from torch.utils.data import DataLoader, random_split impo…

13.「極簡」扣子(coze)教程 | 小程序UI設計進階(三)讓界面動起來,實操講透“聚焦”事件

前一期大師兄介紹了扣子平臺組件的兩種狀態“禁用”和“加載”。這兩種方法使控件可以通過簡單設置表示出更多的運行狀態。今天大師兄將詳細介紹控件的一種事件“聚焦”。 扣子(coze)編程 「極簡」扣子(coze)教程 | 小程序UI設計進階 II!讓…

劍指offer11_矩陣中的路徑

矩陣中的路徑 請設計一個函數,用來判斷在一個矩陣中是否存在一條路徑包含的字符按訪問順序連在一起恰好為給定字符串。 路徑可以從矩陣中的任意一個格子開始,每一步可以在矩陣中向左,向右,向上,向下移動一個格子。 如…

騰訊2025年校招筆試真題手撕(三)

一、題目 今天正在進行賽車車隊選拔,每一輛賽車都有一個不可以改變的速度。現在需要選取速度差距在10以內的車隊(車隊中速度的最大值減去最小值不大于10),用于迎賓。車隊的選拔按照的是人越多越好的原則,給出n輛車的速…

《三維點如何映射到圖像像素?——相機投影模型詳解》

引言 以三維投影介紹大多比較分散,不少小伙伴再面對諸多的坐標系轉換中容易弄混,特別是再寫代碼的時候可能搞錯,所有這篇文章幫大家完整的梳理3D視覺中的投影變換的全流程,一文弄清楚這個過程,幫助大家搞清坐標系轉換…

Ini配置文件讀寫,增加備注功能

1.增加備注項寫入 例: #節點備注 [A] #項備注 bbb1 ccc2 [B] bbb1 IniConfig2 ic new IniConfig2(); //首次寫入 if (!ic.CanRead()) { ic.AddSectionReMarke("A", "節點備注"); ic.SetValue("A&qu…

OpenHarmony 5.0中狀態欄添加以太網狀態欄圖標以及功能實現

目錄 1.前置條件 2.方案 1.前置條件 首先以太網接口是有問題的,如下按照如下流程將以太網接口進行修復 OpenHarmony 以太網卡熱插拔事件接口無效-CSDN博客 然后上述的接口可以了就可以通過這個接口獲取以太網是否連接狀態 要注意wifi連接的干擾和預置虛擬網口干擾 2.方案…

RNN GRU LSTM 模型理解

一、RNN 1. 在RNN中, 2. RNN是一個序列模型,與非序列模型不同,序列中的元素互相影響: 是由 計算得來的。 在前向傳播中: 用于計算 和 用于計算 和 因此,當進行反向鏈式法則求導時候&#xf…

多路徑傳輸(比如 MPTCP)控制實時突發

實時突發很難控制,因為 “實時” 和 “突發” 相互斥。實時要求避免排隊,而突發必然要排隊,最終的解決方案都指向找一個公說公有理,婆說婆有理的中間點,這并沒解決問題,只是權衡了問題。 這種局部解決問題的…

函數式編程思想詳解

函數式編程思想詳解 1. 核心概念 不可變數據 (Immutable Data) 數據一旦創建,不可修改。任何操作均生成新數據,而非修改原數據。 優點:避免副作用,提升并發安全,簡化調試。 Java實現:使用final字段、不可變…

iOS 主要版本發布歷史

截至 2025 年 5 月,iOS 的最新正式版本是 iOS 18,于 2024 年 9 月 16 日 正式發布。此前的 iOS 17 于 2023 年 9 月 18 日 發布,并在 2024 年被 iOS 18 取代。(維基百科) 📱 iOS 主要版本發布歷史 以下是 iOS 各主要版本的發布日…

矩陣詳解:線性代數在AI大模型中的核心支柱

🧑 博主簡介:CSDN博客專家、CSDN平臺優質創作者,高級開發工程師,數學專業,10年以上C/C, C#, Java等多種編程語言開發經驗,擁有高級工程師證書;擅長C/C、C#等開發語言,熟悉Java常用開…

基于51單片機和8X8點陣屏、獨立按鍵的飛行躲閃類小游戲

目錄 系列文章目錄前言一、效果展示二、原理分析三、各模塊代碼1、8X8點陣屏2、獨立按鍵3、定時器04、定時器1 四、主函數總結 系列文章目錄 前言 用的是普中A2開發板。 【單片機】STC89C52RC 【頻率】12T11.0592MHz 【外設】8X8點陣屏、獨立按鍵 效果查看/操作演示&#xff…

區塊鏈可投會議CCF C--APSEC 2025 截止7.13 附錄用率

Conference:32nd Asia-Pacific Software Engineering Conference (APSEC 2025) CCF level:CCF C Categories:軟件工程/系統軟件/程序設計語言 Year:2025 Conference time:December 2-5, 2025 in Macao SAR, China …

pdf圖片導出(Visio\Origin\PPT)

一、Visio 導入pdf格式圖片 1. 設計->大小,適應繪圖。 2. 文件->導出,導出為pdf格式。 上面兩部即可得到只包含圖的部分的pdf格式。 如果出現的有默認白邊,可以通過以下方式設置: 1. 文件->選項->自定義功能區->…