【QT】Day 2

news2024/11/17 11:24:32

1> 继续完善登录框,当登录成功时,关闭登录界面,跳转到新的界面中

second.h
#ifndef SECOND_H
#define SECOND_H

#include <QWidget>

namespace Ui {
class second;
}

class second : public QWidget
{
    Q_OBJECT

public:
    explicit second(QWidget *parent = nullptr);
    ~second();

public slots:
    void loginjump_slot();

private:
    Ui::second *ui;
};

#endif // SECOND_H

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QDebug>       //信息调试类,用于打印输出的
#include <QIcon>        //图标头文件
#include <QPushButton>  //按钮类头文件
#include <QLineEdit>    //行编辑器类
#include <QLabel>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

public slots:   //在该函数下要定义公共槽函数
//    void loginbtn_slot();  //自定义处理"登录"按钮发射信号的槽函数申明
    void cancebtn_slot();  //自定义处理"取消"按钮发射信号的槽函数申明

signals:
    void loginjump();

private slots:
    void on_loginBtn_clicked();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

 main.cpp

#include "widget.h"
#include "second.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    second s;   //实例化第2个界面
    QObject::connect(&w,&Widget::loginjump,&s,&second::loginjump_slot);  //连接2个界面的信号与槽

    return a.exec();
}

 second.cpp

#include "second.h"
#include "ui_second.h"

second::second(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::second)
{
    ui->setupUi(this);

    //设置logo图
    ui->hqyj->setPixmap(QPixmap(":/icon/logo.png"));     //logo
    ui->hqyj->setScaledContents(true);  //设置内容自适应
}

second::~second()
{
    delete ui;
}

void second::loginjump_slot()
{
    this->show();
}


 widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //1.界面的配置
    this->setFixedSize(480,400);    //设置固定尺寸
    this->setWindowTitle("鹏哥快聊"); //窗口标题
    this->setWindowIcon(QIcon(":/icon/wodepeizhenshi.png"));   //设置窗口图标
    this->setWindowOpacity(1);     //设置透明度

    //设置logo图
    ui->logoLab->setPixmap(QPixmap(":/icon/logo.png"));     //logo
    ui->logoLab->setScaledContents(true);  //设置内容自适应

    //2、设置账号和密码-标签
    ui->userNameLab->resize(30,30);
    ui->userNameLab->setPixmap(QPixmap(":/icon/userName.jpg"));
    ui->userNameLab->setScaledContents(true);  //设置内容自适

    ui->pwdLab->resize(30,30);
    ui->pwdLab->setPixmap(QPixmap(":/icon/passwd.jpg"));
    ui->pwdLab->setScaledContents(true);  //设置内容自适应

    //3、设置账号和密码-输入框
    ui->userNameEdit->setPlaceholderText("QQ号码/手机/邮箱");
    ui->pwdEdit->setEchoMode(QLineEdit::Password);   //设置密文模式
    ui->pwdEdit->setPlaceholderText("密码");          //设置占位符

    //4、设置登录和取消图标
    ui->loginBtn-> setIcon(QIcon(":/icon/login.png"));//设置按钮图标
    ui->cancelBtn-> setIcon(QIcon(":/icon/cancel.png"));//设置按钮图标

    //手动将按钮3的clicked信号与自定义的槽函数进行连接
    connect(ui->cancelBtn, SIGNAL(clicked()), this, SLOT(cancebtn_slot()));
}

Widget::~Widget()
{
    delete ui;
}


//自定义槽函数,关于"取消"按钮对应槽函数的实现
void Widget::cancebtn_slot()
{
    this->close();
}


void Widget::on_loginBtn_clicked()
{
    if((ui->userNameEdit->text() == "admin") && (ui->pwdEdit->text()=="123456"))    //获取用户名和密码
    {
        qDebug() << "登录成功";
        emit loginjump();    //发射跳转信号
        this->close();  //关闭自身界面
    }
    else
    {
        qDebug() << "登录失败";
        ui->pwdEdit->clear();   //清空密码框内容
     }
}

