032-第三代软件开发-Popup弹窗

news2024/12/28 2:59:58
头图

第三代软件开发-Popup弹窗

文章目录

  • 第三代软件开发-Popup弹窗
    • 项目介绍
    • Popup弹窗
      • 官方示例
      • 项目中的代码
    • 之前写过一个Popup
    • 抄抄别人的
      • dim
      • visible 和 Open 区别
    • 与 Dialog有啥区别
    • 其他
    • 总结一下

关键字: QtQmlPopup弹窗modal

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏在第三代软开发更新完将涨价

Popup弹窗

在QML中,Popup是一种用于显示临时信息、菜单或对话框的元素。它通常用于需要在屏幕上显示短暂内容或与用户进行交互的场景。

image-20230729120924285

官方示例

 import QtQuick.Window 2.2
 import QtQuick.Controls 2.12

 ApplicationWindow {
     id: window
     width: 400
     height: 400
     visible: true

     Button {
         text: "Open"
         onClicked: popup.open()
     }

     Popup {
         id: popup
         x: 100
         y: 100
         width: 200
         height: 300
         modal: true
         focus: true
         closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
     }
 }

这段代码是一个基于QtQuick框架的QML代码,用于创建一个简单的应用程序窗口(ApplicationWindow)和一个弹出窗口(Popup)。

首先,导入了QtQuick.WindowQtQuick.Controls模块,分别用于创建窗口和控件。

接下来,创建了一个应用程序窗口,并指定了其宽度(width)和高度(height)为400。visible属性设置为true,使窗口可见。

在应用程序窗口中,添加了一个按钮(Button)作为子元素。按钮的文本(text)设置为"Open",表示按钮上显示的文本内容。当按钮被点击(onClicked事件)时,调用popup.open()方法打开弹出窗口。

同时,还创建了一个弹出窗口(Popup),并为其指定了id为"popup"。弹出窗口的位置(x、y)设定为(100, 100),宽度为200,高度为300。modal属性设置为true,表示弹出窗口为模态窗口,即阻止与其它窗口的交互。focus属性设置为true,使弹出窗口在打开时获取焦点。closePolicy属性设置为Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent,表示在按下Escape键或者点击弹出窗口以外的区域时关闭弹出窗口。

项目中的代码

Popup
{
    id: pop_login
    anchors.centerIn: parent
    width: 880
    height: 495
    modal: true
    closePolicy:Popup.CloseOnEscape
    background: Rectangle
    {
        color:"#23272B"
    }
    Text {
        anchors.centerIn: parent
        font.pixelSize: 24
        color: "#FFFFFF"
        text: qsTr("请检查用户名和密码!")
    }
    MouseArea
    {
        anchors.fill: parent
        onClicked: pop_login.visible = false
    }
    Turing_Button
    {
        height: 60
        width: 120
        anchors.right: parent.right
        anchors.bottom: parent.bottom
        anchors.margins: 50
        checkable: true
        text:"确定"
        background: Image{
            anchors.fill: parent
            source: parent.pressed ? "qrc:/MainWindow/T_Resource/T_Image/MainWindow/Poweroff/button_press.png" : "qrc:/MainWindow/T_Resource/T_Image/MainWindow/EndCase/button.png"
        }
        contentItem: Text {
            anchors.centerIn: parent
            text: parent.text
            font.pixelSize: 24
            color: "#FFFFFF"
            horizontalAlignment: Text.AlignHCenter
            verticalAlignment: Text.AlignVCenter
        }
        onClicked: {
            pop_login.visible = false
        }
    }
}

之前写过一个Popup

http://t.csdn.cn/Qss0m,现在看挺好玩

image-20230731221452201

抄抄别人的

咱们再找找看别人的博客里面有没有特殊的同内容值得我们学习一下

dim

This property holds whether the popup dims the background.
Unless explicitly set, this property follows the value of modal. To return to the default value, set this property to undefined.
See also modal and Overlay.modeless.

该属性保存弹出窗口是否使背景变暗。
除非明确设置,否则此属性遵循 modal 的值。 要返回默认值,请将此属性设置为未定义。
另请参见模态和 Overlay.modeless。

这个是我之前用的时候没有注意的。大家有用到,可以关注一波

visible 和 Open 区别

因为目前我的大量信息都是提示信息,交互很少,基本的交互也是,所以一直都visible习惯了,今天看别的博主介绍都是 open 和 close,所以也特意学习了一下

在QML中,PopupWindow 是用于创建弹出窗口的两个常用组件。Popup 组件用于显示一个轻量级的浮动窗口,而 Window 组件则用于创建一个独立的窗口。

