10.8QTQMessageBox练习

在这里插入图片描述
在这里插入图片描述

QQ界面

在这里插入图片描述
在这里插入图片描述

widget.cpp

#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent)
{//设置框体的大小和颜色this->setFixedSize(350,500);this->setStyleSheet("background-color:#e5f0ff;");//创建一个LineEdit edit1edit1 = new QLineEdit(this);//设置对应的颜色字体位置edit1->setStyleSheet("background-color:white;font-size: 20px;color:black;");edit1->resize(286,45);edit1->move(35,186);edit1->setPlaceholderText("输入QQ号");edit1->setAlignment(Qt::AlignCenter);//创建一个LineEdit edit2edit2 = new QLineEdit(this);//设置对应的颜色字体位置edit2->setStyleSheet("background-color:white;color:black;font-size: 20px;");edit2->resize(286,45);edit2->move(edit1->x(),edit1->y()+edit1->height()+20);edit2->setPlaceholderText("输入QQ密码");edit2->setAlignment(Qt::AlignCenter);edit2->setEchoMode(QLineEdit::Password);//设置RadioButtonQRadioButton *rbutton = new QRadioButton("已阅读并同意服务协议和QQ隐私保护指引", this);rbutton->move(edit2->x()+10,edit2->y()+edit2->height()+20);connect(rbutton,&QRadioButton::clicked,this,&Widget::rbutton_clicked_slot);//创建按钮btn1btn1 = new QPushButton("登录",this);//设置btn的样式位置大小btn1->setStyleSheet("color:white;background-color:skyblue;border-radius:15px;font-size: 14px;");btn1->resize(130,40);btn1->move(edit1->x(),rbutton->y()+rbutton->height()+20);//绑定点击事件槽函数connect(btn1,&QPushButton::clicked,this,&Widget::btn1_clicked_slot);//创建按钮btn2btn2 = new QPushButton("取消",this);//设置btn的样式位置大小btn2->setStyleSheet("color:white;background-color:skyblue;border-radius:15px;font-size: 14px;");btn2->resize(130,40);btn2->move(btn1->width()+btn1->x()+20,rbutton->y()+rbutton->height()+20);//绑定点击事件connect(btn2,&QPushButton::clicked,this,&Widget::btn2_clicked_slot);//定义3个labelQLabel *label1 = new QLabel("扫码登录",this);QLabel *label2 = new QLabel("|",this);QLabel *label3 = new QLabel("更多选项",this);label1->move(175-60,445);label1->setStyleSheet("color:blue");label2->move(175,label1->y());label2->setStyleSheet("color:grey");label3->move(175+10,label1->y());label3->setStyleSheet("color:blue");QLabel *iconLabel = new QLabel(this);QPixmap pixmap(":/picture/head.jpg"); // 请确保有一个图标文件pixmap = pixmap.scaled(100, 100, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation); // 调整图标大小iconLabel->setPixmap(pixmap);iconLabel->setFixedSize(100, 100);iconLabel->setStyleSheet("border-radius: 45px; border: 2px solid white;"); // 设置圆形和边框iconLabel->setAlignment(Qt::AlignCenter);iconLabel->move(176-50,70); // 设置头像位置}Widget::~Widget()
{
}//btn1的点击事件槽函数
void Widget::btn1_clicked_slot(){//点击之后判断账号密码是否一致,一致则弹出登录成功并给出登录按钮,点击后弹出另一个窗口//当账号和密码不匹配是,给出错误对话框,给出信息为账号和密码不匹配,是否重新登录,//并提供两个按钮 Yes|No,如果用户点击了Yes,则清空密码框后,继续登录。如果用户点击的取消,则关闭登录界面QString get_edit1 = edit1->text();QString get_edit2 = edit2->text();qDebug()<<get_edit2;if(get_edit1==nullptr||get_edit2==nullptr){QMessageBox::question(this,"提示","输入不能为空",QMessageBox::Ok);}else if(get_edit1==get_edit2 ){QMessageBox box(QMessageBox::Information,"提示","登录成功!",QMessageBox::Ok,this);box.setButtonText(QMessageBox::Ok,"确认");int btn = box.exec();if(btn==QMessageBox::Ok){this->close();emit jump();}}else{int btn = QMessageBox::information(this,"提示","账号和密码不匹配,是否重新登录",QMessageBox::Yes|QMessageBox::No,QMessageBox::No);if(btn == QMessageBox::Yes){edit1->clear();edit2->clear();}else if(btn == QMessageBox::No){this->close();}}}//btn2的点击事件槽函数
void Widget::btn2_clicked_slot(){int btn = QMessageBox::question(this,"提示","是否退出登录",QMessageBox::Yes|QMessageBox::No,QMessageBox::No);if(btn == QMessageBox::Yes){this->close();}else if(btn == QMessageBox::No){}
}void Widget::rbutton_clicked_slot(){btn1->setStyleSheet("color:white;background-color:#0099FF;border-radius:15px;font-size: 14px;");btn2->setStyleSheet("color:white;background-color:#0099FF;border-radius:15px;font-size: 14px;");
}

second.cpp

#include "second.h"
#include "ui_second.h"Second::Second(QWidget *parent) :QWidget(parent),ui(new Ui::Second)
{ui->setupUi(this);}Second::~Second()
{delete ui;
}void Second::jump_slot(){this->show();
}

main.cpp

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();Second s;//绑定w的jump发出的信号与Second中的槽QObject::connect(&w,&Widget::jump,&s,&Second::jump_slot);return a.exec();
}

wigdet.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include<QTextEdit>
#include <QPainter>
#include <QRadioButton>
#include <QLabel>
#include <QComboBox>
#include <second.h>     //添加second.h头文件
#include <QMessageBox>
#include<QDebug>
class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();public slots://槽void btn1_clicked_slot();void btn2_clicked_slot();void rbutton_clicked_slot();signals://信号void jump();private:QLineEdit *edit1;QLineEdit *edit2;QPushButton *btn1;QPushButton *btn2;};
#endif // WIDGET_H

second.h

#ifndef SECOND_H
#define SECOND_H#include <QWidget>namespace Ui {
class Second;
}class Second : public QWidget
{Q_OBJECTpublic:explicit Second(QWidget *parent = nullptr);~Second();public slots://定义实现jump_slot信号函数void jump_slot();private:Ui::Second *ui;
};#endif // SECOND_H

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

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

