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.mzph.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…