QT(8.30)常用类与组件,实现登录界面

news2025/1/21 4:58:16

1.作业:

完成一个登录界面(图片未附带):

头文件:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

#include <QLineEdit>//行编辑器

#include<QIcon>//图标

#include<QLabel>//标签

#include<QPushButton>//按钮

#include<QIcon>//图标
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
};
#endif // WIDGET_H

主函数:

#include "widget.h"

#include <QApplication>

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

实现函数:

#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    this->setFixedSize(500,600);//设置窗口固定大小尺寸
    this->setWindowTitle("来也匆匆");//设置窗口标题
    this->setWindowIcon(QIcon("C:\\Users\\86183\\Desktop\\photo\\窗口标签.jpg"));//设置窗口图标
    this->setStyleSheet("background-color:purple");//设置窗口颜色
    QLabel *lab1 = new QLabel(this);//创建一个标签,设置父组件为当前窗口组件
    lab1 -> resize(500,200);//设置标签大小
    lab1 -> setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\photo\\背景.jpg"));//标签中添加图片内容
    lab1 -> setScaledContents(true);//设置标签内容自适应
    QLabel *lab2 = new QLabel(this);//创建标签,设置父组件为当前窗口组件
    lab2 -> resize(40,40);//设置标签大小
    lab2 -> move(120,300);//设置标签位置
    lab2 -> setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\photo\\userName.jpg"));
    lab2 -> setScaledContents(true);//设置内容自适应
    QLabel *lab3 = new QLabel(this);//创建标签,设置父组件为当前窗口组件
    lab3 -> resize(40,40);//设置标签大小
    lab3 -> move(lab2->x(),lab2->y()+100);//设置标签位置
    lab3 -> setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\photo\\passwd.jpg"));
    lab3 -> setScaledContents(true);//设置标签内容自适应
    QLineEdit *dit1 = new QLineEdit(this);//创建一个行编辑器,指定父组件
    dit1->setPlaceholderText("QQ/手机/邮箱");//设置占位文本
    dit1->move(lab2->x()+70,lab2->y());//设置行编辑器位置
    dit1->resize(250,40);//设置行编辑器大小
    dit1->setStyleSheet("background-color:white");//设置背景颜色
    QLineEdit *dit2 = new QLineEdit(this);//创建一个行编辑器,父组件为当前窗口组件
    dit2->setPlaceholderText("密码");//设置占位文本
    dit2->move(lab3->x()+70,lab3->y());
    dit2->resize(250,40);//设置行编辑器大小
    dit2->setStyleSheet("background-color:white");//设置背景颜色
    dit2->setEchoMode(QLineEdit::Password);//设置输入为密文模式
    QPushButton *btn1 = new QPushButton("登录",this);//创建一个按钮,设置按钮文本为登录
    QPushButton *btn2 = new QPushButton("取消",this);//创建一个按钮,设置按钮文本为取消
    btn1->resize(80,40);//设置按钮大小
    btn2->resize(80,40);//设置按钮大小
    btn1->move(300,500);//设置按钮位置
    btn2->move(btn1->x()+100,btn1->y());//设置按钮位置
    btn1->setIcon(QIcon("C:\\Users\\86183\\Desktop\\photo\\login.png"));//设置按钮图标
    btn2->setIcon(QIcon("C:\\Users\\86183\\Desktop\\photo\\cancel.png"));//设置按钮图标
}

Widget::~Widget()
{
}

运行结果:

文件注释(创建后未修改代码时的模板理解):

头文件:

#ifndef MAINWINDOW_H//防止重复包含头文件
#define MAINWINDOW_H

#include <QMainWindow>//头文件

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }//定义了一个叫Ui的命名空间,里面声明了一个MainWindow类
QT_END_NAMESPACE

