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:
#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:
#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:
#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>");
}
Pregunta... codificas todo o utilizas QT-Designer?
Me parece bueno tu ejemplo.
Buen código, sigues avanzando con Qt :). Para la próxima quiero verlo hecho con el Designer :xD.
Saludos ;)
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
Igualmente el código está bueno... A mi no me interesa como quede sinceramente, antes que tal vez estar codificando cientos de lineas :xD
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.
:o pensé que trabajas de esto
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