Popup 组件有两个主要的属性,分别是 visibleopen。它们之间的区别如下:

  1. visible(可见性)visible 属性用于控制 Popup 组件的可见性。当将该属性设置为 true 时,Popup 将显示在屏幕上;当设置为 false 时,Popup 将隐藏。这意味着通过更改 visible 属性,可以在需要时显示或隐藏 Popup 窗口。

  2. open(打开状态)open 属性也用于控制 Popup 组件的可见性,但是其行为与 visible 属性略有不同。当将 open 设置为 true 时,Popup 将显示在屏幕上,并且可以与用户进行交互。而当将 open 设置为 false 时,Popup 将完全关闭,包括其所有的子项和状态都会被重置。

总结来说,visible 属性用于简单地显示或隐藏 Popup 窗口,而 open 属性则在显示或隐藏 Popup 的同时,还可以控制是否允许用户与 Popup 进行交互。因此,如果你只是需要简单地显示或隐藏 Popup,可以使用 visible 属性。如果你还需要控制 Popup 的交互性和状态重置,可以考虑使用 open 属性。

与 Dialog有啥区别

这个是我今天突然想到的,之前也没有注意过,在使用QWidget那一套的时候,基本都是用的DIalog,好像QWidget 就没有Popup吧。今天也学习一下

Popup和Dialog是两种常见的用户界面模式,它们在实现上有一些区别。

  1. 显示方式:Popup通常以弹出窗口的形式显示在应用程序的顶部或前景,覆盖一部分或全部底层内容。Dialog则是在当前界面上以模态或非模态的方式显示,阻止用户与底层内容进行交互。

  2. 交互行为:Popup通常用于显示短暂的消息、通知或简单的操作菜单,它可以通过点击或其他手势进行关闭。Dialog则用于展示更复杂的信息或任务,通常包含更多的控件和交互元素,比如表单输入、选择等,需要用户完成一系列操作后才能关闭。

  3. 上下文关系:Popup通常是与当前内容相关的临时性信息或选项,它可以在任意时刻触发并显示。Dialog则会中断当前任务或流程,在用户完成之前无法返回到之前的操作。

总而言之,Popup适合用于快速展示短暂的信息或提供简单的操作,而Dialog则适用于更复杂的操作流程和用户交互。具体使用哪种模式取决于应用程序的需求和设计方针,懂了波。

其他

其他关于Popup的内容可以看Qt的官方帮助文档。我也是用到什么查一下。

总结一下

这篇结束,我们的用户登录部分就应该开发的基本差不多了,剩下的就是后期根据需求再做更新了。这样开下来,其实正式项目开发也没有太过神秘,都是一些基础控件的组合和符合业务需求的逻辑组合。


博客签名2021

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外网nat+nat server,内网做路由过滤,以及ppp CHAR认证 企业网搭建

作业 网络拓扑图如下所示: 要求:做适当的截图,表示完成相应的操作。 按照网络拓扑要求搭建网络结构,按照个人学号配置每个节点的IP地址,其中X为班级号,Y为学号末尾2位;Y1为学号末尾2位1&#…

kubernetes 多集群管理和联邦集群将是下一波运维浪潮

问题 调研一下国内外K8s平台软件,哪个具有创建标准的K8s集群的功能? 背景 随着云原生技术在越来越多的企业和组织中的大规模落地,如何高效、可靠地管理大规模资源池以应对不断增长的业务挑战成为了当下云原生技术的关键挑战。在过去的很长…

第三章 内存管理 十四、页面分配策略

目录 一、驻留集 1、定义: 2、注意事项 3、分配策略 固定分配: 可变分配: 4、置换策略 局部置换: 全局置换: 5、置换分配策略 5.1、固定分配局部置换: 这种策略的缺点是: 5.2、可变分配全局置换: 5.3、可变分配局部置换: 注意: 6、何时调…

周立功ZCANPRO简介和使用

ZCANPRO目录 周立功ZCANPRO简介一、软件安装ZCANPRO官网链接:驱动官网链接 二、ZCANPRO使用1.设备管理2.选择CAN、CANFD波特率计算器使用方法(可选) 3.新建视图CAN视图DBC视图 4.发送数据普通发送DBC发送 三、高级功能UDS诊断 周立功ZCANPRO简…

分布式缓存Spring Cache

一、缓存里的数据如何和数据库的数据保持一致? 缓存数据一致性1)、双写模式2)、失效模式1、缓存数据一致性-双写模式 2、 缓存数据一致性-失效模式 我们系统的一致性解决方案: 1、缓存的所有数据都有过期时间,数据过期下一次查询触发主动更新 2、读写数据…

基于PyQt5和OpenCV库的简单的文档对齐扫描应用程序

计算机视觉-作业1 作业要求简介说明 安装运行功能使用待完善代码相关 作业要求 拍一张A4纸文稿的图片,利用角点检测、边缘检测等,再通过投影变换完成对文档的对齐扫描 简介 使用python语言,基于PyQt5和OpenCV库的简单的文档对齐扫描应用程…

教你面试就看出公司是否靠谱!