class MainWindow : public QMainWindow//定义属于自己的类
{
    Q_OBJECT//信号与槽的元对象

public:
    MainWindow(QWidget *parent = nullptr);//构造函数声明,声明有一个默认的形参
    ~MainWindow();//析构函数

private:
    Ui::MainWindow *ui;//定义一个私有的指针,指针类型是Ui中声明的MainWindow类型,可以用过Ui指针找到Ui界面上拖拽的组件
};
#endif // MAINWINDOW_H

主函数:

#include "mainwindow.h"//图形化界面的头文件

#include <QApplication>//应用程序的头文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//实例化一个应用程序的对象,调用有参构造
    MainWindow w;//实例化一个类对象
    w.show();//调用类中的函数,展示窗口组件和其中的所有子组件
    return a.exec();//exec为了阻塞界面不被关闭,等待相关事件发生
                    //等待信号与槽,等待事件处理,等待用户操作
}

实现函数:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)//有参构造函数的定义
    : QMainWindow(parent)//初始化列表,
    , ui(new Ui::MainWindow)//给类中的指针成员Ui开辟堆区空间
{
    ui->setupUi(this);//构造MainWindo时给ui指针指向的组件实例化空间
}

MainWindow::~MainWindow()//析构函数的定义
{
    delete ui;//释放Ui指针的堆区空间
}

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

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

相关文章

【pyqt5界面化工具开发-13】QtDesigner功能择优使用

目录 0x00 前言&#xff1a; 一、完成基本的布局 二、其他功能的使用 三、在代码行开发 0x00 前言&#xff1a; QtDesigner工具的择优使用&#xff1a; 1、他的界面开发&#xff0c;是我们主要需要使用的功能 2、他的其他功能的使用&#xff0c;有需要就可使用&#xff…

报This application has no explicit mapping for /error 解决方法

Application启动类的位置不对&#xff0c;要将Application类放在最外侧&#xff0c;即包含所有子包。 没发现这个问题&#xff0c;卡了我老半天&#xff0c;兄弟们可以看一下你们是不是这个问题。

万人在线,一站式自动化运维 SysOM 3.0重磅发布!龙蜥社区系统运维 MeetUp 回顾来了

8 月 12 日&#xff0c;由龙蜥社区系统运维 SIG 主办&#xff0c;乘云数字协办的&#xff0c;主题为“观测&#xff0c;让运维更简单&#xff01;”的系统运维 MeetUp 于杭州圆满结束。来自乘云数字、谐云科技、乐维、云杉网络、擎创科技、观测云、阿里云以及浙江大学等众多厂商…

基于爬行动物算法优化的BP神经网络(预测应用) - 附代码

基于爬行动物算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于爬行动物算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.爬行动物优化BP神经网络2.1 BP神经网络参数设置2.2 爬行动物算法应用 4.测试结果&#xff1a;5…

vue3批量导出文件,打包成压缩包

1.下载插件 npm install jszip npm install file-saver2.封装方法 新建一个exportFileZip.js文件 // 引入实现下载压缩包的两个库 import JSZip from jszip; import FileSaver from file-saver; // 引入请求模块 import axios from axios // 实现下载压缩包按钮的方法 fileA…

kotlin实现猜数游戏

游戏规则 1.程序随机生成一个1到100的数字&#xff0c;作为MagicNumber 2.用户根据提示输入数据&#xff0c;只有三次机会输入数据 代码 代码很简单&#xff0c;使用了let内置函数 fun main() {//生成随机数可以使用java的方法//val magicNumber Random().nextInt(11)val ma…

GiraffeDet助力yolov8暴涨分---有可执行源码

Yolov8魔改–加入GiraffeDet模型提高小目标效果 VX搜索晓理紫关注并回复有yolov8-GiraffeDet获取代码 [晓理紫] 1 GiraffeDet模型 GiraffeDet是一种新颖的粗颈范例&#xff0c;一种类似长颈鹿的网络&#xff0c;用于高效的目标检测。 GiraffeDet 使用极其轻量的主干和非常深且…

助力网络管理的利器:企业办公网络中的VLAN划分策略

