7.26 Qt

该文描述了如何使用QT进行界面设计,创建了一个登录界面,包括用户输入框、密码框和按钮,并通过信号槽机制连接到了注册界面,实现了界面间的通信。用户在登录界面点击注册按钮后,可以跳转至注册界面填写详细信息。
摘要由CSDN通过智能技术生成

用QT制作一个登陆界面

运行代码

login.h
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QDebug>                   //信息调试类,用于输出
#include <QIcon>                    //图标类头文件
#include <QPushButton>              //按钮类头文件
#include <QLineEdit>                //行编辑器头文件
#include <QLabel>                   //标签头文件

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    //使用无参构造标签
    QLabel *label1=new QLabel;          //背景标签
    QLabel *label2=new QLabel;          //用户文本框标签
    QLabel *label3=new QLabel;          //密码文本框标签
    QLabel *label4=new QLabel;          //超链接标签
    QLineEdit *edit1=new QLineEdit;     //用户行编辑器
    QLineEdit *edit2=new QLineEdit;     //密码行编辑器
    QPushButton *btn1=new QPushButton;  //登陆按钮
    QPushButton *btn2=new QPushButton;  //退出按钮

signals:
    void  registerSignal();   //自定义返回信号,用来发送给父窗口

public slots:
    void registerSlot();

};
#endif // WIDGET_H
register.h
#ifndef REGISTER_H
#define REGISTER_H

#include <QWidget>
#include <QDebug>                   //信息调试类,用于输出
#include <QIcon>                    //图标类头文件
#include <QPushButton>              //按钮类头文件
#include <QLineEdit>                //行编辑器头文件
#include <QLabel>                   //标签头文件

namespace Ui {
class Register;
}

class Register : public QWidget
{
    Q_OBJECT

public:
    explicit Register(QWidget *parent = nullptr);
    ~Register();

    QLabel *label1=new QLabel;          //用户名标签
    QLabel *label2=new QLabel;          //密码标签
    QLabel *label3=new QLabel;          //确认密码标签
    QLabel *label4=new QLabel;          //邮箱标签
    QLineEdit *edit1=new QLineEdit;     //用户名行编辑器
    QLineEdit *edit2=new QLineEdit;     //密码行编辑器
    QLineEdit *edit3=new QLineEdit;     //确认密码行编辑器
    QLineEdit *edit4=new QLineEdit;     //邮箱行编辑器
    QPushButton *btn1=new QPushButton;  //提交按钮
    QPushButton *btn2=new QPushButton;  //刷新按钮


private:
    Ui::Register *ui;


public slots:
    void sendSignal();    //用来发送返回信号
};

#endif // REGISTER_H
main.cpp
#include "login.h"
#include "register.h"
#include <QApplication>

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

    Register r;  //实例化第二个界面
    //连接两个界面的信号与槽
    QObject::connect(&w,&Widget::registerSignal,&r,&Register::sendSignal);

    return a.exec();
}
login.cpp
#include "login.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    //1.固定当前界面的尺寸
    this->setFixedSize(800,600);           //调用函数设置宽和高
    //2.窗口标题的设置
    this->setWindowTitle("Blog");
    //3.设置窗口图标
    this->setWindowIcon(QIcon("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\blog.jfif"));
    //4.设置背景色,可以使用qss代码完成样式表
    this->setStyleSheet("background-color:lightyellow;");
    //5.设置窗口透明度
    this->setWindowOpacity(1.0);

    //设置标签
    //利用标签设置背景
    label1->setParent(this);
    label1->resize(800,300);
    label1->setPixmap(QPixmap("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\background.jpg"));  //设置图片标签
    label1->setScaledContents(true);   //设置内容自适应

    //利用标签设置 用户和密码
    //用户文本框标签
    label2->setParent(this);
    label2->resize(40,40);
    label2->move(200,350);
    label2->setPixmap(QPixmap("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\login.png"));  //设置图片标签
    label2->setScaledContents(true);   //设置内容自适应

    //密码文本框标签
    label3->setParent(this);
    label3->resize(40,40);
    label3->move(200,450);
    label3->setPixmap(QPixmap("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\pwd.png"));  //设置图片标签
    label3->setScaledContents(true);   //设置内容自适应

    //超链接标签
    label4->setParent(this);
    label4->resize(150,40);
    label4->move(150,545);
    label4->setText("<h3><style> a{text-decoration:none;color:lightgrey;}</style><a href=\"https:www.baidu.com\">百度一下</a></h3>");  //加\"是转义  <h1></h1>可有可无
    label4->setScaledContents(true);   //设置内容自适应
    label4->setOpenExternalLinks(true);  //设置点击连接自动打开 (跳转到浏览器)

    //用户行编辑器
    edit1->setParent(this);          //设置父组件
    edit1->resize(250,40);           //重新设置尺寸
    edit1->move(270,350);            //移动位置
    edit1->setPlaceholderText("username");

    //密码行编辑器
    edit2->setParent(this);
    edit2->resize(edit1->size());
    edit2->move(270,450);
    edit2->setEchoMode(QLineEdit::Password);     //设置密文模式
    edit2->setPlaceholderText("password");      //设置占位符

    //登陆按钮
    btn1->setParent(this);   //把当前界面当成父组件
    btn1->setText("Login");  //设置按钮上的文本内容
    btn1->resize(100,50);
    btn1->move(240,530);     //移动按钮的位置
    btn1->setStyleSheet("background-color:khaki;");  //设置背景色
    btn1->setIcon(QIcon("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\login_1.png"));   //设置按钮图标
    connect(btn1, SIGNAL(clicked()), this, SLOT(registerSlot()));


    //退出按钮
    btn2->setParent(this);   //把当前界面当成父组件
    btn2->setText("Exit");  //设置按钮上的文本内容
    btn2->resize(btn1->size());
    btn2->move(480,530);     //移动按钮的位置
    btn2->setStyleSheet("background-color:khaki;");  //设置背景色
    btn2->setIcon(QIcon("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\exit.png"));   //设置按钮图标
}

