前言
第一次学习QT,并利用纯代码的形式写一个登录窗口,后续将为登录界面逐步实现功能(比如按钮的跳转/账号连接数据库/注册功能等等)。
下面是我实现一个简易的登录界面代码
1 Headers
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QPushButton> //按钮类
#include<QMovie> //动图类
#include<QLineEdit> //行编辑类
#include<QLabel> //标签类
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
2 mainwindow.cpp
其中图片自行添加路径即可
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//窗口设置
this->resize(600,600); //定义窗口为600*600
this->setFixedSize(600,600); //固定窗口为600*600
// this->setWindowFlag(Qt::FramelessWindowHint); //窗口标题去除
this->setStyleSheet("background-color:rgb(179,183,170)");//设置窗口背景颜色
//行编辑器的设置,账号框
QLineEdit *lineEdit_1 = new QLineEdit(this);//实例化一个行编辑器对象,用于输入登录账号
lineEdit_1->resize(300,60); //行编辑器的大小
lineEdit_1->move(180,300);//移动行编辑器的位置
lineEdit_1->setStyleSheet("background-color:white");//设置行编辑器的背景颜色
lineEdit_1->setPlaceholderText("账号");//使用占位,提示行编辑器输入的内容
//行编辑器的设置,密码框
QLineEdit *lineEdit_2 = new QLineEdit(this);//实例化对象,用于输入密码
lineEdit_2->resize(300,60); //行编辑器的大小
lineEdit_2->move(180,360);//移动到合适的位置
lineEdit_2->setPlaceholderText("密码");//使用占位,提示输入框的内容
lineEdit_2->setStyleSheet("background-color:white");//设置背景颜色
lineEdit_2->setEchoMode(QLineEdit::Password);//设置为密码格式
//标签类的设置
QLabel *label = new QLabel("使用QT写一个登录界面",this);//实例化标签对象,用于填充文字
label->move(250,250);//移动到合适的位置
label->resize(300,40);//设置标签大小
//按钮类的设置,用于登录
QPushButton *button =new QPushButton("登录",this);//实例化按钮对象,添加登录文字
button->resize(200,50);
button->move(200,450);
button->setStyleSheet("background-color:rgb(138,183,113);border-radius:10px");//设置按钮颜色和按钮圆角
//动图类的设置,用于接收动图
QMovie *movie = new QMovie(":/picture/images/8287.gif_wh860.gif");
QLabel *label_1 = new QLabel(this);//实例化一个label标签,用于存放动图
label_1->resize(600,240);//设置框的大小
label_1->move(0,0);//移动相应的位置
label_1->setMovie(movie);//动图放到label框里
movie->start();//动图开动
label_1->setScaledContents(true);//照片自动适应label的大小
}
MainWindow::~MainWindow()
{
delete ui;
}