【Qt:为应用程序设置一个登入对话框】

续:Qt:实现打开文件并展示在文本编辑器中,http://t.csdn.cn/rM4bo

Qt:为应用程序设置一个登入对话框

  • 1 添加一个自定义的类(头文件和源文件)
  • 2 在logindialog.h文件中添加类的头文件代码:
  • 3 在logindialog.cpp中添加类的实现代码:
  • 4 实现登入对话框:
  • 5 实现登入的用户名在主窗口显示

1 添加一个自定义的类(头文件和源文件)

1)选择项目,右击,Add New …
【Qt:为应用程序设置一个登入对话框】_第1张图片
2)基类中没有QDialog类,这里选择custom自定义类
【Qt:为应用程序设置一个登入对话框】_第2张图片
【Qt:为应用程序设置一个登入对话框】_第3张图片

2 在logindialog.h文件中添加类的头文件代码:

【Qt:为应用程序设置一个登入对话框】_第4张图片

3 在logindialog.cpp中添加类的实现代码:

【Qt:为应用程序设置一个登入对话框】_第5张图片

4 实现登入对话框:

1)在mian.cpp文件中添加登入对话框实现代码【Qt:为应用程序设置一个登入对话框】_第6张图片
2)在logindialog.h中定义登入对话框的头文件定义:

protected slots:
    void loginBtnClicked();

3)Alt+Enter,在logdialog.cpp中定义==loginBtnClicked()==的实现方式:

void logindialog::loginBtnClicked() //登入功能
{
	accept();
}

同时,在dlogdialog.cpp猪程序中关联登入和关闭功能:

    connect(loginBtn, &QPushButton::clicked, this, &logindialog::loginBtnClicked);  //关联登入功能槽

    connect(exitBtn, &QPushButton::clicked, this, &logindialog::close); //关闭按钮

4)Ctrl+R,运行后效果如下:
【Qt:为应用程序设置一个登入对话框】_第7张图片
5)更改登入槽代码,实现对用户和密码的判断:
在logindialog.cpp中输入下方代码:
【Qt:为应用程序设置一个登入对话框】_第8张图片Ctrl+R,运行效果如下:
【Qt:为应用程序设置一个登入对话框】_第9张图片
6)验证输入的用户名和密码合法性:
【Qt:为应用程序设置一个登入对话框】_第10张图片
Ctrl+R,运行效果如下:
【Qt:为应用程序设置一个登入对话框】_第11张图片

5 实现登入的用户名在主窗口显示

1)在logindilog.h中申明一个信号,将登入的用户名传递给这个信号:

signals:
    void login(const QString &userName);

并在logindialog.cpp中关联发射信号
【Qt:为应用程序设置一个登入对话框】_第12张图片

2)在mainwindow.h中设置登入用户名函数为公共槽:
【Qt:为应用程序设置一个登入对话框】_第13张图片3)Atl+Enter,在mainwindow.cpp中添加setLoginUser的实现方式:
添加状态栏头文件

#include 

在setLoginUser函数中添加如下代码:
【Qt:为应用程序设置一个登入对话框】_第14张图片
4)在main.cpp中,关联:登入对话框和主窗口设置用户名槽函数
【Qt:为应用程序设置一个登入对话框】_第15张图片
5)Ctrl+R,运行:
若logindialog.h中添加Q_OBJECT后,出现报错undefined reference to ‘logindialog::staticMeta0bject’,此时在构建中点击执行qmake:
【Qt:为应用程序设置一个登入对话框】_第16张图片
再次运行效果如下:
【Qt:为应用程序设置一个登入对话框】_第17张图片

你可能感兴趣的:(QT编程基础,qt,开发语言)