QT Quick(C++)跨平臺應用程序項目實戰教程 6 — 彈出框

目錄

1.?Popup組件介紹

2. 使用


上一章內容完成了音樂播放器程序的基本界面框架設計。本小節完成一個簡單的功能。單擊該播放器頂部菜單欄的“關于”按鈕,彈出該程序的相關版本信息。我們將使用Qt Quick的Popup組件來實現。

1.?Popup組件介紹

Qt 中的 Popup 組件用于在應用程序界面上臨時彈出一個窗口,它常作為上下文菜單、提示框或信息展示區域使用。Popup 窗口通常依附于某個父控件,在特定事件(如鼠標點擊、懸停)觸發時顯示,能提供額外的操作選項或信息,且不影響主窗口的布局。在用戶與 Popup 交互完成或觸發特定條件(如點擊外部區域)時,它會自動隱藏。

2. 使用

修改LayoutHeaderView.qml文件,在ToolBar中添加Popup組件(緊跟RowLayout):

Popup{id:aboutPoptopInset: 0leftInset: -2rightInset: 0bottomInset: 0parent: Overlay.overlayx:(parent.width-width)/2y:(parent.height-height)/2width: 250height: 230background: Rectangle{color:"#e9f4ff"radius: 5border.color: "#2273a7ab"}contentItem: ColumnLayout{width: parent.widthheight: parent.heightLayout.alignment: Qt.AlignHCenterImage{Layout.preferredHeight: 60source: "qrc:/images/music"Layout.fillWidth:truefillMode: Image.PreserveAspectFit}Text {text: qsTr("音樂播放器")Layout.fillWidth: truehorizontalAlignment: Text.AlignHCenterfont.pixelSize: 16color: "#8573a7ab"font.family:  window.mFONT_FAMILYfont.bold: true}Text {text: qsTr("版本:V1.0")Layout.fillWidth: truehorizontalAlignment: Text.AlignHCenterfont.pixelSize: 16color: "#8573a7ab"font.family:  window.mFONT_FAMILYfont.bold: true}}}

上述代碼使用 Qt Quick 的 Popup 組件創建了一個名為aboutPop的彈出窗口。設置了內外邊距,使其位于覆蓋層中心,尺寸為寬 250、高 230。背景是帶圓角和邊框的矩形,顏色為淺藍。內容部分用 ColumnLayout 垂直排列元素,包含一個展示音樂圖片的 Image 組件和兩個 Text 組件,分別顯示 “音樂播放器” 和 “版本:V1.0”,字體使用window.mFONT_FAMILY,顏色為淡藍色,字號 16 且加粗。

然后修改RowLayout組件中的相關代碼如下:

MusicToolButton{icon.source: "qrc:/images/music.png"toolTip: "關于"onClicked: {aboutPop.open()}}

上述代碼在原來的基礎上添加了onClicked事件。當按鈕被點擊時,執行aboutPop.open(),即打開之前定義的aboutPop彈出窗口,用于展示相關信息。

運行程序,單擊頂部菜單欄“關于”按鈕,最終效果如下圖所示:

上一章:QT Quick(C++)跨平臺應用程序項目實戰教程 5 — 界面設計-CSDN博客

下一章:

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

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

相關文章

DuckDB系列教程:如何分析Parquet文件

Parquet 是一種強大的、基于列的存儲格式,適用于實現更快捷和更高效的數據分析。您可以使用 DuckDB 這種內存型分析數據庫來處理 Parquet 文件并運行查詢以對其進行分析。 在這篇文章中,我們將逐步介紹如何使用 DuckDB 對存儲在 Parquet 文件中的餐廳訂單…

異步框架使用loguru和contextvars實現日志按Id輸出

需求闡述 工作中使用fastStream模塊消費kafka事件的時候,遇到以下問題。1. 由于main.py模塊要用到許多其他模塊 ,main模塊,和其他模塊都有日志輸出。2. 要實現異步消費事件,但是又不希望日志打印的很亂。3. 想著在每次消費事件的…

【HTTPS協議】

文章目錄 一、HTTPS二、HTTPS協議五種加密方案1.只使用對稱加密2.只使用非對稱加密3.雙方都使用非對稱加密4.對稱加密非對稱加密中間人攻擊理解數字簽名CA機構和證書 5. 對稱加密非對稱加密證書認證中間人篡改證書?中間人調包整個證書? 常見問題總結 一、…

算法設計學習8

實驗目的及要求: 通過深入學習樹(Tree)和二叉樹(Binary Tree)這兩種重要的數據結構,掌握它們的基本概念、性質和操作,提高對樹形結構的理解和應用能力。通過本實驗,學生將深化對樹和…

P17_ResNeXt-50

🍨 本文為🔗365天深度學習訓練營 中的學習記錄博客🍖 原作者:K同學啊 一、模型結構 ResNeXt-50由多個殘差塊(Residual Block)組成,每個殘差塊包含三個卷積層。以下是模型的主要結構&#xff1…

【YOLO系列(V5-V12)通用數據集-剪刀石頭布手勢檢測數據集】

YOLO格式的剪刀石頭布手勢檢測數據集,適用于YOLOv5-v11所有版本,可以用于本科畢設、發paper、做課設等等,有需要的在這里獲取: 【YOLO系列(V5-V12)通用數據集-剪刀石頭布手勢檢測數據集】 數據集專欄地址&a…

