QT-day(2)-(常用类、信号与槽.....)

news2024/9/22 19:40:31

题目:编写一个登录功能的界面,在登录框项目中,将登陆按钮发射的tclicked信号,连接到自定义的槽函数中,在槽函数中,判断uü界面输入的用户名是否为"admin ,密码是否为"123456如果验证成功,则输出"登陆成功"并关闭界面,如果验证失败,则输出"“登陆失败",并将密码框中的内容清除。

widget.cpp

ui->setupUi(this);
    //语音播报申请空间
    speech = new QTextToSpeech(this);

    //更改窗口界面的尺寸
    //这样设置只是窗口的原始尺寸,使用setFixedSize可将窗口大小固定
    this ->resize(QSize(600, 500));
    this ->setFixedSize(600, 500);

    //设置窗口透明度
    this ->setWindowOpacity(0.9);

    //界面标题更改
    this ->setWindowTitle("Bear-ear-ar");

    //设置窗口图标
    this ->setWindowIcon(QIcon(":/icon/biaoti2.png"));

    //设置主界面logo
    logo = new QLabel(this);                       //实例化一个标签,指定父组件
    logo ->resize(600, 200);                       //设置logo大小
    logo ->setScaledContents(true);                //设置图片自适应
    logo ->setPixmap(QPixmap(":/icon/logo.png"));  //放置图片

    //设置账户logo
    account_logo = new QLabel(this);                        //实例化一个标签,指定父组件
    account_logo ->resize(48, 40);                          //设置logo大小
    account_logo ->move(180, 255);                          //移动logo位置
    account_logo ->setScaledContents(true);                 //设置图片自适应
    account_logo ->setPixmap(QPixmap(":/icon/user.png"));   //放置图片

    //设置密码logo
    passwd_logo = new QLabel(this);                         //实例化一个标签,指定父组件
    passwd_logo ->resize(48, 40);                           //设置logo大小
    passwd_logo ->move(180, 330);                           //移动logo位置
    passwd_logo ->setScaledContents(true);                  //设置图片自适应
    passwd_logo ->setPixmap(QPixmap(":/icon/passwd.png"));  //放置图片

    //设置账户(明文)
    account = new QLineEdit(this);                   //实例化一个行编辑器,指定父组件
    account ->move(240, 264);                        //移动行编辑器的位置
    account ->setPlaceholderText("账号/邮箱/手机号");  //设置占位文本

    //设置密码(密文)
    passwd = new QLineEdit(this);                //实例化一个行编辑器,指定父组件
    passwd ->move(240, 337);                     //移动行编辑器的位置
    passwd ->setPlaceholderText("密码");         //设置占位文本
    passwd ->setEchoMode(QLineEdit::Password);  //设置密文模式

    //设置登录按钮
    login_button = new QPushButton(this);               //实例化一个按钮,指定父组件
    login_button ->resize(80, 30);                      //设置按钮的大小
    login_button ->move(160, 420);                      //移动按钮的位置
    login_button ->setText("登录");                     //设置占位文本
    login_button ->setIcon(QIcon(":/icon/denglu.png")); //放置图片

    //设置退出按钮
    quit_button = new QPushButton(this);                //实例化一个按钮,指定父组件
    quit_button ->resize(80, 30);                       //设置按钮的大小
    quit_button ->move(360, 420);                       //移动按钮的位置
    quit_button ->setText("退出");                      //设置占位文本
    quit_button ->setIcon(QIcon(":/icon/tuichu.png")); //放置图片

    //点击登录按钮,判断ui界面输入的账号是否为“admin”,密码是否为123456
    //如果验证成功,则输出登录成功并关闭界面,如果验证失败,则输出“登录失败”并晴空输入框
    //Qt4版本
    //connect(login_button, SIGNAL(clicked()), this, SLOT(on_clicked_slot_1()));

    //Qt5版本
    connect(login_button, &QPushButton::clicked, this, &Widget::on_clicked_slot_2);

    //语音播报
    connect(login_button, &QPushButton::clicked, this, &Widget::on_clicked_slot_3);

}