2> 新建一个工程文件,将默认提供的代码加上注释信息

工程管理文件:

 头文件

主函数

 源文件

 

 

3. 思维导图

 

 

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

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

相关文章

安装Exchange 2010 中在准备情况检查时始终要求重启系统解决方法

1、重新启动系统并重新运行安装程序”&#xff0c;重启后再进行安装故障依旧&#xff0c;故障如下&#xff0c;图为引用&#xff1a; 2、解决方法如下&#xff1a; 运行regedit打开注册表。 查找到以下键值PendingFileRenameOperations&#xff0c;&#xff08;位置&#xff1…

Golang速成

目录 Golang 语言特性Golang的优势Golang 的应用场景Golang 的不足 基础语法变量的声明常量与 iotastring字符串遍历strings 包bytes 包strconv 包unicode 包 循环语句range 函数多返回值init 函数闭包import 导包匿名函数 指针defer切片 slice数组sliceslice 操作… mapmap 的…

shopee,lazada,etsy店群如何高效安全的管理

对于电商卖家来说&#xff0c;要经营多个店铺&#xff0c;管理多个账号是非常常见的操作。为了避免账号关联被平台识别出来&#xff0c;需要使用防关联的浏览器来进行操作 ​1、支持多平台 支持同时管理多个电商平台店铺&#xff0c;Shopee、Lazada、etsy、poshmark、vinted等&…

vue element ui web端引入百度地图,并获取经纬度

最近接到一个新需要&#xff0c;要求如下&#xff1a; 当我点击选择地址时&#xff0c;弹出百度地图&#xff0c; 效果如下图&#xff1a; 实现方法&#xff1a; 1、首先要在百度地图开放平台去申请一个账号和key 2、申请好之后&#xff0c;在项目的index.html中引入 3、…

windows安装npm, 命令简介

安装步骤 要在Windows上安装npm&#xff0c;按照以下步骤操作&#xff1a; 首先&#xff0c;确保您已经在计算机上安装了Node.js。可以从Node.js官方网站&#xff08;Node.js&#xff09;下载并安装Node.js。完成Node.js的安装后&#xff0c;打开命令提示符&#xff08;Command…

springboot第32集:redis系统-android系统-Nacos Server

Error parsing HTTP request header HTTP method names must be tokens 检查发送HTTP请求的客户端代码&#xff0c;确保方法名中不包含非法字符。通常情况下&#xff0c;HTTP请求的方法名应该是简单的标识符&#xff0c;例如"GET"、"POST"、"PUT"…

java语法基础--基本数据类型

一、数据类型概括 1、整数类型 2、浮点型 3、布尔类型 4、字符类型 二、数据类型的使用 1、整数类型的使用 超出类型范围 //1.1 定义一个byte类型的变量&#xff0c;并且设置它超过byte类型范围// 如果定义的数值在byte类型范围内&#xff0c;那么就能正常使用&#xff0c;//…

flask中的cookies介绍

flask中的cookies介绍 “Cookie” 在 web 开发中是一种非常重要的技术&#xff0c;用于在客户端&#xff08;即用户的浏览器&#xff09;存储信息&#xff0c;以便在多个页面和多个访问会话之间保持状态。Cookies 通常用于记住用户的登录信息&#xff0c;跟踪用户在站点上的浏…

自动化测试测试框架封装改造

PO模式自动化测试用例 PO设计模式是自动化测试中最佳的设计模式&#xff0c;主要体现在对界面交互细节的封装&#xff0c;在实际测试中只关注业务流程就可以了。 相较于传统的设计&#xff0c;在新增测试用例后PO模式有如下优点&#xff1a; 1、易读性强 2、可扩展性好 3、…

【数据库原理】三级项目——数据库基本操作