点击下方“JavaEdge”,选择“设为星标” 第一时间关注技术干货! 免责声明~ 任何文章不要过度深思! 万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案…

王道计算机考研 操作系统学习笔记 + 完整思维导图篇章五: IO管理

目录 IO设备的基本概念和分类 IO设备的分类 按使用特性分类 按传输速率分类 按信息交换单位分类 IO控制器 l/O设备的电子部件(I/O控制器) l/O控制器的组成 内存映像I/o vs.寄存器独立编址 IO控制方式 程序直接控制方式 中断驱动方式 DMA方式 ​编辑通…

Cesium添加自己的专属Logo(2023.10.22)

Cesium添加专属Logo 2023.10.22 引言1、现有网站实例展示1.1 Cesium官方Logo1.2 SuperMap官方Logo1.3 Mars3D官方Logo1.4 Xt3d个人Logo1.5 Digital Visual官方Logo1.6 AirLook官方Logo 2、两种常见的实现思路2.1 思路1(静态或动态引入Div)2.1.1 静态Div&…

Swift 判断 A B 两个时间是不是同一天,A 是不是 B 的昨天

1. 今天要做这个效果(在时间旁边显示今天,昨天) 2. Preview 3. Code: // 添加 今天 昨天 func show_today_yesterday(d: Date Date()) -> String {let calendar Calendar.currentlet today: Date Date()if calendar.isDate(today, inS…

文具办公品经营小程序商城的作用是什么

在购买文具方面,线下文具品牌门店除了疫情冲击外,还有同行间的激烈竞争,消费者对品牌概念较为模糊,同质化产品严重,消费者选择度高,店铺流量稀少,线下经营成本变高。 如今很多消费者已经习惯于线…

DigiCert证书——银行官网的首选

在当今数字化时代,互联网成为了人们获取金融服务的主要途径之一。随着在线银行交易的增加,确保用户数据安全和建立信任成为银行官网的首要任务。因此,越来越多的银行官网选择DigiCert证书作为其网络安全解决方案。那么,为何DigiCe…

Rust之自动化测试(三): 测试组合

开发环境 Windows 10Rust 1.73.0 VS Code 1.83.1 项目工程 这里继续沿用上次工程rust-demo 测试组合 正如本章开始时提到的,测试是一个复杂的学科,不同的人使用不同的术语和组织。Rust社区根据两个主要类别来考虑测试:单元测试和集成测试。单元测试很…

【java爬虫】使用selenium获取某交易所公司半年报数据

引言 上市公司的财报数据一般都会进行公开,我们可以在某交易所的官方网站上查看这些数据,由于数据很多,如果只是手动收集的话可能会比较耗时耗力,我们可以采用爬虫的方法进行数据的获取。 本文就介绍采用selenium框架进行公司财…

服务器通过scp传送数据,提示验证失败的问题

场景提示如下 当使用scp传送数据时提示这个 分析: 目标服务器云盘被格式化过, 用之前的密钥校验新的系统时发现不匹配了,拒绝登录! 解决方法 需要把旧密钥换成新的密钥 先看源服务器已经有的密钥ssh-keygen -l -f ~/.ssh/known_hosts然后重新生成一下…

简道云出现问题及解决方法1

1、在制作仪表盘设计的时候没有统计表链接,点开统计表没有显示。 根据老师的手把手教导还是会出现错误,上网查询再加上多次看录播回放,私以为是不同网页版本的问题,包括一些应用的排版同样不一样。这里的解决办法是把刚才做的表盘…

MySQL binlog集市的项目小结

这是学习笔记的第 2478篇文章 MySQL binlog集市的事情我们做了有一段时间了,最开始的初衷是异常操作的数据恢复,主要的痛点是如果发生了业务误操作,需要紧急恢复数据的时候,通常这些误操作是对于字典配置数据的变更,而…

有哪些适用于 Windows 的PDF 阅读器?免费 PDF 阅读器清单

探索适用于 Windows 10 和 11 的最佳 PDF 阅读器 适用于 Windows 10 和 Windows 11 的最佳 PDF 阅读器让您可以在台式计算机上查看和共享文档。 最好的PDF 编辑器和免费的 PDF 编辑器配备了先进的工具,可以跨不同的操作系统工作。但是,当您只需要查看和…

Docker搭建Plex流媒体服务并播放自己本地视频

Docker搭建Plex流媒体服务 安装Docker创建存储配置文件的目录创建Plex容器配置Plex设置媒体库访问Plex 1 介绍 Plex是一个流媒体服务器,可以轻松地将你的媒体文件库(如电影、电视节目和音乐)通过网络流式传输到各种设备上。 Plex 是一套媒体…

信号量、互斥锁、计数信号量

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家来访。 信号量(semaphores)一个多进程共享的非负整型全局变量。信号量常用于多进程的进程同步。 介绍 …