qt部分核心机制

作业

1> 手动将登录项目实现,不要使用拖拽编程

并且,当点击登录按钮时,后台会判断账号和密码是否相等,如果相等给出登录成功的提示,并且关闭当前界面,发射一个跳转信号,如果登录失败,则给出登录失败的提示,并清空密码框

当点击取消按钮时,直接关闭当前登录框

.h文件

#ifndef MYJOB_H
#define MYJOB_H

#include <QMainWindow>
#include <QPushButton>
#include <QLabel>
#include <QWidget>
#include<QLineEdit>
#include <QObject>
#include <QMessageBox>
class myjob : public QMainWindow
{
    Q_OBJECT

signals:
    void my_signal();       //定义一个信号函数
public slots:
    void  btn1_yes_slot();      //自定义槽函数
    void  btn2_no_slot();
private slots:
    void  showMessage()
    {
        QMessageBox::information(this,"Information","登录失败!");
    }
public:
    myjob(QWidget *parent = nullptr);
    ~myjob();
private:
    QLabel *btn1_Account_label;
    QLabel *btnlogo_Icon_label;
    QLabel *btn2_Cryptographic_tag_label;
    QLineEdit *btn1_Account_entry;
    QLineEdit *btn2_Password_input;
    QPushButton *btn1_yes;
    QPushButton *btn2_no;
};
#endif // MYJOB_H

 源码文件

#include "myjob.h"

myjob::myjob(QWidget *parent)
    : QMainWindow(parent)
{
    //主页面设置
    this->setFixedSize(400,600);      //主页面大小


    //logo图标(也是标签)
    this->btnlogo_Icon_label = new QLabel;
    btnlogo_Icon_label->setParent(this);    //设置父组件
    btnlogo_Icon_label->resize(400,150);      //设置标签宽高
    btnlogo_Icon_label->move(0,0);      //移动标签位置
    btnlogo_Icon_label->setText("霜雪阅读");     //设置文本
    btnlogo_Icon_label->setStyleSheet("background-color:green;");     //设置背景颜色,否则看不见
    btnlogo_Icon_label->setAlignment(Qt::AlignCenter);        //设置对齐方式

    //账户标签
    btn1_Account_label = new QLabel;        //无参构造
    btn1_Account_label->setParent(this);    //设置父组件
    btn1_Account_label->resize(50,20);      //设置标签宽高
    btn1_Account_label->move(50,200);      //移动标签位置
    btn1_Account_label->setText("账户");     //设置文本
    btn1_Account_label->setStyleSheet("background-color:red;");     //设置背景颜色,否则看不见
    btn1_Account_label->setAlignment(Qt::AlignCenter);        //设置对齐方式

    //账户输入
    btn1_Account_entry = new QLineEdit(this);     //有参构造并设置父组件
    btn1_Account_entry->resize(150,20);         //设置宽和高
    btn1_Account_entry->move(btn1_Account_label->x()+btn1_Account_label->width()+10, btn1_Account_label->y());
    //btn1_Account_entry->setStyleSheet("background-color:pick;");     //设置背景颜色,否则看不见
    btn1_Account_entry->setAlignment(Qt::AlignCenter);        //设置对齐方式
    btn1_Account_entry->setPlaceholderText("请输入账号");      //设置占位文本

    //密码标签
    btn2_Cryptographic_tag_label = new QLabel;
    btn2_Cryptographic_tag_label->setParent(this);    //设置父组件
    btn2_Cryptographic_tag_label->resize(50,20);      //设置标签宽高
    btn2_Cryptographic_tag_label->move(btn1_Account_label->x(),btn1_Account_label->y()+btn1_Account_label->height()+15);      //移动标签位置
    btn2_Cryptographic_tag_label->setText("密码");     //设置文本
    btn2_Cryptographic_tag_label->setStyleSheet("background-color:red;");     //设置背景颜色,否则看不见
    btn2_Cryptographic_tag_label->setAlignment(Qt::AlignCenter);        //设置对齐方式

    //密码输入
    btn2_Password_input = new QLineEdit(this);     //有参构造并设置父组件
    btn2_Password_input->resize(150,20);         //设置宽和高
    btn2_Password_input->move(btn2_Cryptographic_tag_label->x()+btn2_Cryptographic_tag_label->width()+10, btn2_Cryptographic_tag_label->y());
    //btn2_Password_input->setStyleSheet("background-color:pick;");     //设置背景颜色,否则看不见
    btn2_Password_input->setAlignment(Qt::AlignCenter);        //设置对齐方式
    btn2_Password_input->setPlaceholderText("请输入密码");      //设置占位文本
    btn2_Password_input->setEchoMode(QLineEdit::Password);      //设置密文

    //登录按钮
    btn1_yes = new QPushButton("确认",this);  //有参构造并设置父组件及填充文本
    btn1_yes->resize(50,35);        //设置按键的宽和高
    btn1_yes->move(btn2_Cryptographic_tag_label->x()+btn2_Cryptographic_tag_label->x(),
                   btn2_Cryptographic_tag_label->y()+200);
    
 


    //取消按钮
    btn2_no = new QPushButton("取消",this);  //有参构造并设置父组件及填充文本
    btn2_no->resize(50,35);        //设置按键的宽和高
    btn2_no->move(btn1_yes->x()+100,
                   btn1_yes->y());
    //连接登录按钮
    QObject::connect(this->btn1_yes,&QPushButton::clicked(,this,&Mainlogin::btn1_yes_slot));
    
    //连接取消按钮
}

