qt开发-11_Dialog 仿苹果支付界面

QDialog 是 Qt 框架中用于创建对话框的一个基类。对话框是一种特殊类型的窗口,通常用于短暂的交互和信息交换,如接收用户输入、显示消息、询问用户决定等。QDialog 提供了一种方便的方式来实现这些功能,并能够控制用户与其他窗口的交互性(例如,通过模态和非模态对话框)。

QDialog 提供了一种标准化的方法来快速创建用户界面中常见的交互式窗口。通过定制对话框中的控件和布局,开发者可以构建出符合具体需求的对话框,从而提升用户体验和应用程序的功能性。

在生活中,我们扫码支付时,一扫这个码,他就是弹出这个支付界面,要你输入密码。那我们就来做一个支付界面。

这次我们再创建项目的时候略有不同,我们不要选 QWidget , 我们要选择 QDialog  。

其他没有什么变化。

我们进入 UI 界面调整一下主界面大小。改成 400 210 注 是 210 后来有点小问题的加长一点

我们先做一下主要支付界面:

label  输入 请输入支付密码  调整大小为 400 22 字体大小  14 粗体

属性 选择居中对齐:

添加 输入框 lineedit 

调整高度为 30, 添加显示文本为 请输入支付密码 。

添加两个按钮:调整高度为 50;文字为 取消 和 确定 改为蓝色。

把按钮组成水平布局,间距调整为 0.

在 lineedit 两边加两个弹簧, 调整弹簧的宽度为 20.改为固定值 个人标注:先把东西拖入到 frame 里面,然后再进行弹簧布局最好。

然后组成水平布局。

在控件间添加垂直弹簧,组成垂直布局。然后添加一个 frame 布局,调整为400 200, 坐标 0 0 。将组成好的 整体布局拖入其中。如果不好放就调整一下弹簧大小,布局好了再调回来。

整体结构:

我们运行一下看看效果

还是不太像。将 frame 调整为 白色 圆角, 边框 线体如下:

QFrame{border-radius: 25px;background-color: #ffffff;border:2px solid gray
}

我们看到这个 label 还有边框给去掉。

这样不行,我们会把 框架的 边框给去掉。所以我们去掉。不这么用,我们再 frame 的样式前加一个 表示当前控件的样式表只作用于他自己。

效果

这个 按钮的样式不太对,我们也要改一改。将他分别设置为,字体改为 14 粗体

//左边的按钮
QPushButton{color: #1e90ff;border-top: 1px;border-right: 1px;border-style: solid;border-color: #000000;
}
//右边的按钮
QPushButton{color:#1e90ff;border-top:1px;border-style:solid;border-color:#000000;
}

但是点击的时候没有反馈,我们加上

