QTday1代码的形式实现登录框

1 篇文章 0 订阅

代码注释

main.cpp

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//调用应用程序类的有参构造的实例化对象
    Widget w;//调用自定义的有参构造实例化的对象
    w.show();//调用该类的父类里的成员函数show,显示窗口
    return a.exec();//调用应用程序类实例化对象的成员函数exec,用于阻塞等待刷新事件
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)//自定义类的有参构造
    : QWidget(parent)
    , ui(new Ui::Widget)//类中成员指针的堆区空间初始化
{
    ui->setupUi(this);//拖拽的内容的父组件设置为自定义类的指针,拖拽的内容显示在该类的窗口上
}

Widget::~Widget()
{
    delete ui;//释放堆区空间的指针。
}

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

//ui_widget中的命名空间
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }//ui命名空间的声明
QT_END_NAMESPACE

class Widget : public QWidget//自定义类继承于父类QWidget
{
    Q_OBJECT//信号与槽的宏,没有该宏,不能使用信号与槽

public:
    Widget(QWidget *parent = nullptr);//带有默认函数的有参/无参构造,形参是指定父组件
    ~Widget();//析构函数,还是虚析构,说明父类的析构也是虚析构,回收指向子类对象的父类指针
    //时同时回收子类的空间
private:
    Ui::Widget *ui;//拖拽类的指针
};
#endif // WIDGET_H

登录框

mainwindow.cpp

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

    this->setWindowIcon(QIcon("G://24071//QQ"));
    this->resize(QSize(360,480));
    this->setWindowTitle("QQ");

    QLabel *logo  = new QLabel(this);
    logo->resize(360,150);
    logo->setText("QQ");
    logo->setAlignment(Qt::AlignCenter);
    logo->setStyleSheet("background-color:lightblue");

    QLabel *lab1  = new QLabel(this);
    lab1->resize(30,20);
    lab1->setText("账号");
    lab1->move(50,240);

    QLabel *lab2  = new QLabel(this);
    lab2->resize(lab1->size());
    lab2->setText("密码");
    lab2->move(lab1->x(),lab1->y()+lab1->height()+10);

    QLineEdit *ledit1 = new QLineEdit(this);
    ledit1->resize(200,20);
    ledit1->setAlignment(Qt::AlignCenter);
    ledit1->setPlaceholderText("输入QQ账号");
    ledit1->move(lab1->x()+lab1->width()+10,lab1->y());

    QLineEdit *ledit2 = new QLineEdit(this);
    ledit2->resize(ledit1->size());
    ledit2->setAlignment(Qt::AlignCenter);
    ledit2->setPlaceholderText("输入QQ密码");
    ledit2->move(ledit1->x(),ledit1->y()+ledit1->height()+10);


    QPushButton *btn1 = new QPushButton(this);
    btn1->setText("登录");
    btn1->resize(50,30);
    btn1->move(lab1->x()+(lab1->width()+ledit1->width())/2,lab1->y()+ledit1->y()/2);

    btn1->setStyleSheet("color:white;background-color:lightblue;border-radious:10px;");

    QPushButton *btn2 = new QPushButton(this);
    btn2->setText("取消");
    btn2->resize(50,30);
    btn2->move(btn1->x()+btn1->width()+20,btn1->y());
    btn2->setStyleSheet("color:white;background-color:lightblue;border-radious:10px;");

}

MainWindow::~MainWindow()
{

}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QIcon>
#include <QLabel>
#include <QLineEdit>

#include <QMainWindow>
#include <QPushButton>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
};
#endif // MAINWINDOW_H

思维导图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值