续:Qt:实现打开文件并展示在文本编辑器中,http://t.csdn.cn/rM4bo
Qt:为应用程序设置一个登入对话框
1 添加一个自定义的类(头文件和源文件)
1)选择项目,右击,Add New …
2)基类中没有QDialog类,这里选择custom自定义类
2 在logindialog.h文件中添加类的头文件代码:
3 在logindialog.cpp中添加类的实现代码:
4 实现登入对话框:
1)在mian.cpp文件中添加登入对话框实现代码
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,运行后效果如下:
5)更改登入槽代码,实现对用户和密码的判断:
在logindialog.cpp中输入下方代码:
Ctrl+R,运行效果如下:
6)验证输入的用户名和密码合法性:
Ctrl+R,运行效果如下:
5 实现登入的用户名在主窗口显示
1)在logindilog.h中申明一个信号,将登入的用户名传递给这个信号:
signals:
void login(const QString &userName);
并在logindialog.cpp中关联发射信号
2)在mainwindow.h中设置登入用户名函数为公共槽:
3)Atl+Enter,在mainwindow.cpp中添加setLoginUser的实现方式:
添加状态栏头文件
#include <QStatusBar>
在setLoginUser函数中添加如下代码:
4)在main.cpp中,关联:登入对话框和主窗口设置用户名槽函数
5)Ctrl+R,运行:
若logindialog.h中添加Q_OBJECT后,出现报错undefined reference to ‘logindialog::staticMeta0bject’,此时在构建中点击执行qmake:
再次运行效果如下: