QML使用Popup实现弹出Message

方案一:popup

在这里插入图片描述

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15ApplicationWindow {visible: truewidth: 640height: 480title: qsTr("Top Message Popup Example")ColumnLayout {anchors.centerIn: parentspacing: 10Button {text: "Show Success Message"onClicked: showMessage("Success", "Operation completed successfully!")}Button {text: "Show Warning Message"onClicked: showMessage("Warning", "Please be cautious!")}Button {text: "Show Error Message"onClicked: showMessage("Error", "An error occurred!")}}Popup {id: messagePopupx: (parent.width - width) / 2y: 10width: parent.width * 0.9height: 60modal: falsefocus: trueclosePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsidebackground: Rectangle {id: backgroundRectradius: 5border.width: 1// 使用属性别名来允许从外部更改颜色property alias bgColor: backgroundRect.colorproperty alias borderColor: backgroundRect.border.color}RowLayout {anchors.fill: parentanchors.margins: 10Text {id: messageTitlefont.bold: truefont.pixelSize: 16}Text {id: messageTextLayout.fillWidth: truefont.pixelSize: 14horizontalAlignment: Text.AlignHCenterverticalAlignment: Text.AlignVCenter}Button {text: "Close"onClicked: messagePopup.close()}}enter: Transition {ParallelAnimation {NumberAnimation { target: messagePopup; property: "opacity"; from: 0.0; to: 1.0; duration: 300 }NumberAnimation { target: messagePopup; property: "y"; from: -messagePopup.height; to: 10; duration: 300; easing.type: Easing.OutBack }}}exit: Transition {ParallelAnimation {NumberAnimation { target: messagePopup; property: "opacity"; from: 1.0; to: 0.0; duration: 300 }NumberAnimation { target: messagePopup; property: "y"; from: 10; to: -messagePopup.height; duration: 300; easing.type: Easing.InBack }}}Timer {id: autoCloseTimerinterval: 2000running: messagePopup.visibleonTriggered: messagePopup.close()}}function showMessage(title, message) {let color = ""switch (title.toLowerCase()) {case "info":color =  "#2196F3"; // 蓝色breakcase "success":color = "#4CAF50"; // 绿色breakcase "warning":color = "#FFC107"; // 黄色breakcase "error":color = "#F44336"; // 红色breakdefault:color = "#323232"; // 默认灰色break}messageTitle.text = title + ": "messageText.text = message// 设置背景颜色和边框颜色messagePopup.background.bgColor = Qt.lighter(color, 1.5)messagePopup.background.borderColor = color// 设置文本颜色messageTitle.color = colormessageText.color = Qt.darker(color, 1.2)messagePopup.open()}
}

方案二:Rectangle

在这里插入图片描述


import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {visible: truewidth: 640height: 480title: qsTr("Notification Example")function showMessage(category, message) {notificationModel.append({"category": category,"message": message});}ListModel {id: notificationModel}Column {id: notificationContaineranchors.margins: 10// anchors.right: parent.rightanchors.top: parent.topspacing: 8Repeater {model: notificationModelRectangle {id: notificationItemproperty string category: model.categoryproperty string message: model.messageproperty int yOffset: 0// 根据类别设置背景颜色color: {switch (category) {case "info":return "#2196F3"; // 蓝色case "success":return "#4CAF50"; // 绿色case "warning":return "#FFC107"; // 黄色case "error":return "#F44336"; // 红色default:return "#323232"; // 默认灰色}}height: 30opacity: 0.0radius: 8visible: opacity > 0 || height > 0width: 300transform: Translate {y: notificationItem.yOffset}Component.onCompleted: {showAnimation.start();}Text {anchors.centerIn: parentcolor: "white"font.weight: Font.Boldopacity: notificationItem.opacitytext: message}// 显示动画ParallelAnimation {id: showAnimationNumberAnimation {duration: 300from: 0.0property: "opacity"target: notificationItemto: 1.0}NumberAnimation {duration: 300from: -10property: "yOffset"target: notificationItemto: 0}}// 隐藏动画SequentialAnimation {id: hideAnimationParallelAnimation {NumberAnimation {duration: 200property: "opacity"target: notificationItemto: 0.0}NumberAnimation {duration: 200property: "yOffset"target: notificationItemto: -10}}NumberAnimation {duration: 100property: "height"target: notificationItemto: 0}}Timer {id: hideTimerinterval: 3000repeat: falserunning: trueonTriggered: {hideAnimation.start();}}Connections {function onFinished() {notificationModel.remove(index);}target: hideAnimation}}}}Row {anchors.bottom: parent.bottomspacing: 10Button {text: "Info"onClicked: showMessage("info", "This is an information message!")}Button {text: "Success"onClicked: showMessage("success", "Operation completed successfully!")}Button {text: "Warning"onClicked: showMessage("warning", "This is a warning message!")}Button {text: "Error"onClicked: showMessage("error", "An error occurred!")}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/501932.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ⅱ.INTRODUCTION TO CUDA C

前言 上一节环境配置好了,我们开始吧! 一、A First Program 1. Hello, World! 我们先写一个C语言的 Hello, World! 作为对比 int main(void){printf("Hello, World!\n");return 0; }大家应该知道这个代码运行在CPU上吧,我们CP…

如何轻松关闭 iPhone 上的 HEIC [HEIC 图像技巧]

您是否正在为关闭 iPhone 上的 HEIC 而烦恼?你不是一个人; Apple 的首选图像文件格式仍可能存在一些兼容性问题。当您与某人共享照片或尝试在Windows计算机上打开图像时,就会出现此问题。幸运的是,Apple 使关闭 HEIC iPhone 变得更加容易。 …

Postgresql 命令还原数据库

因为PgAdmin打不开,但是数据库已经安装成功了,这里借助Pg命令来还原数据库 C:\Program Files\PostgreSQL\15\bin\psql.exe #链接数据库 psql -U postgres -p 5432#创建数据库 CREATE DATABASE "数据库名称"WITHOWNER postgresENCODING UTF8…

docker中使用Volume完成数据共享

情景概述 在一个docker中,部署两个MySQL容器,假如它们的数据都存储在自己容器内部的data目录中。这样的存储方式会有以下问题: 1.无法保证两个MySQL容器中的数据同步。 2.容器删除后,数据就会丢失。 基于以上问题,容…

vue——滑块验证

1. 介绍 1.1 简介 基于滑动式的验证码,免于字母验证码的繁琐输入 用于网页注册或者登录 1.2 来源说明 vue使用滑块验证功能,是基于vue-monoplasty-slide-verify这样的一个开源项目,进行实现的,这是这个开源项目的网址传送阵&#…

如何很快将文件转换成另外一种编码格式?编码?按指定编码格式编译?如何检测文件编码格式?Java .class文件编码和JVM运行期内存编码?

如何很快将文件转换成另外一种编码格式? 利用VS Code右下角的"选择编码"功能,选择"通过编码保存"可以很方便将文件转换成另外一种编码格式。尤其,在测试w/ BOM或w/o BOM, 或者ANSI编码和UTF编码转换,特别方便。VS文件另…

Unity3D仿星露谷物语开发16之角色拾取道具

1、目标 当角色经过道具时会拾取道具放到库存列表中,此时道具消失并打印库存信息。 2、创建新的Enum 在Assets -> Scripts -> Enums -> Enum.cs中添加库存位置相关的信息。 public enum InventoryLocation {player, // 在角色手中chest, // 在箱子里co…

UE4_用户控件_3_用户控件输入数据的方法

祝愿大美兰陵越来越好! 一、效果展示: 二、先制作一个角色 1、新建个父类为pawn的蓝图类。更名为BP_Image_Character。 2、这个角色只是用于观察场景,并与场景中的物体相碰撞用的,所以不需要骨骼网格体, 3、但是我们…

文献阅读 | B. S. Carmo 2010

目录 一、文献名称二、原文地址三、ABSTRACT主要发现详细观察分岔分析雷诺数依赖性比较见解意义结论 四、IINTRODUCTION历史研究回顾计算研究近期研究进展研究空白与目的论文结构 一、文献名称 二、原文地址 研究目的:研究串列排列双圆柱体周围流场中的次级不稳定性…

vue3 css实现文字输出带光标显示,文字输出完毕,光标消失的效果

Vue实现过程如下&#xff1a; <template><div ><p ref"dom_element" class"typing" :class"{over_fill: record_input_over}"></p></div> </template> <script setup> import {onMounted, ref} from…

如何安装适配pytorch版本的torchvision

一、对照版本 版本对照pytorch/vision: Datasets, Transforms and Models specific to Computer Vision 二、下载对应版本的torchvision 下载连接1download.pytorch.org/whl/torch_stable.html 下载连接2download.pytorch.org/whl/cu110/torch_stable.html 笔者认为1会比2更…

Leetcode打卡:我的日程安排表III

执行结果&#xff1a;通过 题目 732 我的日程安排表 III 当 k 个日程存在一些非空交集时&#xff08;即, k 个日程包含了一些相同时间&#xff09;&#xff0c;就会产生 k 次预订。 给你一些日程安排 [startTime, endTime) &#xff0c;请你在每个日程安排添加后&#xff0c;…

TI毫米波雷达原始数据解析之Lane数据交换

TI毫米波雷达原始数据解析之Lane数据交换 背景Lane 定义Lane 确认确认LVDS Lane 数量的Matlab 代码数据格式参考 背景 解析使用mmWave Studio 抓取的ADC Data Lane 定义 芯片与DCA100之间的数据使用LVDS接口传输&#xff0c;使用mmWave Studio 配置过程中有一个选项是LVDS L…

redis7基础篇3 redis的集群模式3

一 集群模式 1.1 redis的集群模式 Redis集群模式&#xff0c;实现数据集在多个节点进行共享&#xff0c;支持多个master节点。 Redis集群支持多个master&#xff0c;每个master节点又可以挂载多个slave&#xff1b;由于cluster自带sentinel的故障转移机制&#xff0c;内置高…

【嵌入式硬件】直流电机驱动相关

项目场景&#xff1a; 驱动履带车&#xff08;双直流电机&#xff09;前进、后退、转弯 问题描述 电机驱动MOS管烧毁 电机驱动采用IR2104STRH1R403NL的H桥方案&#xff08;这是修改之后的图&#xff09; 原因分析&#xff1a; 1.主要原因是4路PWM没有限幅&#xff0c;修改…

部署项目添加工程名的步骤

1.首先要在router下进行工程名添加 2.其次在vue.config.js中添加publicpath 3.在nginx配置文件中 location /my-app/ {try_files $uri $uri/ /my-app/index.html; }

SCAU期末笔记 - 数据库系统概念往年试卷解析

数据库搞得人一头雾水&#xff0c;题型太多太杂&#xff0c;已经准备摆烂了。就刷刷往年试卷&#xff0c;挂不挂听天由命。 2019年 Question 1 选择题 1. R ∩ S R∩S R∩S等于一下哪个选项&#xff1f; 画个文氏图秒了 所以选A. R ∩ S R − ( R − S ) R∩SR-(R-S) R∩…

【竞技宝】CS2:HLTV 2024 TOP11-w0nderful

北京时间2025年1月4日&#xff0c;HLTV年度选手排名正在持续公布中&#xff0c;今日凌晨正式公布了今年的TOP11为NAVI战队的w0nderful。 选手简介 w0nderful是一名来自于乌克兰的CS选手&#xff0c;现年20岁&#xff0c;目前在比赛中司职狙击手。w0nderful于2020年开启了自己的…

基层医联体医院患者历史检验检查数据的快速Python编程分析

​​​​​​​ 一、引言 1.1 研究背景与意义 在当今数字化医疗时代,医疗数据呈爆炸式增长,涵盖患者的基本信息、病史、检验检查结果、治疗方案等各个维度。这些海量且复杂的数据蕴含着巨大价值,为精准医疗决策提供了关键依据。通过对患者历史检验检查数据的深入对比分析…

Java SpringBoot使用Apache POI导入导出Excel文件

点击下载《Java SpringBoot使用Apache POI导入导出Excel文件(源代码)》 1. Apache POI 简介 Apache POI 是一个强大的 Java 库&#xff0c;用于处理 Microsoft Office 文档&#xff0c;包括 Excel 文件&#xff08;.xls 和 .xlsx&#xff09;。在 Java Spring Boot 项目中&am…