//自定义有关登录按钮对应的槽函数(1)(不安全)(Qt4版本)
void Widget::on_clicked_slot_1()
{
    //获取账号和密码
    QString account_t = this ->account ->text();
    QString passwd_t =  this ->passwd ->text();

    if("admin" == account_t && "123456" == passwd_t)
    {
        qDebug() << "登录成功" << endl;
        this ->close();
    }
    else
    {

        qDebug() << "登录失败" << endl;
        this ->passwd ->clear();
    }
}

//自定义有关登录按钮对应的槽函数(2)(安全)(Qt5版本)
void Widget::on_clicked_slot_2()
{
    //获取账号和密码
    QString account_t = this ->account ->text();
    QString passwd_t =  this ->passwd ->text();

    if("admin" == account_t && "123456" == passwd_t)
    {
        qDebug() << "登录成功" << endl;
        this ->close();
    }
    else
    {
        qDebug() << "登录失败" << endl;
        this ->passwd ->clear();
    }
}

//语音播报
void Widget::on_clicked_slot_3()
{
    speech ->say(this ->account->text());
}

 widget.h

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

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

public:
      //语言播报的栈区申请
      QTextToSpeech *speech;

private:
    Ui::Widget *ui;

    //设置主界面logo
    QLabel *logo;

    //设置账户和密码的logo
    QLabel *account_logo;
    QLabel *passwd_logo;

    //设置账户(明文)和密码(密文)
    QLineEdit *account;
    QLineEdit *passwd;

    //登录和退出按钮
    QPushButton *login_button;
    QPushButton *quit_button;

//槽函数类内申明
private slots:
      //自定义有关登录按钮对应的槽函数(1)(不安全的)(Qt4版本)
      void on_clicked_slot_1();

      //自定义有关登录按钮对应的槽函数(2)(安全的)(Qt5版本)
      void on_clicked_slot_2();

      //语言播报
      void on_clicked_slot_3();



signals:
      void my_signal();

结果样章:

 

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

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

相关文章

数据结构_时间复杂度/空间复杂度

目录 1. 数据结构在学什么 2. 数据结构的基本概念 3. 算法和算法评价 3.1 算法的基本概念 3.2 算法的特征 3.3 算法效率的度量 3.3.1 时间复杂度 3.3.2 空间复杂度 1. 数据结构在学什么 常言道&#xff1a;学以致用&#xff1b;学习完基本C语言程序&#xff0c;我们希…

AB数对 码蹄集

题目来源&#xff1a;码蹄集 题目描述&#xff1a; 大致思路&#xff1a; 遍历输入的n个整数&#xff0c;将每个数存入哈希表中&#xff0c;key为数值&#xff0c;value为该数出现的次数。 再次遍历这n个整数&#xff0c;对于每个数x&#xff0c;计算出x-C和xC的值&#xff0…

Go语言基础----Go语言简介

【原文链接】Go语言基础----Go语言简介 一、Go语言简介 Go语言&#xff0c;又称Golang&#xff0c;是Google公司的Robert Griesemer&#xff0c;Rob Pike 及 Ken Thompson开发的一种静态强类型、编译型的语言。Go语言语法和C语言接近&#xff0c;但是功能上内存安全&#xff…

【Python】lambda匿名函数

文章目录 前言lambda匿名函数的定义lambda匿名函数的使用使用lambda匿名函数写一个计算器总结 前言 在Python中,可以使用def 关键字定义函数,使用def定义的关键字是有名称的,在调用时可以重复使用.还有一种是使用lambda关键字进行函数的定义,这个方式定义的函数是匿名函数,只能…

51单片机(四)静态数码管和动态数码管显示

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

内存优化-比glibc更快的tcmalloc

TCMalloc 是 Google 开发的内存分配器&#xff0c;在不少项目中都有使用&#xff0c;例如在 Golang 中就使用了类似的算法进行内存分配。它具有现代化内存分配器的基本特征&#xff1a;对抗内存碎片、在多核处理器能够 scale。据称&#xff0c;它的内存分配速度是 glibc2.3 中实…

3d网上渲染平台是怎么渲图的_云渲染流程详解!

题主说的看到许多网友对‘’3d网上渲染平台是怎么渲图的‘’进行提问&#xff0c;瑞云渲染小编也提供自己的小小见解。针对3D网上渲染平台是指什么&#xff0c;实际应该是指云渲染农场。几十年来&#xff0c;随着计算机软硬件不断更迭&#xff0c;图形图像渲染的效果更加清晰、…