Widget::~Widget()
{
}

void Widget::registerSlot()
{
    emit registerSignal();
}
register.cpp
#include "register.h"
#include "ui_register.h"

Register::Register(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Register)
{
    ui->setupUi(this);

    //1.固定当前界面的尺寸
    this->setFixedSize(800,600);           //调用函数设置宽和高
    //2.窗口标题的设置
    this->setWindowTitle("Blog");
    //3.设置窗口图标
    this->setWindowIcon(QIcon("C:\\Users\\Administrator\\Desktop\\Insert\\QT\\icon\\blog.jfif"));
    //4.设置背景色,可以使用qss代码完成样式表
    this->setStyleSheet("background-color:lightyellow;");
    //5.设置窗口透明度
    this->setWindowOpacity(1.0);

    //用户名文本框标签
    label1->setParent(this);
    label1->resize(100,50);
    label1->move(200,100);
    label1->setText("Username");
    label1->setScaledContents(true);   //设置内容自适应

    //用户名文本框标签
    label2->setParent(this);
    label2->resize(100,50);
    label2->move(200,200);
    label2->setText("Password");
    label2->setScaledContents(true);   //设置内容自适应

    //重新确认文本框标签
    label3->setParent(this);
    label3->resize(100,50);
    label3->move(200,300);
    label3->setText("Reconfirm");
    label3->setScaledContents(true);   //设置内容自适应

    //邮箱文本框标签
    label4->setParent(this);
    label4->resize(100,50);
    label4->move(200,400);
    label4->setText("E-mail");
    label4->setScaledContents(true);   //设置内容自适应

    //用户名行编辑器
    edit1->setParent(this);          //设置父组件
    edit1->resize(250,40);           //重新设置尺寸
    edit1->move(300,100);            //移动位置
    edit1->setPlaceholderText("Username");

    //密码行编辑器
    edit2->setParent(this);          //设置父组件
    edit2->resize(250,40);           //重新设置尺寸
    edit2->move(300,200);            //移动位置
    edit2->setEchoMode(QLineEdit::Password);     //设置密文模式
    edit2->setPlaceholderText("Password");

    //用户名行编辑器
    edit3->setParent(this);          //设置父组件
    edit3->resize(250,40);           //重新设置尺寸
    edit3->move(300,300);            //移动位置
    edit3->setEchoMode(QLineEdit::Password);     //设置密文模式
    edit3->setPlaceholderText("Reenter");

    //用户名行编辑器
    edit4->setParent(this);          //设置父组件
    edit4->resize(250,40);           //重新设置尺寸
    edit4->move(300,400);            //移动位置
    edit4->setPlaceholderText("E-mail");

    //提交按钮
    btn1->setParent(this);   //把当前界面当成父组件
    btn1->setText("Submit");  //设置按钮上的文本内容
    btn1->resize(100,50);
    btn1->move(240,500);     //移动按钮的位置
    btn1->setStyleSheet("background-color:khaki;");  //设置背景色


    //刷新按钮
    btn2->setParent(this);   //把当前界面当成父组件
    btn2->setText("Restart");  //设置按钮上的文本内容
    btn2->resize(100,50);
    btn2->move(480,500);     //移动按钮的位置
    btn2->setStyleSheet("background-color:lightgrey;");  //设置背景色


}

Register::~Register()
{
    delete ui;
}

void Register::sendSignal()
{
    this->show();
}

界面展示

主界面

跳转界面

思维导图

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值