【QT入门到晋级】拿别人的QT项目,加入用户登录页面

前言

       本文演示如何快速照搬【QT入门到晋级】创建第一个QT项目上传的源代码,并按照模块化加入用户登录页面为例(附上源代码)。

一、建立自己的本地QT工程

1、源码目录操作

       创建一个全英文的目录,删掉目录中的.pro.user文件,然后鼠标双击.pro工程文件,Qt creator会打开编译器选择页面,如下图1.1所示:

图1.1配置编译环境

2、选择版本

在左下角选择Release版本作为运行版本,如下图1.2所示:

图1.2版本选择

3、配置运行目录

在左侧菜单栏的【项目】中,修改【构建目录】,可以先浏览选择存在的目录,然后手动填写一个目录(编辑框中的字体会变成红色,意思是这个目录不存在,不要担心!Qt creator会自动创建这个目录),如下图1.3所示:

图1.3配置运行目录

配置完成后,点击左下角的运行按钮即可运行成功,注意如果源码的路径带有中文,qmake是编译不成功的。

二、加入自己的代码(登录页面功能)

1、创建新的代码文件(UI界面及cpp、h文件)

点QT creator左上角的【文件】选择“新建文件或项目”,选择“Qt/Qt设计师界面类”,点击选择,如下图2.1.1所示

图2.1.1创建新的UI界面

在设计器界面类中选择“widget”(空的窗口),如何点击【下一步】。如下图2.2所示:

图2.1.2选择界面布局

为了模块化的管理代码,以及区分好各个模块的作用,从项目建设开始阶段,就尽量编译把新加入的代码文件与main.cpp文件放在同一个目录下,在本项目中,我创建了src目录用于放自身开发的代码(如果是动态库文件,则另外放在lib目录下,在后续文章会怎么给出完整的开发框架设计),登录界面涉及页面间的调整,在src目录下创建contrl存放,然后点击【下一步】,如下图2.1.3.1和图2.1.3.2所示:

图2.1.3.1 创建代码文件保存目录

图2.1.3.2 设置类名及保存路径

点击文件即可,如下图2.1.4所示

图2.1.4完成创建

此时,在.pro文件中和左侧的项目树中,可以看到新增的文件,如下图2.1.5所示

图2.1.5新增的登录界面的配置选项及代码文件

2、增加代码

(1)设计login的UI文件

        增加两个文本编辑框,提供给用户输入用户名和密码,增加两个按钮,提供给用户进行登录及退出操作,按钮的的事件操作涉及【信号和槽】机制,只需右键点击按钮,点击“转到槽...”,然后选择QT自带的单击信号(click)即可,如下图2.2.1和图2.2.2所示

图2.2.1 login的UI设计页面

图2.2.2 QT自带的的事件

login.h的代码如下,注释部分为新增的代码:

#ifndef LOGIN_H
#define LOGIN_H
#include "mainwindow.h"//登录页面要跳转到主界面,这里要引用主界面的头文件
#include <QWidget>
namespace Ui {
class login;
}

class login : public QWidget
{
    Q_OBJECT

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

private slots:
    void on_login_btn_clicked();//登录按钮的槽函数

    void on_exit_btn_clicked();//退出按钮的槽函数

private:
    Ui::login *ui;
    MainWindow *mainwindow;//登录页面要跳转到主界面,在这里声明
};

#endif // LOGIN_H

这里简单的描述下【信号和槽】的过程:【转到槽】是把on_login_btn_clicked()槽函数与【登录】按钮的单击事件进行绑定,当用户点击【登录】按钮时,自动发送鼠标单击的信号,QT捕获并自动调用on_login_btn_clicked()槽函数执行,以下是login.cpp的源代码,注释部分为新增的代码:

#include "src/contrl/login.h"
#include "ui_login.h"
#include <QString>
login::login(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::login)
{
    ui->setupUi(this);
}

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

//登录按钮
void login::on_login_btn_clicked()
{   //获取内容用text()方法
    QString name = ui->lineEdit_name->text();//获取登录窗口上的lineEdit_name文本编辑框的内容
    QString password = ui->lineEdit_pwd->text();//获取登录窗口上的lineEdit_pwd文本编辑框的内容
    if(name=="admin" && password=="123"){
        mainwindow = new MainWindow();
        mainwindow->show();// 显示主窗口
        this->hide();// 隐藏窗口
    }else{
        this->ui->label_msg->setText("用户名或者密码错误");//修改内容用setText方法
    }
}
//退出按钮
void login::on_exit_btn_clicked()
{
    this->close();//关闭窗口
}

结尾

         源码见文章开头绑定的资源,调整了login.ui到与mainwindow.ui同一个目录,方便管理。如果喜欢本博主分享QT项目知识,请收藏我的QT栏的导读文章,新上传的文章都会更新到导读中。

【QT入门到晋级】全栏导读

  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值