day1---9.15---qt

2023-09-15 20:18:51

 头文件:

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

#include <QMainWindow>             //父类的头文件

class zy1 : public QMainWindow     //自定义自己的界面类,公共继承自QWidget,父类中重写了绘制事件处理函数
{
    Q_OBJECT                       //信号与槽的元对象,没有这个对象,信号与槽就不能使用了

public:
    zy1(QWidget *parent = nullptr);//构造函数的声明,并且有一个带默认参数的形参(即是有参也可以是无参)
    ~zy1();                        //析构函数的声明
};
#endif // ZY1_H

源文件:

#include "zy1.h"
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>

zy1::zy1(QWidget *parent)
    : QMainWindow(parent)         //显性调用父类的有参构造完成对子类从父类继承下来成员的初始化工作
{
    this->setFixedSize(500,400);      //固定图形化界面大小为长500,高400
    this->setWindowTitle("Widget");   //设置图形化界面窗口主题标签命名为Widget
    this->setWindowIcon(QIcon("D:\\daimawenjian\\kc\\qt\\day1\\tupian\\wodepeizhenshi.png"));//设置界面窗口主题图片
    this->setStyleSheet("background-color:white;");        //将背景设为白色(为了让图片边框不明显)

    QLabel *lab=new QLabel(this);                          //实例化一个标签,并指定父组件
    lab->resize(500,180);                    //重新设置尺寸
    lab->setAlignment(Qt::AlignCenter);      //居中对齐
    lab->setPixmap(QPixmap("D:\\daimawenjian\\kc\\qt\\day1\\tupian\\logo.png"));//设置图片
    lab->setScaledContents(true);     //设置内容自适应

    QLabel *lab1=new QLabel(this);         //实例化一个标签,并指定父组件
    lab1->resize(40,40);                  //重新设置尺寸
    lab1->move(lab->x()+100,lab->y()+220);//根据lab相对位移
    lab1->setStyleSheet("background-color:white;"); //将背景设为白色(为了让图片边框不明显)
    lab1->setAlignment(Qt::AlignCenter);//居中对齐
    lab1->setPixmap(QPixmap("D:\\daimawenjian\\kc\\qt\\day1\\tupian\\userName.jpg"));//设置图片
    lab1->setScaledContents(true); //设置内容自适应

    QLabel *lab2=new QLabel(this); //实例化一个标签,并指定父组件
    lab2->resize(40,40);//重新设置尺寸
    lab2->move(lab1->x(),lab1->y()+60);//根据lab1相对位移
    lab2->setStyleSheet("background-color:white;");//将背景设为白色(为了让图片边框不明显)
    lab2->setAlignment(Qt::AlignCenter);//居中对齐
    lab2->setPixmap(QPixmap("D:\\daimawenjian\\kc\\qt\\day1\\tupian\\passwd.jpg"));//设置图片
    lab2->setScaledContents(true);//设置内容自适应

    QLineEdit *edit=new QLineEdit(this); //实例化一个文本框,并指定父组件
    edit->move(lab1->x()+50,lab1->y());//根据lab1相对位移
    edit->resize(200,40);//重新设置尺寸
    edit->setPlaceholderText("QQ账号/手机/邮箱");//设置占位文本
    edit->setAlignment(Qt::AlignLeft);//居中对齐
    QLineEdit *edit1=new QLineEdit(this);//实例化一个文本框,并指定父组件
    edit1->resize(edit->size());//重新设置尺寸
    edit1->move(lab2->x()+50,lab2->y());//根据lab2相对位移
    edit1->setMaxLength(6);//设置文本输入不超过6位
    edit1->setPlaceholderText("密码为6位");//设置占位文本
    edit1->setEchoMode(QLineEdit::Password);//设置回显模式
    edit1->setAlignment(Qt::AlignLeft);//居中对齐

    QPushButton *btn1=new QPushButton(this);//实例化一个按钮,并指定父组件
    btn1->setText("登录");//设置按钮上的文本内容
    btn1->resize(100,30);//重新设置尺寸
    btn1->setIcon(QIcon("D:\\daimawenjian\\kc\\qt\\day1\\tupian\\login.png"));//设置图片
    btn1->move(edit->x()+40,edit->y()+120);//根据edit相对位移
    QPushButton *btn2=new QPushButton(this);
    btn2->setText("取消");//设置按钮上的文本内容
    btn2->resize(btn1->size());//重新设置尺寸
    btn2->setIcon(QIcon("D:\\daimawenjian\\kc\\qt\\day1\\tupian\\cancel.png"));//设置图片
    btn2->move(btn1->x()+120,btn1->y());//根据btn1相对位移


}

//析构函数的定义
zy1::~zy1()
{
}

测试文件:

