当前位置: 首页 > article >正文

华清远见嵌入式学习——QT——作业1

作业要求:

代码:

①:头文件

#ifndef LOGIN_H
#define LOGIN_H

#include <QWidget>
#include <QLineEdit>     //行编辑器类
#include <QPushButton>   //按钮类
#include <QLabel>        //标签类
#include <QMovie>        //动图类

class Login : public QWidget
{
    Q_OBJECT

public:
    Login(QWidget *parent = nullptr);
    ~Login();
};
#endif // LOGIN_H

②:源文件

#include "login.h"

Login::Login(QWidget *parent)
    : QWidget(parent)
{
    //关于窗口的设置
    this->resize(640,640);    //重新设置窗口大小
    this->setFixedSize(640,640);    //固定窗口大小
    this->setWindowFlag(Qt::FramelessWindowHint);   //将窗口标题去除
    this->setStyleSheet("background-color:rgb(179,183,170)");  //设置窗口背景颜色



    //关于行编辑器的设置
    QLineEdit *edit1 = new QLineEdit(this);    //实例化一个行编辑器对象,用于输入登录账号
    edit1->resize(320,80);    //重新设置行编辑器的大小
    edit1->move(160,260);    //将行编辑器移动至合适的位置
    edit1->setStyleSheet("background-color:white");  //设置行编辑器背景颜色
    edit1->setPlaceholderText("账号");    //使用占位,提示要在该行编辑器内输入的内容

    QLineEdit *edit2 = new QLineEdit(this);    //实例化一个行编辑器对象,用于输入登录密码
    edit2->resize(320,80);    //重新设置行编辑器的大小
    edit2->move(160,360);     //将行编辑器移动至合适的位置
    edit2->setPlaceholderText("密码");    //使用占位,提示要在该行编辑器内输入的内容
    edit2->setStyleSheet("background-color:white");   //设置行编辑器背景颜色
    edit2->setEchoMode(QLineEdit::Password);    //将行编辑器的输出模式设置为密码模式

    //关于动图和标签的设置
    //实例化一个动图对象,用于接收动图
    QMovie *mv1 = new QMovie("C:\\Users\\谢俊翔\\Desktop\\pictrue\\pictrue\\xxxh.gif");
    //将动图放入lab1中
    QLabel *lab1 = new QLabel(this);    //实例化一个标签,用于存放动图
    lab1->resize(640,260);     //重新设置标签的大小
    lab1->setMovie(mv1);     //存放动图
    mv1->start();         //让动图动起来
    lab1->setScaledContents(true);         //自动适应label

    //实例化一个动图对象,用于接收动图
    QMovie *mv2 = new QMovie("C:\\Users\\谢俊翔\\Desktop\\pictrue\\pictrue\\xh5.gif");
    QLabel *lab2 = new QLabel(this);     //实例化一个标签,用于存放动图
    lab2->resize(80,80);    //重新设置标签的大小
    lab2->move(80,260);     //将标签移动至合适的位置
    lab2->setMovie(mv2);    //存放动图
    mv2->start();           //让动图动起来
    lab2->setScaledContents(true);      //自动适应label

    //实例化一个动图对象,用于接收动图
    QMovie *mv3 = new QMovie("C:\\Users\\谢俊翔\\Desktop\\pictrue\\pictrue\\xh3.gif");
    QLabel *lab3 = new QLabel(this);     //实例化一个标签,用于存放动图
    lab3->resize(80,80);    //重新设置标签的大小
    lab3->move(80,360);     //将标签移动至合适的位置
    lab3->setMovie(mv3);    //存放动图
    mv3->start();           //让动图动起来
    lab3->setScaledContents(true);      //自动适应label

    QLabel *lab4 = new QLabel("罗小黑之家欢迎您的到来 (づ ̄3 ̄)づ╭❤~",this);   //实例化一个标签,用于填充文字
    lab4->resize(320,40);        //重新设置标签大小
    lab4->move(160,460);        //将标签移动至合适的位置


    //关于按钮的设置
    QPushButton *btn1 = new QPushButton("登录",this);     //实例化一个按钮对象,用于登录
    btn1->resize(320,60);      //重新设置按钮的大小
    btn1->setStyleSheet("background-color:rgb(138,183,113);border-radius:10px");   //设置按钮背景颜色
    btn1->move(160,500);    //移动按钮至合适位置


    QPushButton *btn2 = new QPushButton("x",this);     //实例化一个按钮对象,用于关闭窗口
    btn2->resize(30,30);      //重新设置按钮的大小
    btn2->setStyleSheet("background-color:white");   //设置按钮背景颜色
    btn2->move(610,0);    //移动按钮至合适位置

    QPushButton *btn3= new QPushButton("-",this);     //实例化一个按钮对象,用于最小化窗口
    btn3->resize(30,30);      //重新设置按钮的大小
    btn3->setStyleSheet("background-color:white");   //设置按钮背景颜色
    btn3->move(580,0);    //移动按钮至合适位置
}

Login::~Login()
{
}

③:主函数文件

#include "login.h"

#include <QApplication>

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

代码效果图:

思维导图:

模拟面试题:


http://www.kler.cn/a/161734.html

相关文章:

  • Vue 的生命周期函数 和 Vuex
  • 新版 idea 编写 idea 插件时,启动出现 ClassNotFound
  • AI制作ppt
  • Node.js笔记
  • 读数据质量管理:数据可靠性与数据质量问题解决之道03数据目录
  • vue中如何关闭eslint检测?
  • CoreDNS实战(二)-CoreDNS+ETCD实现DNS服务发现
  • 陈睿接手一年后,B站全力一搏的游戏业务怎样了
  • ORA-01502: index ‘xxx‘ or partition of such index is in unusable state
  • Shell实操(九):判断输入内容直至指定内容退出
  • 12.Java程序设计-基于Springboot框架的Android学习生活交流APP设计与实现
  • Flume 安装部署
  • 记账中心二开
  • 二十一章网络通信
  • 【ArcGIS Pro微课1000例】0041:Pro强大的定位搜索功能、定位窗格、地图上查找地点
  • Python搭建代理IP池实现接口设置与整体调度
  • Spring IoC和DI
  • 接口测试方向
  • 【Java】集合 之 使用 Set
  • 同时增强多个目标:masks, bounding boxes, keypoints
  • 2-4、DEBUG和源程序区别
  • 根据既定数组创建数组的方法汇总 (第3讲)
  • hive映射es表任务失败,无错误日志一直报Task Transitioned from NEW to SCHEDULED
  • Kafka Connect :构建强大分布式数据集成方案
  • 【计算机网络学习之路】HTTP请求
  • C# Solidworks二次开发:三种获取SW设计结构树的方法-第一讲