相关文章

面试淘天集团大模型算法工程师, 开心到飞起!!!

应聘岗位&#xff1a;淘天集团-大模型算法工程师 面试轮数&#xff1a; 整体面试感觉&#xff1a; 1. 自我介绍 在自我介绍环节&#xff0c;我清晰地阐述了个人基本信息、教育背景、工作经历和技能特长&#xff0c;展示了自信和沟通能力。 2. 技术问题 2.1 在大模型微调过程…

全网最详细的Python Locust性能测试框架实践

Locust的介绍 Locust是一个python的性能测试工具&#xff0c;你可以通过写python脚本的方式来对web接口进行负载测试。 Locust的安装 首先你要安装python2.6以上版本&#xff0c;而且有pip工具。之后打开命令行&#xff0c;分别安装locustio和pyzmq&#xff08;命令如下&…

【技术白皮书】内功心法 | 第一部分 | 数据结构与算法基础(数据结构)

数据结构与算法基础 内容简介数据结构数据模型数据结构的表现形式 基本概念数据&#xff08;Data&#xff09;数据元素&#xff08;data element&#xff09;数据结构的定义物理结构和逻辑结构逻辑结构逻辑结构表现形式二元组模型集合结构模型线性结构模型树结构模型图结构模型…

GNURadio 平台实现AM信号调制解调实验

文章目录​​ 一、AM调制解调原理 1.调制原理 2.解调原理 二、搭建的GRC流图 1.AM调制信号流图 2.AM解调信号流图 一、AM调制解调原理 1.调制原理 幅度调制&#xff08; Amplitude modulation——AM&#xff09; &#xff0c; 是常规的双边带调制&#xff0c; 即使载波的…

和鲸科技创始人范向伟:拐点即将来临,AI产业当前的三个瓶颈

在科技迅猛发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;无疑已经成为引领新一轮产业革命的核心动力之一。全球企业纷纷拥抱AI技术&#xff0c;试图借助其变革力量在竞争中突围&#xff0c;然而业界对AI产业化的拐点何时来临却众说纷纭。毕竟AI技术从实验室到商业…

[SAP ABAP] INCLUDE程序创建

在ABAP中&#xff0c;INCLUDE是一种结构化编程技术&#xff0c;它允许将一段程序代码片段包含到其他程序段中&#xff0c;以便复用和维护 INCLUDE程序创建的好处 ① 代码模块化 将常用的功能或通用的子程序存放到单独的文件中&#xff0c;使得主程序更简洁、易于理解和管理 ② …

揭秘人工智能的奇幻构造:人工智能的组成及都涉及什么

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…

动态内存管理练习题的反汇编代码分析(底层)

1.C语言代码 #include <stdio.h> char* GetMemory(void) {char p[] "hello world";return p; }void Test(void) {char* str NULL;str GetMemory();printf(str); }int main() {Test();return 0; } 2.反汇编代码 VS2022x64debug #include <stdio.h>…

PCB进程初识

