Qt中登录对话框的开发
来源:互联网 发布:matlab 内置函数源码 编辑:程序博客网 时间:2024/06/03 16:28
登录对话框是应用程序中的常用部件,如何对其开发呢
1、登录对话框的需求分析
开发成可复用的软件部件
获取应户名和密码
附加需求:随机验证码
2、登录对话框的设计与架构
3、数据的传递
通过附加成员变量和成员函数完成不同对话框间的数据传递
4、程序代码
//Widget.h#ifndef _WIDGET_H_#define _WIDGET_H_#include <QtGui/QWidget>#include "QPushButton"class Widget : public QWidget{ Q_OBJECTprivate: QPushButton TestBtn;private slots: void TestBtn_Clicked();public: Widget(QWidget *parent = 0); ~Widget();};#endif // WIDGET_H
//QLoginDialog.h#ifndef QLOGINDIALOG_H#define QLOGINDIALOG_H#include <QtGui/QDialog>#include <QLabel>#include <QLineEdit>#include <QPushButton>class QLoginDialog : public QDialog{ Q_OBJECTprivate: QLabel UserLabel; //QLabel用于图像或文字的显示,标签 QLabel PwdLabel; QLineEdit UserEdit; QLineEdit PwdEdit; QPushButton LoginBtn; QPushButton CancelBtn; QString m_user; QString m_pwd;private slots: void LoginBtn_Clicked(); void CancelBtn_Clicked();public: QLoginDialog(QWidget *parent = 0); QString getUser(); QString getPwd(); ~QLoginDialog();};#endif // QLOGINDIALOG_H
//Widget.cpp#include "Widget.h"#include "QLoginDialog.h"#include "QDebug"Widget::Widget(QWidget *parent) : QWidget(parent),TestBtn(this){ TestBtn.setText("Test Login Dialog"); setFixedSize(200, 50); connect(&TestBtn, SIGNAL(clicked()),this,SLOT(TestBtn_Clicked()));}void Widget::TestBtn_Clicked(){ QLoginDialog dlg; if( dlg.exec() == QDialog::Accepted ) { qDebug() << "User:" + dlg.getUser(); qDebug() << "Pwd:" + dlg.getPwd(); }}Widget::~Widget(){}
//QLoginDialog.cpp#include "QLoginDialog.h"#include <QDebug>QLoginDialog::QLoginDialog(QWidget* parent) : QDialog(parent, Qt::WindowCloseButtonHint), UserLabel(this), PwdLabel(this), UserEdit(this),PwdEdit(this),LoginBtn(this),CancelBtn(this){ UserLabel.setText("User ID:"); UserLabel.move(20, 30); UserLabel.resize(60, 25); UserEdit.move(85, 30); UserEdit.resize(180, 25); PwdLabel.setText("Password:"); PwdLabel.move(20, 65); PwdLabel.resize(60,25); PwdEdit.move(85, 65); PwdEdit.resize(180, 25); PwdEdit.setEchoMode(QLineEdit::Password); //用星号代替密码显示 CancelBtn.setText("Cancel"); CancelBtn.move(85, 110); CancelBtn.resize(85,30); LoginBtn.setText("Login"); LoginBtn.move(180,110); LoginBtn.resize(85,30); setWindowTitle("Login"); setFixedSize(285, 170); //固定窗口大小 connect(&LoginBtn, SIGNAL(clicked()), this, SLOT(LoginBtn_Clicked())); connect(&CancelBtn, SIGNAL(clicked()), this, SLOT(CancelBtn_Clicked()));}void QLoginDialog::LoginBtn_Clicked(){ qDebug() << "LoginBtn_Clicked() Begin"; m_user = UserEdit.text().trimmed(); m_pwd = PwdEdit.text(); done(Accepted); //当前已登录 qDebug() << "LoginBtn_Clicked() End";}void QLoginDialog::CancelBtn_Clicked(){ qDebug() << "CancelBtn_Clicked() Begin"; done(Rejected); //当前已取消 qDebug() << "CancelBtn_Clicked() End";}QString QLoginDialog::getUser(){ return m_user;}QString QLoginDialog::getPwd(){ return m_pwd;}QLoginDialog::~QLoginDialog(){}
//main.cpp#include <QtGui/QApplication>#include "Widget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); return a.exec();}
本程序进一步优化的方向:
检查用户名是否为空,为空时提示错误
加入随机验证码,当验证码输入错误时进行提示
验证码随机刷新
阅读全文
0 0
- Qt中登录对话框的开发
- Qt Creator登录对话框
- Qt登录对话框
- Qt 登录对话框显示
- Qt登录对话框
- QT登录对话框
- QT开发(六十六)——登录对话框的验证机制
- 三、Qt Creator登录对话框
- 三、Qt Creator登录对话框
- 三、Qt Creator登录对话框
- 三、Qt Creator登录对话框
- 三Qt Creator登录对话框
- 【转】Qt Creator登录对话框
- QT学习笔记----登录对话框
- Qt里面登录对话框Dialog的show()和exec()
- Qt中 文件对话框QFileDialog 的使用
- Qt中 文件对话框QFileDialog 的使用
- Qt中设置对话框的属性
- 10-03 位运算
- 【福分系统】 LINQ to Entities 不识别方法“System.DateTime ToDateTime(System.String)”,因此该方法无法转换为存储表达式。
- Spring Integration概述
- codevs 1009 产生数 Floyd 解题报告
- 线程的概念?使用线程的好处?及线程与进程的区别?
- Qt中登录对话框的开发
- metasploit常用命令
- Android开发之BroadcastReceiver(一)
- 剑指offer 从上到下打印二叉树
- CodeVS1009[NOIP2002(普及组)] 产生数【Floyd】
- 基础的Linux命令的用法
- RxJava详解
- Android上的C/C++语言开发工具--simpleC开源
- 《MySQL入门很简单》学习笔记(19)之第19章Java访问MySQL数据库(关键词:数据库/MySQL/Java)