PDA

View Full Version : مبتدی: پنجره ورود به نرم افزار



smemamian
پنج شنبه 29 فروردین 1392, 21:09 عصر
سلام

یه صفحه ورود به نرم افزار با گرفتن فقط پسورد و یوزرنیم درست کردم...

ولی کار نمی کنه ! از لحاظ امنیتی هم مشکلش رو بگید چون من صریحا پسورد و یوزنیم رو داخل تابع نوشتم ! :


setPass.h



#ifndef SETPASS_H
#define SETPASS_H

#include <QDialog>

namespace Ui {
class setPass;
}

class setPass : public QDialog
{
Q_OBJECT

public:
explicit setPass(QWidget *parent = 0);
~setPass();
void setPassword(QString &pass);
void setUsername(QString &user);
bool setBool();

private slots:
void on_pushButton_clicked();

private:
Ui::setPass *ui;
QString pass , user ;
bool res1 , res2 ;

};

#endif // SETPASS_H


setPass.cpp


#include "setpass.h"
#include "ui_setpass.h"

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

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

void setPass::setPassword(QString &pass)
{

QString c_pass = "123456";
int a = c_pass.compare(pass);
if(a == 0)
res1 = true ;
}

void setPass::setUsername(QString &user)
{

QString c_user = "m";
int a = c_user.compare(user);
if( a == 0 )
res2 = true ;
}

void setPass::on_pushButton_clicked()
{
setUsername(user = ui->userName->text());
setPassword( pass = ui->passWord->text());
}

bool setPass::setBool()
{
if(res2 == true && res1 == true)
return true ;
else return false ;
}


main.cpp


#include "mainwindow.h"
#include <QApplication>
#include "dialog.h"
#include "setpass.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

setPass pas ;
pas.show();
if(pas.setBool())
{
MainWindow w;
pas.close();
w.show();
}
return a.exec();
}
تصویر :

http://upcity.ir/images2/68799751914376939931.jpg (http://upcity.ir/)

نخندید خوب :لبخند:

omidshaman
پنج شنبه 29 فروردین 1392, 21:18 عصر
مشکلش تو همین اخریه main.cpp
این if(pas.setBool()) فقط یک بار اجرا میشه اونم بالافاصله بعد از ساختن پنجره pas
می تونی MainWindow رو از داخل همون pas بسازی...

smemamian
پنج شنبه 29 فروردین 1392, 22:06 عصر
خب چطوری ؟ بعد اون یوزم و پسوردی که گذاشتم، مکانش داخل تابع فکر نکنم درست باشه ؟

حامد مصافی
پنج شنبه 29 فروردین 1392, 23:11 عصر
متد show فرم را نمایش می‌دهد. اما متد exec علاوه بر نمایش یک event loop را هم اجرا می‌کند. به بیان دیگر به جای show از exec استفاده کنید.

smemamian
پنج شنبه 29 فروردین 1392, 23:26 عصر
تست می کنم نتیجه رو می گم ممنونم.
و اینکه مکان پسورد و یوزر درست هست ؟ برنامه ای که شماها می نویسید در کجا قرار میدید ؟

smemamian
جمعه 30 فروردین 1392, 17:22 عصر
کد یک مشکلی داره ! اونم اینکه وقتی پسورد درست رو وارد کردی و روی دکمه کلیک کردی اتفاقی نمی افته ! ولی باید پنجره رو ببندی تا پنجره ی اصلی باز بشه !