[Qt4.6] QtPassGen by. Lord R.N.A.

Iniciado por [L]ord [R]NA, 3 Agosto 2010, 02:42 AM

0 Miembros y 1 Visitante están viendo este tema.

[L]ord [R]NA

El titulo lo explica, es un generador de passwords. Genera passwords de entre 8 y 32 caracteres agregando numeros, letras y simbolos. Compila perfectamente en Qt4.6.

main.cpp:

Código (cpp) [Seleccionar]
#include <QtGui/QApplication>
#include "qtpass.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QtPass w;
    w.show();
    return a.exec();
}


qtpass.h:
Código (cpp) [Seleccionar]
#ifndef QTPASS_H
#define QTPASS_H

#include <QtGui>

class QLineEdit;
class QPushButton;
class QLabel;
class QSpinBox;
class QString;

class QtPass : public QWidget {
    Q_OBJECT

public:
    QtPass(QWidget *parent = 0);

private slots:
    void GenerarPass();
    void About();

private:
    QString *pass;
    QLineEdit *LinePass;
    QPushButton *ButtonGen, *ButtonAbout, *ButtonSalir;
    QLabel *LabelPass;
    QSpinBox *SpinChar;
    QHBoxLayout *TopLayout;
    QHBoxLayout *BottomLayout;
    QVBoxLayout * MainLayout;


};

#endif // QTPASS_H


qtpass.cpp:
Código (cpp) [Seleccionar]
#include "qtpass.h"

QtPass::QtPass(QWidget *parent) :
    QWidget(parent)
   {
//Creamos los Widgets que vamos a necesitar
    this->LinePass = new QLineEdit;
    this->SpinChar = new QSpinBox;
    this->ButtonGen = new QPushButton("&Generar");
    this->ButtonAbout = new QPushButton("&About");
    this->ButtonSalir = new QPushButton("&Salir");
    this->LabelPass = new QLabel("Password: ");

//Configuramos algunos Widgets
    this->ButtonGen->setDefault(true);
    this->LinePass->setReadOnly(true);
    this->SpinChar->setMaximum(32);
    this->SpinChar->setMinimum(8);

//Preparamos los Layouts que necesitaremos para organizar.
    this->TopLayout = new QHBoxLayout;
    this->BottomLayout = new QHBoxLayout;
    this->MainLayout = new QVBoxLayout;

//Empezamos la organizacion de los Widgets
    this->TopLayout->addWidget(this->LabelPass);
    this->TopLayout->addWidget(this->LinePass);
    this->TopLayout->addWidget(this->SpinChar);
    this->BottomLayout->addWidget(this->ButtonGen);
    this->BottomLayout->addWidget(this->ButtonAbout);
    this->BottomLayout->addWidget(this->ButtonSalir);
    this->MainLayout->addLayout(this->TopLayout);
    this->MainLayout->addLayout(this->BottomLayout);

//Añadimos titulo y el Layout principal a la ventana.
    this->setWindowTitle("QtPassGen by Lord R.N.A.");
    this->setLayout(this->MainLayout);
    this->setFixedSize(420,80);

//Realizamos las conexiones que necesitaremos.
    connect(this->ButtonSalir,SIGNAL(clicked()),this,SLOT(close()));
    connect(this->ButtonGen,SIGNAL(clicked()),this,SLOT(GenerarPass()));
    connect(this->ButtonAbout,SIGNAL(clicked()),this,SLOT(About()));
    }

//La funcion encargada de generar el password.
void QtPass::GenerarPass()
{
this->pass = new QString;
QTime *seed = new QTime;
seed->start(); //Para inicializar el puntero seed con la hora actual.
qsrand(seed->msec()); //La semilla para qrand();
for(int i=0;this->SpinChar->value()>i;i++)
{
    this->pass->insert(i,QChar(qrand()%95 +33));//Inserta en la posicion i, el char devuelto por QChar();
    if(this->pass->at(i)==QChar(96))i--;

}
this->LinePass->setText(*this->pass);
delete this->pass;
delete seed;
}

//El MessageBox para el About.
void QtPass::About()
{
    QMessageBox::about(this,"About","<b>QtPassGen v1.0 by Lord R.N.A.</b> <br><br>"
                       "Aplicacion Generadora de Passwords <br>Qt 4.6"
                       "<br><br><b>R.N.A. Labs.</b>");
}

cbug

Pregunta... codificas todo o utilizas QT-Designer?

Me parece bueno tu ejemplo.

[Zero]

Buen código, sigues avanzando con Qt  :). Para la próxima quiero verlo hecho con el Designer  :xD.

Saludos  ;)

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

[L]ord [R]NA

Cita de: cbug en  3 Agosto 2010, 02:52 AM
Pregunta... codificas todo o utilizas QT-Designer?

Me parece bueno tu ejemplo.

codifico todo.

Cita de: [Zero] en  3 Agosto 2010, 02:54 AM
Buen código, sigues avanzando con Qt  :). Para la próxima quiero verlo hecho con el Designer  :xD.

Saludos  ;)

:xD es que con el Designer me aburriria, ademas soy malo diseñando cuando puedo ver como va quedando :xD

cbug

Igualmente el código está bueno... A mi no me interesa como quede sinceramente, antes que tal vez estar codificando cientos de lineas  :xD

[L]ord [R]NA

Cita de: cbug en  3 Agosto 2010, 03:16 AM
Igualmente el código está bueno... A mi no me interesa como quede sinceramente, antes que tal vez estar codificando cientos de lineas  :xD

Asi duro mas y consumo tiempo, casi siempre programo cuando no tengo nada que hacer.

cbug


[L]ord [R]NA

Cita de: cbug en  3 Agosto 2010, 03:34 AM
:o pensé que trabajas de esto

Si me consiguen un trabajo programando con las librerias Qt seria un exito