QT(8.30)常用类与组件,实现登录界面

1.作业:

完成一个登录界面(图片未附带):

头文件:

#ifndef WIDGET_H
#define WIDGET_H

#include 

#include //行编辑器

#include//图标

#include//标签

#include//按钮

#include//图标
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
};
#endif // WIDGET_H

主函数:

#include "widget.h"

#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

实现函数:

#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    this->setFixedSize(500,600);//设置窗口固定大小尺寸
    this->setWindowTitle("来也匆匆");//设置窗口标题
    this->setWindowIcon(QIcon("C:\\Users\\86183\\Desktop\\photo\\窗口标签.jpg"));//设置窗口图标
    this->setStyleSheet("background-color:purple");//设置窗口颜色
    QLabel *lab1 = new QLabel(this);//创建一个标签,设置父组件为当前窗口组件
    lab1 -> resize(500,200);//设置标签大小
    lab1 -> setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\photo\\背景.jpg"));//标签中添加图片内容
    lab1 -> setScaledContents(true);//设置标签内容自适应
    QLabel *lab2 = new QLabel(this);//创建标签,设置父组件为当前窗口组件
    lab2 -> resize(40,40);//设置标签大小
    lab2 -> move(120,300);//设置标签位置
    lab2 -> setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\photo\\userName.jpg"));
    lab2 -> setScaledContents(true);//设置内容自适应
    QLabel *lab3 = new QLabel(this);//创建标签,设置父组件为当前窗口组件
    lab3 -> resize(40,40);//设置标签大小
    lab3 -> move(lab2->x(),lab2->y()+100);//设置标签位置
    lab3 -> setPixmap(QPixmap("C:\\Users\\86183\\Desktop\\photo\\passwd.jpg"));
    lab3 -> setScaledContents(true);//设置标签内容自适应
    QLineEdit *dit1 = new QLineEdit(this);//创建一个行编辑器,指定父组件
    dit1->setPlaceholderText("QQ/手机/邮箱");//设置占位文本
    dit1->move(lab2->x()+70,lab2->y());//设置行编辑器位置
    dit1->resize(250,40);//设置行编辑器大小
    dit1->setStyleSheet("background-color:white");//设置背景颜色
    QLineEdit *dit2 = new QLineEdit(this);//创建一个行编辑器,父组件为当前窗口组件
    dit2->setPlaceholderText("密码");//设置占位文本
    dit2->move(lab3->x()+70,lab3->y());
    dit2->resize(250,40);//设置行编辑器大小
    dit2->setStyleSheet("background-color:white");//设置背景颜色
    dit2->setEchoMode(QLineEdit::Password);//设置输入为密文模式
    QPushButton *btn1 = new QPushButton("登录",this);//创建一个按钮,设置按钮文本为登录
    QPushButton *btn2 = new QPushButton("取消",this);//创建一个按钮,设置按钮文本为取消
    btn1->resize(80,40);//设置按钮大小
    btn2->resize(80,40);//设置按钮大小
    btn1->move(300,500);//设置按钮位置
    btn2->move(btn1->x()+100,btn1->y());//设置按钮位置
    btn1->setIcon(QIcon("C:\\Users\\86183\\Desktop\\photo\\login.png"));//设置按钮图标
    btn2->setIcon(QIcon("C:\\Users\\86183\\Desktop\\photo\\cancel.png"));//设置按钮图标
}

Widget::~Widget()
{
}

运行结果:

QT(8.30)常用类与组件,实现登录界面_第1张图片

文件注释(创建后未修改代码时的模板理解):

头文件:

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

#include //头文件

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }//定义了一个叫Ui的命名空间,里面声明了一个MainWindow类
QT_END_NAMESPACE

class MainWindow : public QMainWindow//定义属于自己的类
{
    Q_OBJECT//信号与槽的元对象

public:
    MainWindow(QWidget *parent = nullptr);//构造函数声明,声明有一个默认的形参
    ~MainWindow();//析构函数

private:
    Ui::MainWindow *ui;//定义一个私有的指针,指针类型是Ui中声明的MainWindow类型,可以用过Ui指针找到Ui界面上拖拽的组件
};
#endif // MAINWINDOW_H

主函数:

#include "mainwindow.h"//图形化界面的头文件

#include //应用程序的头文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//实例化一个应用程序的对象,调用有参构造
    MainWindow w;//实例化一个类对象
    w.show();//调用类中的函数,展示窗口组件和其中的所有子组件
    return a.exec();//exec为了阻塞界面不被关闭,等待相关事件发生
                    //等待信号与槽,等待事件处理,等待用户操作
}

实现函数:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)//有参构造函数的定义
    : QMainWindow(parent)//初始化列表,
    , ui(new Ui::MainWindow)//给类中的指针成员Ui开辟堆区空间
{
    ui->setupUi(this);//构造MainWindo时给ui指针指向的组件实例化空间
}

MainWindow::~MainWindow()//析构函数的定义
{
    delete ui;//释放Ui指针的堆区空间
}

你可能感兴趣的:(qt,java,服务器,开发语言,算法,c++)