widget.h
#ifndef WIDGET_H
#define WIDGET_H //防止文件重复包含
#include <QWidget> //QWidget类所在的头文件,父类头文件
#include<QIcon>
#include<QPushButton> //按钮类头文件
#include<QDebug> //输出类头文件
#include<QLineEdit> //行编辑器头文件
#include<QLabel> //标签头文件
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; //后期可以通过ui指针找到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(); //调用show函数,展示图形化界面,该函数是父类提供的,直接用即可
return a.exec(); //为了阻塞界面不被关闭,等待相关事情的发生
//等待信号与槽,事件处理,等待用户操作
}
widget.cpp
#include "widget.h" //自己的头文件
#include "ui_widget.h" //ui界面对应的头文件
Widget::Widget(QWidget *parent) //构造函数的定义
: QWidget(parent) //显性调用父类的构造函数完成子类从父类继承下来的成员的初始化工作
, ui(new Ui::Widget) //对自己类的中的指针成员开辟空间
{
ui->setupUi(this); //给拖拽出来的组件实例化空间
this->setWindowTitle("鹏哥快聊"); //设置窗口标题
this->setWindowIcon(QIcon("D:\\qt5.14\\c\\icon\\wodepeizhenshi.png")); //设置窗口的图标icon
this->resize(540,410); //设置窗口的大小
this->setFixedSize(540,410); //设置固定尺寸
QLabel *lab1 = new QLabel(this); //实例化一个标签1
lab1->resize(540,180); //设置标签1的大小
lab1->setPixmap(QPixmap("D:\\qt5.14\\c\\icon\\logo.png")); //设置标签1的图标icon
lab1->setScaledContents(true); //设置内容自适应
QLabel *lab2 = new QLabel(this); //实例化一个标签2
lab2->resize(50,35); //设置标签2的大小
lab2->move(100,210); //移动标签2的位置
lab2->setPixmap(QPixmap("D:\\qt5.14\\c\\icon\\userName.jpg")); //设置标签2的图标icon
lab2->setScaledContents(true); //设置内容自适应
QLabel *lab3 = new QLabel(this); //实例化一个标签3
lab3->resize(50,35); //设置标签3的大小
lab3->move(100,290); //移动标签3的位置
lab3->setPixmap(QPixmap("D:\\qt5.14\\c\\icon\\passwd.jpg")); //设置标签2的图标icon
lab3->setScaledContents(true); //设置内容自适应
QLineEdit *edit = new QLineEdit("QQ号码/手机/邮箱",this); //实例化一个行编辑器1
edit->move(200,210); //移动行编辑器1的位置
edit->resize(200,35); //设置行编辑器1的大小
QLineEdit *edit2 = new QLineEdit("密码",this);
edit2->move(200,290); //移动行编辑器2的位置
edit2->resize(200,35); //设置行编辑器2的大小
edit2->setEchoMode(QLineEdit::Password); //设置回显模式
QPushButton *btn1 = new QPushButton("登录",this); //实例化按钮1
btn1->resize(90,37); //设置按钮1的大小
btn1->setIcon(QIcon("D:\\qt5.14\\c\\icon\\login.png")); //设置图标
btn1->move(310,360); //移动按钮1的位置
QPushButton *btn2 = new QPushButton("取消",this);
btn2->resize(90,37); //设置按钮1的大小
btn2->setIcon(QIcon("D:\\qt5.14\\c\\icon\\cancel.png")); //设置图标
btn2->move(410,360); //移动按钮2的位置
}
Widget::~Widget() //析构函数的定义
{
delete ui; //释放ui指针的内存
}
结果
XMind