//左
QPushButton:pressed{background-color: #aaaaaa;border-bottom-left-radius: 25px}
//右
QPushButton:pressed{background-color: #aaaaaa;border-bottom-right-radius: 25px}

效果:

我们把 标题去掉:

看看效果, 没问题的:

我们给按钮加一下功能,右键按钮点击转到槽,选择点击事件:

加个关闭功能:

这样点击就可以关闭了。

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

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

相关文章

Intent、Intent Filter和BroadcastReceiver:Android中的核心通信机制

在Android开发中,Intent、Intent Filter和BroadcastReceiver构成了应用间通信(IPC)和内部通信的基石。它们不仅为开发者提供了强大的通信能力,还确保了应用的灵活性和扩展性。下面,我们将从技术难点、面试官关注点、回…

自动更新阿里云CDN SSL证书

deploy-certificate-to-aliyun 随着各大CA机构开始收割用户,云厂商们提供的免费SSL证书也由之前的12个月变成现在的3个月。笔者一直使用阿里云的OSS作为图床,说实话在如果继续在阿里云上三个月免费一换也太频繁了 笔者在这里使用github action来每隔两个…

C++ (week9):Git

文章目录 1.git介绍2.git安装3.git配置4.获取自己的SSH公钥5.新建仓库6.邀请开发者7.克隆远程仓库到本地8.在本地进行开发9.本地项目推送到远程仓库10.git的工作原理11.分支管理(1)合作开发的方式(2)分支管理(3)分支合并的原理、冲突管理 12.git 与 svn 的区别13.设置alias别名…

内容安全复习 8 - 视觉内容伪造与检测

文章目录 研究背景内容伪造方法虚假人脸生成人脸替换属性编辑表情重演跨模态人脸编辑 伪造检测方法眨眼检测交互式人脸活体检测一些了解方法挑战 研究背景 图像内容篡改造成新闻报道的偏颇易导致社会和公共秩序的不安,对公共安全产生不良影响。 造成的影响&#x…

达梦8 通过日志解释数据守护系统的关闭顺序

关闭守护系统时,必须按照一定的顺序来关闭守护进程和数据库实例。特别是自动切换 模式,如果退出守护进程或主备库的顺序不正确,可能会引起主备切换,甚至造成守护进程 DM 数据守护与读写分离集群组分裂。 官方推荐通过在监视器执行…

如何在Java中使用注解:自定义注解的实现

如何在Java中使用注解:自定义注解的实现 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! Java中的注解(Annotation)是一种代…

macbook配置adb环境和用adb操作安卓手机

(参考:ADB工具包的安装与使用_adb工具箱-CSDN博客) 第一步:从Android开发者网站下载Android SDK(软件开发工具包)。下载地址为: 第二步:解压下载的SDK压缩文件到某个目录中。 进入解…

现在的Android程序员为什么会感到焦虑?焦虑的源头在哪里?该怎么去缓解焦虑呢?——没有无中生有的贩卖焦虑,只有你的挣扎和不甘。

二、知识为何产生焦虑 先说两个世界,知识的世界和现实的世界。 知识的世界,由承载知识的那些载体组成,比如图书、音视频、报刊、自媒体等。 现实的世界,就是我们每天生活的、做出各种行为的世界。 学习的目的是什么呢&#xff1…

[spring] Spring MVC Thymeleaf(下)

[spring] Spring MVC & Thymeleaf(下) 上篇笔记讲了一下怎么使用 thymeleaf 作为 HTML 模板,与 Spring MVC 进行沟通,这里主要说一下验证的部分 常用表单验证 一些 Spring MVC 内置的常用验证注解如下: Annota…

cuda-将设备的指针拷贝到同一个设备的指针

tensorRT推理时&#xff0c;输入输出指针都位于设备上&#xff0c;所以设备上的指针之间的拷贝需要使用cuda的拷贝指令&#xff0c;不能使用主机的拷贝指令。 float* fusion_model_feature_input1;fusion_model_feature_input1 static_cast<float*>(fusion_model_trt_pt…

项目实战--实现一个多级菜单统一工具类

一、背景介绍 在项目开发工程中&#xff0c;经常需要实现多级菜单的效果&#xff0c;比如需要一个多级功能菜单、多级评论、多级部门等功能&#xff0c;如果每个项目都要定制一版代码或者SQL&#xff0c;就会面临代码重复开发的问题。为简化开发过程并提高代码的可维护性&…

[面试题]MongoDB

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

uniapp运行到模拟器(联想模拟器)

记录一下uniapp项目运行到联想模拟器的流程 先配置一下模拟器端口 填写对应的adb路径&#xff0c;也就是模拟器安装路径下的adb.exe的路径 然后打开模拟器的设置&#xff0c;搜索版本找到版本号&#xff0c;多次点击打开开发者模式 进入开发者选项&#xff0c;打开USB调试 …

Android实战之app版本更新升级全文章(二)

BaseAndroid.checkUpdate(MainActivity.this, 2, “http://f5.market.mi-img.com/download/AppStore/0f4a347f5ce5a7e01315dda1ec35944fa56431d44/luo.footprint.apk”, “更新了XXX\n修复OOO”, false); 看看效果图 界面有点丑&#xff0c;自己修改下吧 当然啦&#xff0c…

Golang | Leetcode Golang题解之第167题两数之和II-输入有序数组

题目&#xff1a; 题解&#xff1a; func twoSum(numbers []int, target int) []int {low, high : 0, len(numbers) - 1for low < high {sum : numbers[low] numbers[high]if sum target {return []int{low 1, high 1}} else if sum < target {low} else {high--}}r…

Ubuntu系统通过GRUB引导菜单进入恢复模式修改账户密码

当在Ubuntu系统中忘记了账户密码时&#xff0c;有几种方法可以破解或重置密码。 本指引文档方法&#xff1a;通过GRUB引导菜单进入恢复模式 实践环境为&#xff1a;20.04.6 LTS (Focal Fossa) 1. 重启Ubuntu系统&#xff1a;首先&#xff0c;你需要重启你的Ubuntu系统。 2. …

Redis 7.x 系列【3】多种连接方式

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. Redis Cli3. 可视化管理工具3.1 Redis Insight3.2 RedisDesktopManager 4. …

Python开发——用什么数据储存结构复杂的数据

在Python中&#xff0c;当需要储存包含不同类型的数据时&#xff0c;可以使用以下几种数据结构&#xff1a; 1. 字典&#xff08;dict&#xff09; 字典是一种非常灵活的数据结构&#xff0c;允许使用键-值对来存储不同类型的数据。 data {"name": "Alice&quo…

Windows环境利用 OpenCV 中 CascadeClassifier 分类器识别人眼 c++

Windows环境中配置OpenCV 关于在Windows环境中配置opencv的说明&#xff0c;具体可以参考&#xff1a;VS2022 配置OpenCV开发环境详细教程。 CascadeClassifier 分类器 CascadeClassifier 是 OpenCV 库中的一个类&#xff0c;它用于实现一种快速的物体检测算法&#xff0c;称…

day41--Redis(三)高级篇之最佳实践

Redis高级篇之最佳实践 今日内容 Redis键值设计批处理优化服务端优化集群最佳实践 1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义&#xff0c;但最好遵循下面的几个最佳实践约定&#xff1a; 遵循基本格式&#xff1a;[业务名称]:[数据名]:[id]长度不超过…