一、项目名称 数据库基本操作 二、项目内容 了解一种DBMS的功能和界面。使用图形化界面创建数据库。使用图形化界面创建课本70页习题6中的关系表。使用图形化界面向所建的关系表中插入数据。完成70页习题6第3-5小题的各项查询。查询每个城市供应的零件总数。查询使用零件数量…

安卓:视图绑定——ButterKnife

目录 一、ButterKnife介绍 二、ButterKnife优点&#xff1a; 三、ButterKnife的使用 build.gradle添加 ButterKnife 依赖&#xff1a; 1、视图绑定&#xff1a; 2、点击事件绑定&#xff1a; 3、资源绑定&#xff1a; 4.绑定多个视图元素&#xff1a; 5.绑定视图容器&…

内核链表在用户程序中的移植和使用

基础知识 struct list_head {struct list_head *next, *prev; }; 初始化&#xff1a; #define LIST_HEAD_INIT(name) { (name)->next (name); (name)->prev (name);} 相比于下面这样初始化&#xff0c;前面初始化的好处是&#xff0c;处理链表的时候&#xff0c;不…

Python中运行取消Python console模式

在Python里run的时候突然会发现&#xff0c;进入的不是run模式&#xff0c;而是console模式&#xff0c;这种运行模式能保留你每次的运行历史&#xff0c;因为会重开一个运行小页面&#xff0c;关闭操作如下&#xff1a;

GAMES104里渲染等一些剩下的问题

渲染的一些剩下的问题 1. 如何理解渲染中的AO(环境光遮蔽) 环境光遮蔽 我们先从一个简单的效果开始—环境光遮蔽(Ambient Occlusion,以下简称AO)。大家可以看到&#xff0c;下图中的场景没有任何渲染效果&#xff0c;也没有任何着色效果&#xff0c;但场景呈现出了非常清晰的…

大数据学习教程:Linux 基础教程(上)

1 操作系统概述 1.1 计算机原理 现代计算机大部分都是基于冯.诺依曼结构&#xff0c;该结构的核心思想是将程序和数据都存放在计算机中&#xff0c;按存储器的存储程序首地址执行程序的第一条指令&#xff0c;然后进行数据的处理计算。 计算机应包括运算器、控制器、储存器、…

PLC学习的步骤与重点:

熟悉基础元器件的原理和使用方法&#xff1a;了解按钮、断路器、继电器、接触器、24V开关电源等基础元器件的原理和使用方法&#xff0c;并能够应用它们来实现简单的逻辑电路&#xff0c;例如电机的正反转和单按钮的启停控制。 掌握PLC的接线方法&#xff1a;了解PLC的输入输出…

【C++进阶:map和set】

本节涉及到的所有代码见以下链接&#xff0c;欢迎参考指正&#xff01; ​​​​​​​ practice: 课程代码练习 - Gitee.comhttps://gitee.com/ace-zhe/practice/tree/master/map%E5%92%8Cset ​​​​​​​ 关联式容器 在C初阶阶段&#xff0c;已经学习并总了STL中的部分…

麒麟信安携手先进数通发布“多云协同,加速推进服务器虚拟化国产平滑迁移”信创联合解决方案

金融行业是现代经济的核心&#xff0c;金融行业信息技术应用创新是关系“国家安全”和“科技强国”战略的重要工程。为满足银行等金融机构数字化转型和信创发展的双重需求&#xff0c;麒麟信安与北京先进数通信息技术股份公司携手推出“多云协同&#xff0c;加速推进服务器虚拟…

Elisp之message为内容增加颜色(二十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

驱动 CAN总线

Controller Area Network&#xff08;控制器局部网络&#xff09;是一种有效支持分布式控制或实时控制的串行异步半双工的现场总线&#xff0c;支持多主机多从机&#xff0c;需要 CAN控制器 和 CAN收发器 的硬件支持 标准内容ISO 11898-1:2015定义数据链路层&#xff08;包括逻…