目录 一、什么是进程 1.课本概念 2.内核观点 二、进程的描述-PCB 1.什么是PCB 2.PCB的组织方式 3.task_struct是Linux操作系统下的PCB 4.task_struct内容分类 三、进程的查看 四、进程的创建 1.查看子进程id和父进程id 演示实例1&#xff1a; 2.fork初识 演示实例…

软件测试学习笔记丨Mitmproxy使用

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/32334 一、简介 Mitmproxy是一款开源、免费的代理工具&#xff0c;支持Mac、Windows、Linux。相比其他代理工具&#xff0c;可以通过Python和Mitmproxy工具本身的插件机制&#xff0c;实现通…

npm运行时出现npm ERR! builtins is not a function报错

项目场景&#xff1a; 项目运行时什么都没动都没改突然运行不起来了&#xff0c;报错 TypeError: builtins is not a function 代码什么都没动&#xff0c;不是代码问题&#xff0c;排查后只有可能是node和npm的问题&#xff0c;所以卸载掉node重装重启 解决方案&#xff1a; …

Hierarchical Cross-Modal Agent for Robotics Vision-and-Language Navigation

题目&#xff1a;用于视觉语言导航的层次化跨模态智能体 摘要 1. 问题背景和现有方法 VLN任务&#xff1a;这是一种复杂的任务&#xff0c;要求智能体基于视觉输入和自然语言指令进行导航。 现有方法的局限性&#xff1a;之前的工作大多将这个问题表示为离散的导航图&#x…

重要的事情说两遍!Prompt「复读机」,显著提高LLM推理能力

【导读】 尽管大模型能力非凡&#xff0c;但干细活的时候还是比不上人类。为了提高LLM的理解和推理能力&#xff0c;Prompt「复读机」诞生了。 众所周知&#xff0c;人类的本质是复读机。 我们遵循复读机的自我修养&#xff1a;敲黑板&#xff0c;划重点&#xff0c;重要的事…

nacos多数据源插件介绍以及使用

概述 在微服务架构中&#xff0c;服务配置的集中管理和动态调整是至关重要的。Nacos 提供了配置管理和服务发现的功能&#xff0c;其中配置管理支持动态数据源的切换&#xff0c;增强了其在复杂环境中的适用性。默认情况下&#xff0c;Nacos 支持 MySQL 和Derby&#xff0c;但…

如何在百度地图上添加自己店铺的位置?

随着互联网的快速发展&#xff0c;如今许多事都可以通过网络去解决&#xff0c;例如线上支付、线上购物、线上订餐等&#xff0c;包括日常出行&#xff0c;人们也可以依靠地图软件去规划路线&#xff0c;然后导航至目的地。其中&#xff0c;百度地图作为国内领先的地图导航平台…

组态图卷起了3D化,这是趋势潮流还是盲目跟风呢?

在当今科技飞速发展的时代&#xff0c;组态图领域也迎来了新的变革 ——3D 化。这一现象引发了人们的广泛关注和思考&#xff1a;这究竟是一种顺应时代的趋势潮流&#xff0c;还是盲目跟风之举呢&#xff1f; 从趋势潮流的角度来看&#xff0c;组态图的 3D 化有着诸多优势。首…

PointNet++网络详解

数据集转换 数据集转换的意义在于将原本的 txt 点云文件转换为更方便运算的npy点云文件&#xff0c;同时&#xff0c;将原本的xyzrgb这 6 个维度转换为xyzrgbc&#xff0c;最后一个c维度代表该点云所属的类别。 for anno_path in anno_paths:print(anno_path)try:elements a…

软件设计之SSM(9)

软件设计之SSM(9) 路线图推荐&#xff1a; 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷新版SSM框架全套视频教程&#xff0c;Spring6SpringBoot3最新SSM企业级开发 资料可以去尚硅谷官网免费领取 学习内容&#xff1a; SpringMVC 概念及核心组件MVC初始化类数据…

POST注入通过sqli-labs靶场less-11

POST注入原理 原理介绍 进入第十一关靶场&#xff0c;我们发现是一个登录窗口&#xff0c;随意提交数据&#xff0c;显示 在url地址进行get提交&#xff0c;发现一直是登录窗口&#xff0c;页面无其他变化&#xff0c;想到post提交注入。 通关原理 打开靶场源码文件。 查看…

SEO(搜索引擎优化)指南

SEO&#xff08;Search Engine Optimization&#xff09;是通过优化网站内容、结构和外部链接&#xff0c;提升网页在搜索引擎结果中的排名&#xff0c;从而增加网站流量的过程。SEO 涉及多个层面&#xff0c;包括技术 SEO、内容优化、外部链接建设等。以下是 SEO 的核心优化策…