2024.03.21作业

自由发挥实现一个登录窗口的应用场景

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QPen>
#include <QBrush>
#include <QPainter>
#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
class Painter;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();protected:void paintEvent(QPaintEvent* event);void timerEvent(QTimerEvent* event);private slots:void on_pushButton_clicked();private:Ui::Widget *ui;int bY = 70;int gY = 20;int rY = 120;bool bUp = false;bool gUp = false;bool rUp = false;
};class Painter
{
private:QPen pen;QBrush brush;QPainter painter;public:Painter(Widget* widget);void setColor(QColor color);void drawRect(int x, int y, int w, int h);
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "./ui_widget.h"
#include <QMessageBox>Painter::Painter(Widget* widget): painter(widget)
{brush.setStyle(Qt::SolidPattern);
}void Painter::drawRect(int x, int y, int w, int h)
{painter.drawRect(x, y, w, h);
}void Painter::setColor(QColor color)
{pen.setColor(color);brush.setColor(color);painter.setPen(pen);painter.setBrush(brush);
}Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->resize(400, 400);this->startTimer(30);
}Widget::~Widget()
{delete ui;
}void Widget::paintEvent(QPaintEvent* event)
{Q_UNUSED(event);Painter painter(this);if (bUp){painter.setColor(QColor(0, 0, 255, 255));painter.drawRect(100, bY, 200, 50);}if (gUp){painter.setColor(QColor(0, 255, 0, 255));painter.drawRect(100, gY, 200, 50);}if (rUp){painter.setColor(QColor(255, 0, 0, 255));painter.drawRect(100, rY, 200, 50);}if (!bUp){painter.setColor(QColor(0, 0, 255, 255));painter.drawRect(100, bY, 200, 50);}if (!gUp){painter.setColor(QColor(0, 255, 0, 255));painter.drawRect(100, gY, 200, 50);}if (!rUp){painter.setColor(QColor(255, 0, 0, 255));painter.drawRect(100, rY, 200, 50);}painter.setColor(QColor(240, 240, 240, 255));painter.drawRect(100, 145, 200, 50);if (!bUp){bY += 1;if (122 == bY){bUp = true;}}else{bY -= 1;if (bY + 49 == rY){bUp = false;}}if (!gUp){gY += 1;if (122 == gY){gUp = true;}}else{gY -= 1;if (gY + 50 == bY){gUp = false;}}if (!rUp){rY += 1;if (122 == rY){rUp = true;}}else{rY -= 1;if (rY + 50 == gY){rUp = false;}}
}void Widget::timerEvent(QTimerEvent* event)
{Q_UNUSED(event);this->update();
}void Widget::on_pushButton_clicked()
{QString user = ui->user_lineEdit->text();QString passwd = ui->passwd_lineEdit->text();if ("lkjhxx" == user && "123456" == passwd){QMessageBox::information(NULL, "提示", "登录成功!", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);}else{QMessageBox::information(NULL, "提示", "登录失败!", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);}
}

效果

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux快速入门,上手开发 02.VMware的安装部署

倘若穷途末路&#xff0c;那便势如破竹 —— 24.3.21 一、VMware的作用 在Windows或IOS系统下&#xff0c;给本地电脑安装VMware虚拟机&#xff0c;用来在虚拟机上安装Linux系统&#xff0c;避免重复资源的浪费&#xff0c;可以在虚拟机上搭建Linux系统进行学习 二、VMware的安…

【零基础C语言】内存中的存储

一. 整数在内存中的存储 1.原码反码补码 在计算机中整数在内存中存储的是二进制数 二进制的存储有三种表示的方式: 原码反码补码 这三种表示方式又分为符号位和数值位&#xff1a; 符号位中0表示正数&#xff0c;1表示负数&#xff0c;最高位被当作符号位&#xff0c;其他为…

高精度铸铁平台制造工艺有多精细——河北北重机械