myjob::~myjob()
{
}

 测试文件

#include "myjob.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    myjob w;
    w.show();
    return a.exec();
}

2> 思维导图

3>两篇刷题28/30 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring】什么是Spring?

什么是Spring&#xff1f; Spring是一个开源的轻量级框架&#xff0c;是为了简化企业级开发而设计的。我们通常讲的Spring一般指的是Spring Framework。Spring的核心是控制反转(IoC-Inversion of Control)和面向切面编程(AOP-Aspect-Oriented Programming)。这些功能使得开发者…

【专题】2024-2025人工智能代理深度剖析:GenAI 前沿、LangChain 现状及演进影响与发展趋势报告汇总PDF洞察(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p39630 在科技飞速发展的当下&#xff0c;人工智能代理正经历着深刻的变革&#xff0c;其能力演变已然成为重塑各行业格局的关键力量。从早期简单的规则执行&#xff0c;到如今复杂的自主决策与多智能体协作&#xff0c;人工智能代理…

oCam:免费且强大的录屏软件

今天给大家推荐一个非常好的录屏软件。几乎可以满足你日常工作的需求。而且软件完全免费&#xff0c;没有任何的广告。 oCam&#xff1a;免费且强大的录屏软件 oCam是一款功能强大的免费录屏软件&#xff0c;支持屏幕录制、游戏录制和音频录制等多种模式&#xff0c;能够满足不…

spring学习(spring 配置文件详解)

一 了解如何创建基本的spring 配置文件 步骤 1 导入 spring-context 依赖 <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context&l…

C++Primer学习(2.2)

2.2 变量 变量提供一个具名的、可供程序操作的存储空间。C中的每个变量都有其数据类型,数据类型决定着变量所占内存空间的大小和布局方式、该空间能存储的值的范围&#xff0c;以及变量能参与的运算。对C程序员来说,“变量(variable)”和“对象(object)”一般可以互换使用。 术…

无须付费,安装即是完全版!

不知道大家有没有遇到过不小心删掉了电脑上超重要的文件&#xff0c;然后急得像热锅上的蚂蚁&#xff1f; 别担心&#xff0c;今天给大家带来一款超给力的数据恢复软件&#xff0c;简直就是拯救文件的“救星”&#xff01; 数据恢复 专业的恢复数据软件 这款软件的界面设计得特…

【Ubuntu】本地部署Deep Seek(深度求索)大模型的保姆级教程 | 详细教程

杭州深度求索人工智能基础技术研究有限公司(简称“深度求索”或“DeepSeek”)&#xff0c;成立于2023年&#xff0c;DeepSeek是一家专注通用人工智能&#xff08;AGI&#xff09;的中国科技公司&#xff0c;主攻大模型研发与应用&#xff0c;经营范围包括技术服务、技术开发、软…

Ollama + AnythingLLM + Deepseek r1 实现本地知识库

1、Ollama&#xff1a;‌是一个开源的大型语言模型 (LLM)服务工具&#xff0c;旨在简化在本地运行大语言模型的过程&#xff0c;降低使用大语言模型的门槛‌。 2、AnythingLLM&#xff1a;是由Mintplex Labs Inc. 开发的一款全栈应用程序&#xff0c;旨在构建一个高效、可定制、…

网络安全治理架构图 网络安全管理架构

网站安全攻防战 XSS攻击 防御手段&#xff1a; - 消毒。 因为恶意脚本中有一些特殊字符&#xff0c;可以通过转义的方式来进行防范 - HttpOnly 对cookie添加httpOnly属性则脚本不能修改cookie。就能防止恶意脚本篡改cookie 注入攻击 SQL注入攻击需要攻击者对数据库结构有所…

如何利用maven更优雅的打包

最近在客户现场部署项目&#xff0c;有两套环境&#xff0c;无法连接互联网&#xff0c;两套环境之间也是完全隔离&#xff0c;于是问题就来了&#xff0c;每次都要远程到公司电脑改完代码&#xff0c;打包&#xff0c;通过网盘&#xff08;如果没有会员&#xff0c;上传下载慢…

mysql 不是内部或外部命令,也不是可运行的程序或批处理文件

mysql 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件 前言描述1、&#x1f331;环境变量配置&#xff08;高级系统设置&#xff09;&#xff1a;2、&#x1f331;环境变量配置&#xff08;系统属性&#xff09;&#xff1a;3、&#x1f331;环境变量配置&…

常用数据结构之String字符串

字符串 在Java编程语言中&#xff0c;字符可以使用基本数据类型char来保存&#xff0c;在 Java 中字符串属于对象&#xff0c;Java 提供了 String 类来创建和操作字符串。 操作字符串常用的有三种类&#xff1a;String、StringBuilder、StringBuffer 接下来看看这三类常见用…

RabbitMQ 消息顺序性保证

方式一&#xff1a;Consumer设置exclusive 注意条件 作用于basic.consume不支持quorum queue 当同时有A、B两个消费者调用basic.consume方法消费&#xff0c;并将exclusive设置为true时&#xff0c;第二个消费者会抛出异常&#xff1a; com.rabbitmq.client.AlreadyClosedEx…

使用LLaMA Factory踩坑记录

前置条件&#xff1a;电脑显卡RTX 4080 问题&#xff1a;LLaMA-Factory在运行的时候&#xff0c;弹出未检测到CUDA的报错信息 结论&#xff1a;出现了以上的报错&#xff0c;主要可以归结于以下两个方面&#xff1a; 1、没有安装GPU版本的pytorch&#xff0c;下载的是CPU版本…

大模型推理——MLA实现方案

1.整体流程 先上一张图来整体理解下MLA的计算过程 2.实现代码 import math import torch import torch.nn as nn# rms归一化 class RMSNorm(nn.Module):""""""def __init__(self, hidden_size, eps1e-6):super().__init__()self.weight nn.Pa…

Vue3+codemirror6实现公式(规则)编辑器

实现截图 实现/带实现功能 插入标签 插入公式 提示补全 公式验证 公式计算 需要的依赖 "codemirror/autocomplete": "^6.18.4","codemirror/lang-javascript": "^6.2.2","codemirror/state": "^6.5.2","cod…

MIT 6.5940(一)

记录了Lecture 1~8 Lecture 1 Introduction TinyML and Efficient Deep Learning Computing 摘要 AI systems need to continually adapt to new data collected locally 在设备学习&#xff1a;better privacy, lower cost, customization, life-long learningTraining is…

Linux TCP 编程详解与实例

一、引言 在网络编程的领域中&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff09;协议因其可靠的数据传输特性而被广泛应用。在 Linux 环境下&#xff0c;使用 C 或 C 进行 TCP 编程可以实现各种强大的网络应用。本文将深入探讨 Linux TCP 编程的各个方面&…

一款由 .NET 官方团队开源的电子商务系统 - eShop

项目介绍 eShop是一款由.NET官方开源的&#xff0c;基于.NET Aspire构建的用于参考学习的服务架构电子商务系统&#xff0c;旨在展示如何利用.NET框架及其相关技术栈构建一个现代化的电子商务网站。该项目采用服务架构&#xff0c;将应用程序分解为多个独立的服务&#xff0c;…

crewai框架第三方API使用官方RAG工具(pdf,csv,json)

最近在研究调用官方的工具&#xff0c;但官方文档的说明是在是太少了&#xff0c;后来在一个视频里看到了如何配置&#xff0c;记录一下 以PDF RAG Search工具举例&#xff0c;官方文档对于自定义模型的说明如下&#xff1a; 默认情况下&#xff0c;该工具使用 OpenAI 进行嵌…