QTday1

配置文件

QT       += core gui
#QT引用的库  core:核心库例如IO操作在该库中   gui:图形化界面库
greaterThan(QT_MAJOR_VERSION, 4): QT += 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
#管理头文件
FORMS += \
    widget.ui
#管理ui文件
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

头文件

#ifndef WIDGET_H
#define WIDGET_H
//防止头文件重复声明
#include <QWidget>
//ui_widget.h中命名空间的声明
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }//声明其他文件中的命名空间
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT//信号与槽的元对象,没有此宏无法使用

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

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

源文件

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

Widget::~Widget()
{
    delete ui;//释放ui界面申请的组件空间
}

main文件

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

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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//使用应用程序类实例化对象,调用有参构造
    Widget w; //使用自定义的类调用无参构造在栈区构造一个界面对象
    w.show();//调用对象的成员函数,将界面展示出来
    return a.exec();//a.exec():使用应用程序类对象,调用应用程序的成员函数,保证界面不被关闭,轮询等待界面上的时间发生
}

 登录界面

#include "widget.h"
#include "ui_widget.h"
#include"QDebug"
//构造函数定义
Widget::Widget(QWidget *parent)
    : QWidget(parent) //在子类的初始化列表中显式调用父类的有参构造,来完成对子类从父类中继承下来成员的初始化
    , ui(new Ui::Widget)//给自己的类中的指针成员实例化空间
{
//    ui->setupUi(this);  //将ui界面上拖拽的组件展示到this界面上
//    qDebug()<<"hello";
       QPushButton * btn1 = new QPushButton;
       btn1->setParent(this);               //将当前界面设置成组件的父组件
       btn1->setText("登录");              //设置按钮文本内容
       btn1->resize(80,40);                //重新设置按钮尺寸
       btn1->move(300, 400);               //移动当前组件位置
       btn1->setIcon(QIcon("C:\\Users\\鹏程万里\\Desktop\\icon\\huiyuan.png"));     //设置按钮图标
       btn1->setStyleSheet("color:white; background-color:skyblue; border-radius:10px;");    //设置样式表
       QPushButton *btn2 = new QPushButton(this);
       btn2->setText("取消");
       btn2->resize(btn1->size());                    //使用btn1的尺寸设置当前按钮的尺寸
       btn2->move(btn1->x()+200, btn1->y());        //使用btn1的位置,确定btn2的位置
       btn2->setIcon(QIcon("C:\\Users\\鹏程万里\\Desktop\\icon\\huiyuan.png"));     //设置按钮图标
       btn2->setStyleSheet("color:white; background-color:skyblue; border-radius:10px;");    //设置样式表
       this->resize(800,600);


       QLabel *lab1 = new QLabel;
       lab1->setParent(this);          //设置父组件
       lab1->setText("账号:");          //设置文本内容
       lab1->move(btn1->x()-250, btn1->y()-300);    //设置坐标
       QLabel *lab2 = new QLabel("密码:", this);
       lab2->move(lab1->x(), lab1->y()+100);
       QLabel *lab3 = new QLabel(this);
       lab3->resize(800, 90);
       lab3->setStyleSheet("background-color:black;");



       QLineEdit  *edit1 = new QLineEdit("账号", this);
       edit1->resize(600, 30);          //重新设置大小
       edit1->move(lab1->x()+lab2->width()+2, lab1->y());    //移动位置
       edit1->clear();                       //清空内容
       edit1->setPlaceholderText("账号");            //设置占位文本      //设置回显模式
       QLineEdit  *edit2 = new QLineEdit("密码", this);
       edit2->resize(600, 30);          //重新设置大小
       edit2->move(lab2->x()+lab2->width()+2, lab2->y());    //移动位置
       edit2->clear();                       //清空内容
       edit2->setPlaceholderText("密码");            //设置占位文本
       edit2->setEchoMode(QLineEdit::Password);        //设置回显模式

}

Widget::~Widget()
{
    delete ui;//释放ui界面申请的组件空间
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值