基于連接池與重試機制的高效TDengine寫入方案

摘要 在時序數據庫應用場景中,如何構建穩定高效的寫入機制是核心挑戰。本文基于提供的Python代碼實現,解析一種結合連接池管理、智能重試策略和事務控制的TDengine寫入方案,并分析其技術優勢與優化方向。 一、代碼 from dbutils.pooled_db import PooledDB import timede…

抖音熱點視頻識別與分片處理機制解析

抖音作為日活數億的短視頻平臺,其熱點視頻識別和分片處理機制是支撐高并發訪問的核心技術。以下是抖音熱點視頻識別與分片的實現方案: 熱點視頻識別機制 1. 實時行為監控系統 用戶行為聚合:監控點贊、評論、分享、完播率等指標的異常增長曲線內容特征分析:通過AI識別視頻…

基于RDK X3的“校史通“機器人:SLAM導航+智能交互,讓校史館活起來!

視頻標題: 【校史館の新晉頂流】RDK X3機器人:導覽員看了直呼內卷 視頻文案: 跑得賊穩團隊用RDK X3整了個大活——給校史館造了個"社牛"機器人! 基于RDK X3開發板實現智能導航與語音交互SLAM技術讓機器人自主避障不…

Metal學習筆記十三:陰影

在本章中,您將了解陰影。陰影表示表面上沒有光。當另一個表面或對象使對象與光線相遮擋時,您會看到對象上的陰影。在項目中添加陰影可使您的場景看起來更逼真,并提供深度感。 陰影貼圖 陰影貼圖是包含場景陰影信息的紋理。當光線照射到物體…

Matplotlib:數據可視化的藝術與科學

引言:讓數據開口說話 在數據分析與機器學習領域,可視化是理解數據的重要橋梁。Matplotlib 作為 Python 最流行的繪圖庫,提供了從簡單折線圖到復雜 3D 圖表的完整解決方案。本文將通過實際案例,帶您從基礎繪圖到高級定制全面掌握 …

Python數據可視化-第4章-圖表樣式的美化

環境 開發工具 VSCode庫的版本 numpy1.26.4 matplotlib3.10.1 ipympl0.9.7教材 本書為《Python數據可視化》一書的配套內容,本章為第4章 圖表樣式的美化 本章主要介紹了圖表樣式的美化,包括圖表樣式概述、使用顏色、選擇線型、添加數據標記、設置字體…

嵌入式海思Hi3861連接華為物聯網平臺操作方法

1.1 實驗目的 快速演示 1、認識輕量級HarmonyOS——LiteOS-M 2、初步掌握華為云物聯網平臺的使用 3、快速驅動海思Hi3861 WIFI芯片,連接互聯網并登錄物聯網平臺

如何在Redis容量限制下保持熱點數據

如何在Redis容量限制下保持熱點數據 當數據庫有100萬條數據但Redis只能保存10萬條時,需要智能的策略來確保Redis中存儲的都是最常訪問的熱點數據。以下是幾種有效的解決方案: 一、內存淘汰策略 Redis提供了多種內存淘汰機制,當內存不足時會自動刪除部分數據: 策略命令/配…

cv2.fillPoly()和cv2.polylines()

參數解釋 cv2.fillPoly() 和 cv2.polylines() 都是 OpenCV 的函數。功能是繪制多邊形,cv2.fillPoly()可繪制實心多邊形, cv2.polylines() 可繪制空心多邊形 cv2.fillPoly()用途:提取ROI 可在黑色圖像上,填充白色,作為…

數據庫--SQL

SQL:Structured Query Language,結構化查詢語言 SQL是用于管理關系型數據庫并對其中的數據進行一系列操作(包括數據插入、查詢、修改刪除)的一種語言 分類:數據定義語言DDL、數據操縱語言DML、數據控制語言DCL、事務處…

【python】速通筆記

Python學習路徑 - 從零基礎到入門 環境搭建 安裝Python Windows: 從官網下載安裝包 https://www.python.org/downloads/Mac/Linux: 通常已預裝,可通過終端輸入python3 --version檢查 配置開發環境 推薦使用VS Code或PyCharm作為代碼編輯器安裝Python擴展插件創建第…

批量刪除git本地分支和遠程分支命令

1、按照關鍵詞開頭匹配刪除遠程分支 git branch -r | grep "origin/feature/develop-1"| sed s/origin\///g | xargs -n 1 git push origin --delete git branch -r 列出所有遠端分支。 grep "origin/feature/develop-1" 模糊匹配分支名稱包含"orig…

上市電子制造企業如何實現合規的質量文件管理?

浙江潔美電子科技股份有限公司成立于2001年,是一家專業為片式電子元器件(被動元件、分立器件、集成電路及LED)配套生產電子薄型載帶、上下膠帶、離型膜、流延膜等產品的國家高新技術企業,主要產品有分切紙帶、打孔經帶、壓孔紙帶、上下膠帶、塑料載帶及其…

leetcode數組-有序數組的平方

題目 題目鏈接:https://leetcode.cn/problems/squares-of-a-sorted-array/ 給你一個按 非遞減順序 排序的整數數組 nums,返回 每個數字的平方 組成的新數組,要求也按 非遞減順序 排序。 輸入:nums [-4,-1,0,3,10] 輸出&#xff…