QT--基础

将默认提供的程序都注释上意义

0101.pro

QT       += core gui
#QT表示要引入的类库   core:核心库  gui:图形化界面库
#如果要使用其他库类中的相关函数,则需要加对应的库类后,才能使用
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#QT超过版本4时,会自动加上widgets

CONFIG += c++11
#支持C++11新特性

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

#实现工程项目的管理
#管理源文件
SOURCES += \
    main.cpp \
    widget.cpp

#管理头文件
HEADERS += \
    widget.h

#管理所有ui文件
FORMS += \
    widget.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

widget.h

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


#include <QWidget>

//ui_mywnd.h中的命名空间的声明
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }     //将其他文件中的命名空间进行声明
QT_END_NAMESPACE

//自定义的类声明,公共继承自QWidget:QWidget中封装了有关图形化界面的相关操作的具体实现
//由于继承的是系统提供的类,那么自定义的类中即使没有写任何东西,其类中也有很多成员
class Widget : public QWidget
{
    Q_OBJECT    //信号与槽的源对象,直接写即可。没有该宏,就不能使用信号与槽

public:
    Widget(QWidget *parent = nullptr);      //构造函数的声明
    ~Widget();                              //析构函数的声明,虚析构函数

private:
    Ui::Widget *ui;        //成员属性,指针
};
#endif // WIDGET_H

main.cpp

#include "widget.h"
//文件包含自定义的头文件,该头文件中包含了图形化界面类


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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);      //使用应用程序实例化对象调用有参构造
    Widget w;            //使用自定义的类调用无参构造在栈区构造一个界面对象
    w.show();            //调用对象的成员函数,将界面展示出来
    return a.exec();
   //a.exec():使用应用程序类对象,调用应用程序的成员函数,保证界面不被关闭,轮询等待界面上的事件发生
    //等待用户操作界面上的组件
   //等待界面上的信号与槽的响应
    //等待事件处理机制的实现

}

widget.cpp

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

//构造函数的定义
Widget::Widget(QWidget *parent)
    : QWidget(parent)          //在子类的初始化列表中显式调用父类的有参构造,来完成对子类从父类继承下来的成员的初始化
    , ui(new Ui::Widget)       //给自己的类中的指针成员实例化空间
{
    ui->setupUi(this);         //将ui界面上拖拽的组件展示到this界面上
}

//析构函数的定义
Widget::~Widget()
{
    delete ui;       //释放ui界面申请的组件空间
}

使用代码的形式实现登录框

#include "code1.h"
#include<QDebug>
#include<QIcon>
#include<QPushButton>
#include<QLineEdit>
#include<QLabel>
code1::code1(QWidget *parent)
    : QWidget(parent)
{
    this->setWindowTitle("lili's window");
    this->setWindowIcon(QIcon("D:/BaiduNetdiskDownload/qt/yingyong/f54cccba4ab9b9122909fb0e0a4f3d3.jpg"));
    this->setMaximumSize(800,600);
    this->setMinimumSize(400,300);
    this->setFixedSize(500,400);
    //this->resize(800,600);
    //this->set(QIcon("D:/BaiduNetdiskDownload/qt/yingyong/7adcf1a6baf7073e8434ae912bbb52a.png"));
    this->setWindowOpacity(0.9);
    this->move(400,300);

    QPushButton *btn1=new QPushButton(QIcon("D:/BaiduNetdiskDownload/qt/yingyong/12067205a1d2c773274d113ab9594f8.jpg"),"登录",this);
    btn1->resize(60,30);
    btn1->move(150,300);
    btn1->setStyleSheet("color:white;background:pink;border-radius:10px;");

    QPushButton *btn2=new QPushButton("注册",this);
    btn2->resize(btn1->size());
    btn2->move(btn1->x()+btn1->width()+70,btn1->y());
    btn2->setStyleSheet("color:white;background:pink;border-radius:10px;");
    btn2->setIcon(QIcon("D:/BaiduNetdiskDownload/qt/yingyong/1359e195af6400e83b7490ddae6808f.jpg"));



    QLabel *lab1=new QLabel("账号:",this);
    lab1->resize(50,30);
    lab1->move(btn1->x()-60,btn1->y()-90);
    lab1->setStyleSheet("color:pink;");



    QLabel *lab2=new QLabel("密码:",this);
    lab2->resize(50,30);
    lab2->move(btn1->x()-60,lab1->y()+40);
    lab2->setStyleSheet("color:pink;");


    QLineEdit *edit1=new QLineEdit(this);
    edit1->resize(250,30);
    edit1->move(lab1->x()+lab1->width()+10,lab1->y());
    edit1->clear();
    edit1->setStyleSheet("color:pink");
    edit1->setAlignment(Qt::AlignCenter);
    edit1->setPlaceholderText("请输入账号");

    QLineEdit *edit2=new QLineEdit("密码",this);
    edit2->resize(250,30);
    edit2->move(edit1->x(),edit1->y()+40);
    edit2->clear();
    edit2->setStyleSheet("color:pink");
    edit2->setAlignment(Qt::AlignCenter);
    edit2->setPlaceholderText("请输入密码");
    edit2->setEchoMode(QLineEdit::Password);

    QLabel *lab3=new QLabel(this);
    lab3->resize(500,200);
    lab3->setStyleSheet("background:skyblue;");
    //QMovie *movie=new QMovie("");
    //lab3->setScaledContents(true);
    //lab3->setPixmap(QPixmap("D:/BaiduNetdiskDownload/qt/yingyong/218f6c69c7208efb13d66d558999dec.jpg"));
    lab3->setPixmap(QPixmap("D:/BaiduNetdiskDownload/qt/yingyong/7adcf1a6baf7073e8434ae912bbb52a.png"));
    lab3->setScaledContents(true);
}

code1::~code1()
{
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值