企业办公网络的性能和安全性对员工的高效工作和信息安全具有重要意义。在实现这一目标时&#xff0c;VLAN&#xff08;Virtual Local Area Network&#xff09;划分在网络设计中发挥着至关重要的作用。通过将办公网络划分为多个虚拟局域网&#xff0c;VLAN划分可以实现网络资源…

【论文精读】Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 前言Abstract1. Introduction2. Related Work3. Method3.1. Overall Architecture3.2. Shifted Window based Self-AttentionSelf-attention in non-overlapped windowsShifted window partitioning …

streamlit-高级功能

缓存 st.cache_data st.cache_resource 为应用程序添加会话状态 会话状态 会话状态应用到应用程序 会话状态和小部件关联 可序列化会话状态 注意事项和限制 命令行选项 应用程序菜单 菜单选项 开发者选项 streamlit配置 按钮行为和示例 连接到数据 数据框 形式 小部件语义 …

pycharm 打开Terminal时报错activate.ps1,因为在此系统上禁止运行脚本,并因此无法进入虚拟环境

pycharm 打开Terminal时报错activate.ps1&#xff0c;因为在此系统上禁止运行脚本&#xff0c;并因此无法进入虚拟环境 如下图所示&#xff1a; 网上说可以set_restrictFalse什么的&#xff0c;虽然也可但可能会降低电脑安全性&#xff0c;可以将下面的终端改为cmd.exe即可

d3dx9_35.dll丢失怎么解决

今天&#xff0c;我将为大家介绍关于电脑d3dx9_35.dll丢失的4种详细修复方法。希望通过这次分享&#xff0c;能够帮助大家解决在日常工作和生活中遇到的一些问题。 首先&#xff0c;让我们来了解一下d3dx9_35.dll是什么&#xff1f; d3dx9_35.dll是一个非常重要的动态链接库文…

自测scRNA-Seq+scWGBS=3分三区文章?

写在前面 最近在捣鼓表观遗传学&#xff0c;处理了一批Bulk RNA-Seq和WGBS(Whole Genome Bisulfite Sequencing)的数据。熟悉我风格的粉丝都知道&#xff0c;我一般会读几篇文献再下手&#xff0c;遂于PubMed中检索了几篇文章&#xff0c;发现一个2022年发表的题为"WGBS …

十种高级的代码书写方式,提高代码质量和工作效率

1.集合遍历 不使用lambda&#xff1a; List<String> list Arrays.asList("kk", "oneone", "11"); for (String name : list) {System.out.println(name); }使用lambda&#xff1a; List<String> list Arrays.asList("kk&q…

如何使用工具将批量查询的物流信息导出到表格

现如今&#xff0c;物流行业发展迅速&#xff0c;人们对于物流信息的查询需求也越来越高。为了满足用户的需求&#xff0c;我们推荐一款便捷高效的物流信息查询工具——"固乔快递查询助手"软件。 首先&#xff0c;用户需要下载并安装"固乔快递查询助手"软件…

手写一个简单爬虫--手刃豆瓣top250排行榜

#拿到页面面源代码 request #通过re来提取想要的有效信息 re import requests import re url"https://movie.douban.com/top250"headers{"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/11…

《论文阅读21》Group Equivariant Convolutional Networks

一、论文 研究领域&#xff1a;机器学习论文&#xff1a;Group Equivariant Convolutional Networks PMLR Proceedings of Machine Learning Research 2016 论文链接 二、论文简述 三、论文详述 群等变卷积网络 Abstract 我们引入群等变卷积神经网络&#xff08;G-CNN&…

景联文科技数据标注:人体关键点标注用途及各点的位置定义

人体关键点标注是一种计算机视觉任务&#xff0c;指通过人工的方式&#xff0c;在指定位置标注上关键点&#xff0c;例如人脸特征点、人体骨骼连接点等&#xff0c;常用来训练面部识别模型以及统计模型。这些关键点可以表示图像的各个方面&#xff0c;例如角、边或特定特征。在…

《异常检测——从经典算法到深度学习》22 Kontrast: 通过自监督对比学习识别软件变更中的错误

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …