Hi all,
I am writing a little program that open a window with a form. When the user fills the form and click Submit, the app should connect to mysql server and open another window FenP.
But when I click on Submit, I always have the dialog Box saying that the connection failed.
Can you help me?
Below is my code:
main.cpp
#include <QApplication>
#include "FenetreAccueil.h"
int main(int argc,char* argv[])
{
FenetreAccueil login;
login.show();
return app.exec();
}
#include <QApplication>
#include "FenetreAccueil.h"
int main(int argc,char* argv[])
{
QApplication app(argc, argv);
FenetreAccueil login;
login.show();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
FenetreAcceuil.h
#ifndef FENETREACCUEIL_H
#define FENETREACCUEIL_H
#include <QtGui>
#include <QtSql>
#include "FenetrePrincipale.h"
class FenetreAccueil
: public QWidget{
Q_OBJECT
public:
explicit FenetreAccueil
(QWidget *parent
= 0);
public slots:
void connectDB();
private:
};
#endif // FENETREACCUEIL_H
#ifndef FENETREACCUEIL_H
#define FENETREACCUEIL_H
#include <QtGui>
#include <QtSql>
#include "FenetrePrincipale.h"
class FenetreAccueil : public QWidget
{
Q_OBJECT
public:
explicit FenetreAccueil(QWidget *parent = 0);
public slots:
void connectDB();
private:
QPushButton *m_connect;
QPushButton *m_cancel;
QLineEdit *m_password;
QLineEdit *m_login;
QLineEdit *m_addressBD;
QLabel *m_label;
};
#endif // FENETREACCUEIL_H
To copy to clipboard, switch view to plain text mode
#include "FenetreAccueil.h"
FenetreAccueil
::FenetreAccueil(QWidget *parent
) :{
//Creation du layout de formulaire et ses widgets
m_password
->setEchoMode
(QLineEdit::Password);
//affichage d'asterisques a la saisie m_addressBD
=new QLineEdit;
//format adresse IP ou pas?
QFormLayout *formAccueil=new QFormLayout;
formAccueil->addRow(tr("&Login"),m_login);
formAccueil->addRow(tr("Password"),m_password);
formAccueil->addRow(tr("mySQL server address"),m_addressBD);
//Creation d'un layout horizontal pour les boutons
boutonLayout->addWidget(m_connect);
boutonLayout->addWidget(m_cancel);
//Creation d'un layout pour le logo
logo
->setPixmap
(QPixmap("images/grandlogo.png"));
logoLayout->addWidget(logo);
//Creation d'un layout pour le message d'acceuil
m_label
= new QLabel(tr
("Welcome in callTracker"),
this);
labelLayout->addWidget(m_label);
//Creation du layout principal de la fenetre
//Ajout du layout d'accueil
layoutPrincipal->addLayout(labelLayout);
//Ajout du layout de formulaire
layoutPrincipal->addLayout(formAccueil);
//Ajout du layout des boutons
layoutPrincipal->addLayout(boutonLayout);
setLayout(layoutPrincipal);
setWindowTitle(tr("Welcome"));
setWindowFlags(Qt::Tool);//Pour empecher le changement de dimensions de la fenetre
resize(300,350);
//Generation des signaux et des slots
connect(m_connect,SIGNAL(clicked()),this,SLOT(connectDB()));
connect(m_cancel,SIGNAL(clicked()),qApp, SLOT(quit()));
}
void FenetreAccueil::connectDB()
{
server=m_addressBD->text();
db.setHostName(server);
db.setDatabaseName("calltracker");
db.setUserName("appClient");
db.setPassword("Clown2neige");
bool ok=db.open();
if(ok)
{
FenetrePrincipale *fenP=new FenetrePrincipale;
fenP->show();
}
else
QMessageBox::critical(this,
"callTracker",tr
("Connection to database failed"));
}
#include "FenetreAccueil.h"
FenetreAccueil::FenetreAccueil(QWidget *parent) :
QWidget(parent)
{
//Creation du layout de formulaire et ses widgets
m_login=new QLineEdit;
m_password=new QLineEdit;
m_password->setEchoMode(QLineEdit::Password);//affichage d'asterisques a la saisie
m_addressBD=new QLineEdit;//format adresse IP ou pas?
QFormLayout *formAccueil=new QFormLayout;
formAccueil->addRow(tr("&Login"),m_login);
formAccueil->addRow(tr("Password"),m_password);
formAccueil->addRow(tr("mySQL server address"),m_addressBD);
//Creation d'un layout horizontal pour les boutons
m_connect=new QPushButton(tr("Connect"));
m_cancel=new QPushButton(tr("Cancel"));
QHBoxLayout *boutonLayout=new QHBoxLayout;
boutonLayout->addWidget(m_connect);
boutonLayout->addWidget(m_cancel);
//Creation d'un layout pour le logo
QLabel *logo=new QLabel(this);
logo->setPixmap(QPixmap("images/grandlogo.png"));
QHBoxLayout *logoLayout=new QHBoxLayout;
logoLayout->addWidget(logo);
//Creation d'un layout pour le message d'acceuil
m_label = new QLabel(tr("Welcome in callTracker"),this);
QHBoxLayout *labelLayout=new QHBoxLayout;
labelLayout->addWidget(m_label);
//Creation du layout principal de la fenetre
QVBoxLayout *layoutPrincipal=new QVBoxLayout;
//Ajout du layout d'accueil
layoutPrincipal->addLayout(labelLayout);
//Ajout du layout de formulaire
layoutPrincipal->addLayout(formAccueil);
//Ajout du layout des boutons
layoutPrincipal->addLayout(boutonLayout);
setLayout(layoutPrincipal);
setWindowTitle(tr("Welcome"));
setWindowFlags(Qt::Tool);//Pour empecher le changement de dimensions de la fenetre
resize(300,350);
//Generation des signaux et des slots
connect(m_connect,SIGNAL(clicked()),this,SLOT(connectDB()));
connect(m_cancel,SIGNAL(clicked()),qApp, SLOT(quit()));
}
void FenetreAccueil::connectDB()
{
QString server;
server=m_addressBD->text();
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(server);
db.setDatabaseName("calltracker");
db.setUserName("appClient");
db.setPassword("Clown2neige");
bool ok=db.open();
if(ok)
{
FenetrePrincipale *fenP=new FenetrePrincipale;
fenP->show();
}
else
QMessageBox::critical(this,"callTracker",tr("Connection to database failed"));
}
To copy to clipboard, switch view to plain text mode
Thank you
Bookmarks