#include "zy1.h"          //引入自定义图形化界面类的头文件

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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);    //使用应用程序类,实例化一个应用程序的对象
    zy1 w;                       //用自定义的图形化界面类实例化一个对象
    w.show();         //调用show函数展示界面,父类提供的,可以展示自己的组件,以自己作为父组件的所有子组件也会被展示出来
    return a.exec();      //阻塞等待应用程序,防止应用程序结束,等待用户操作、等待信号与槽、等待事件发生
}

 结果图:

 思维导图:

更多推荐

《Docker与Kubernetes容器运维实战》简介

#好书推荐##好书奇遇季#《Docker与Kubernetes容器运维实战》已经出版。本书帮助读者系统掌握Docker与K8s运维技能。本书内容本书分两部分系统介绍Docker与Kubernetes的运维技术。(1)Docker部分包括:全面认识Docker、初步体验Docker、Docker基本管理、Docker仓库

springboot

回顾spring轻量级的:指的是spring核心功能的jar包不大。非侵入式的:业务代码不需要继承或实现spring中任何的类或接口IOC:控制反转(InverseofControl),以前项目都是在哪儿用到对象,在哪儿new,把生成对象的权利反转给spring框架,可以对对象进行功能的增强(让spring把对象管理起

分类问题和回归问题的区别是什么?

分类问题和回归问题是机器学习和统计分析中两种不同类型的问题,它们的主要区别在于其目标和处理方式:问题类型:分类问题(Classification):在分类问题中,目标是将数据分为不同的类别或标签。这意味着模型的输出是一个离散值,通常代表预定义的类别。例如,垃圾邮件检测是一个分类问题,它需要将电子邮件分为两个类别:垃圾邮

Python爬虫深度优化:Scrapy库的高级使用和调优

在我们前面的文章中,我们探索了如何使用Scrapy库创建一个基础的爬虫,了解了如何使用选择器和Item提取数据,以及如何使用Pipelines处理数据。在本篇高级教程中,我们将深入探讨如何优化和调整Scrapy爬虫的性能,以及如何处理更复杂的抓取任务,如登录,处理Cookies和会话,以及避免爬虫被网站识别和封锁。一、

探索人工智能 | 计算机视觉 让计算机打开新灵之窗

前言计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。文章目录前言主题原理常用算法CNNSVM应用自动驾驶医学影像分析无人机和机器人小结面临挑战总结主题计算机视觉既是工程领域

OpenCV实战(27)——追踪视频中的特征点

OpenCV实战(27)——追踪视频中的特征点0.前言1.追踪视频中的特征点2.特征点追踪原理3.完整代码小结系列链接0.前言我们已经知道可以通过一些最独特的点来分析图像,对于图像序列同样如此,其中一些特征点的运动可用于了解捕获场景的不同元素如何移动。在本节中,我们将学习如何在特征点逐帧移动时通过跟踪特征点来执行序列的

Hadoop生态圈中的数据同步工具SQOOP

Hadoop生态圈中的数据同步工具SQOOP一、sqoop的概念二、sqoop的核心功能1、数据导入import2、数据导出export三、sqoop的底层实现四、sqoop的安装和部署五、sqoop的基本操作1、sqoop查看RDBMS中有哪些数据库2、sqoop查看某一个数据库下有哪些数据表3、通过sqoop执行s

Oracle,高斯创建自增序列

某些时候,需要获取到一个自增值然后点击左下Apply也可以通过SQL语句执行dual在Oracle中是张虚拟表,通常用于执行这样的查询Oracle中查询语句:select序列名.nextvalfromdual在高斯数据库中:查询是selectmy_sequence.nextval不需要加formxxx例如:Oracle

JVM 第一章:Java运行时数据区

目录一.了解JVM1.1什么是JVM1.2JRE/JDK/JVM1.3JVM的整体结构二.Java运行时数据区2.1程序计数器(PC寄存器)2.2Java虚拟机栈(JavaVirtualMachineStacks)2.2.1栈帧的组成2.2.2问题辨析2.2.3逃逸分析①栈上分配②标量分析③同步消除2.2.4内存溢出2

IP代理与加速器:理解它们的区别与共同点

目录一、IP代理的基本概念与作用1、IP代理的定义2、IP代理的作用二、加速器的基本概念与作用1、加速器的定义2、加速器的作用三、IP代理与加速器的异同点1、相同点2、不同点四、都有什么优缺点五、各自在什么场合下使用六、该怎么选择总结在互联网的汪洋大海中,我们有时会遇到各种网络问题,如地区限制、网络延迟、封锁等。这时,

网页订货系统的诸多优势|企业APP订单管理软件

1.订单信息,发货信息,账目信息一目了然生产企业(总代理)和分销商之间可以清楚直观的了解到商品和货款的实时状态,以便高效的订货,发货,进行货款催收以及商品的物流跟踪。2.建立稳固的客户关系,避免客户被竞争对手挖墙脚有了网上订货系统,企业(总代理)和分销商之间的联系更加紧密,账目更加清晰,客户信任度和忠诚度大大提升,有效

热文推荐