信号完整性分析基础知识之传输线和反射(二):阻性负载的反射,源端阻抗,弹跳图

传输线的端接需要考虑三种重要的特殊情况&#xff0c;每种情况中&#xff0c;传输线的特性阻抗均为50Ohm。信号将从源端在这条传输线上传播&#xff0c;并以特定的阻抗端接到达远端。 TIP:在时域中&#xff0c;信号对瞬时阻抗十分敏感&#xff0c;第二区域并不一定是一条传输线…

常见的链表的OJ题

在本次的博客当中&#xff0c;为了巩固关于链表技能的运用&#xff0c;我们先来看一些与链表有关的OJ题。 &#x1f335;反转链表 题目详情如下&#xff1a; 第一道题目从逻辑上看不难&#xff0c;我们只需要将链表进行拆分&#xff0c;将我们下一个节点进行一个类似于头插的操…

【Java 数据结构】Map和Set

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点!人生格言&#xff1a;当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔&#x1f9be;&am…

35岁程序员被裁赔偿27万,公司又涨薪让我回去,前提是退还补偿金,能回吗?

在大多数人眼里&#xff0c;35岁似乎都是一道槛&#xff0c;互联网界一直都有着“程序员是吃青春饭”的说法&#xff0c;。 如果在35岁的时候被裁能获得27万的赔偿&#xff0c;公司又涨薪请你回去上班&#xff0c;你会怎么选&#xff1f; 最近&#xff0c;就有一位朋友在网上…

Linux安装miniconda3

下载Miniconda&#xff08;Python3版本&#xff09; 下载地址&#xff1a;https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh 安装Miniconda&#xff08;需要连网&#xff09; &#xff08;1&#xff09;将Miniconda3-latest-Linux-x86_64.sh上传到/o…

研读Rust圣经解析——Rust learn-14(面向对象)

研读Rust圣经解析——Rust learn-14&#xff08;面向对象&#xff09; Rust面向对象对象包含数据和行为封装继承多态 实现面向对象书写最外层逻辑userServiceUser Rust面向对象 在一些定义下&#xff0c;Rust 是面向对象的&#xff1b;在其他定义下&#xff0c;Rust 不是 对象…

算法刷题|300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

最大递增子序列 题目&#xff1a;给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6…

c++文件操作Ofstream、Ifstream,如何获取文件长度

一、文件光标定位streampos 在读写文件时&#xff0c;有时希望直接跳到文件中的某处开始读写&#xff0c;这就需要先将文件的读写指针指向该处&#xff0c;然后再进行读写。 ifstream 类和 fstream 类有 seekg 成员函数&#xff0c;可以设置文件读指针的位置&#xff1b;ofstr…

OpenGL光照:颜色

知识点归纳 现实世界中有无数种颜色&#xff0c;每一个物体都有它们自己的颜色。我们要做的工作是使用(有限的)数字来模拟真实世界中(无限)的颜色&#xff0c;因此并不是所有的现实世界中的颜色都可以用数字来表示。然而我们依然可以用数字来代表许多种颜色&#xff0c;并且你甚…

autosar

一 autosar简介 AUTOSAR&#xff0c;汽车开放系统架构&#xff08;AUTomotive Open System Architecture&#xff09;是一家致力于制定汽车电子软件标准的联盟。AUTOSAR是由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立&#xff0c;各成员保持开发合作…

QT DAY2

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setFixedSize(600,600); //设置固定尺寸this->setWindowTitle("汪玉洁大聪明")…

Hadoop学习笔记(一)Hadoop的组成

1. HDFS NameNode用于记录整个数据的存储情况&#xff0c;具体的数据存储在各个Hadoop节点中&#xff0c;每个Hadoop的节点可以称为DataNode。假设Hadoop1到Hadoop100的机器每个都有1T的容量。那么一共就可以存储100T的数据。 NameNode(nn)&#xff1a;存储文件的元数据&…

位运算【巧妙思路、两种常见题型】

这里介绍两种代码中位运算非常常用的操作 n的二进制表示中第k位数——右移操作 &1 例如说&#xff0c;我们需要计算11的第2位数。 11 (1011)2 我们常规思路就是将其转化为二进制数后&#xff0c;直接观察对应位置的值 这里需要注意的是第k位数指的是从右开始的第k位&a…