高精度铸铁平台制造工艺通常包括以下几个步骤&#xff1a; 材料准备&#xff1a;选择合适的铸铁材料&#xff0c;并确保其质量符合要求。常用的铸铁材料包括灰铸铁、球墨铸铁等。 模具制造&#xff1a;根据平台的设计要求&#xff0c;制造适用的模具。模具一般由砂型、金属模具…

Unity 学习日记 7.用代码让2D角色动起来

下载源码 UnityPackage 目录 1.准备工作 2.显示第一幅图片 3.让乌龟动起来 1.准备工作 步骤&#xff1a; 将乌龟&#x1f422;进行切片 创建一个2D精灵对象&#xff0c;暂时将乌龟&#x1f422;的第一张图片放进去&#xff0c;并调整到合适的大小和位置 然后将精灵对象里…

Python正则表达式之模式修正符,你get了吗?

​大家好&#xff0c;今天我要和大家分享一个Python编程中的神秘武器——正则表达式模式修正符&#xff01;正则表达式&#xff0c;对于很多编程新手来说&#xff0c;可能是一个头疼的问题。但别担心&#xff0c;模式修正符就像是你手中的魔法棒&#xff0c;让你的正则表达式更…

2024创业:开一个抖店,哪怕当副业去做也行!

我是王路飞。 绝大多数人之所以走上创业这条路&#xff0c;原本的理由可能没有这么高大上。 就像我自己当初创业走上电商这条路一样&#xff0c;就一句话&#xff1a;走到绝路了&#xff0c;没办法了&#xff0c;只能闯一把&#xff0c;不让自己饿死。 创业之难&#xff0c;…

流域生态系统水-碳-氮耦合过程模拟

原文链接&#xff1a;流域生态系统水-碳-氮耦合过程模拟https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247598401&idx2&sn4c972ff3a9046094042a0a3dc65e9764&chksmfa8200a6cdf589b01b0af612a5810e6eda02cc9e7f5232db9157ff85de28626a8f4f1878fd9f&…

PTA L2-041 插松枝 代码附注释

人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上&#xff0c;做成大大小小的松枝。他们的工作流程&#xff08;并不&#xff09;是这样的&#xff1a; 每人手边有一只小盒子&#xff0c;初始状态为空。每人面前有用不完的松枝干和一个推送器&#xff0c;每次推送一…

leetcode106从中序与后序遍历序列构造二叉树

目录 1.解题关键2.思路3.变量名缩写与英文单词对应关系4.算法思路图解5.代码 本文针对原链接题解的比较晦涩的地方重新进行说明解释 原题解链接&#xff1a;https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/solutions/50561/tu-jie-…

PHP的IntlChar类:处理Unicode字符的强大工具

PHP的IntlChar类&#xff1a;处理Unicode字符的强大工具 在处理多语言和国际化应用程序时&#xff0c;Unicode字符的解码是必不可少的一环。PHP的IntlChar类为我们提供了强大的工具来解码Unicode字符。本文将深入探讨PHP的IntlChar类&#xff0c;介绍其功能、用法和优势&#x…

基于SpringBoot和Vue的大学生租房系统的设计与实现

今天要和大家聊的是一款今天要和大家聊的是一款基于SpringBoot和Vue的大学生租房系统的设计与实现。 &#xff01;&#xff01;&#xff01; 有需要的小伙伴可以通过文章末尾名片咨询我哦&#xff01;&#xff01;&#xff01; &#x1f495;&#x1f495;作者&#xff1a;李同…

初识数据库原理:为什么需要数据库?

初识数据库原理&#xff1a;什么是数据库&#xff1f; Chapter1&#xff1a;什么是数据库&#xff1f; 笔记来源&#xff1a;《漫画数据库》–科学出版社 1.1 为什么需要数据库&#xff1f; 文件应用的管理方式&#xff0c;数据会出现重复。 若各个部门各自管理自己一方的数…