代码注释
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_NAMESPACEclass 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_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();
};
#endif // MAINWINDOW_H
思维导图