Hi, interesting way..but it happens nothing if i click my ok_btn 
And i want to show my Login not by starting my app. i want over my menu, see code:
Have you a idea why not works?
login.h:
#include "ui_login.h"
{
Q_OBJECT
public:
public slots:
void myfirstfunction();
bool verbinden();
private:
Ui::LoginDialog ui;
void init();
signals:
void LoginOk();
};
#include "ui_login.h"
class LoginDialog : public QDialog
{
Q_OBJECT
public:
LoginDialog(QWidget *parent = 0);
public slots:
void myfirstfunction();
bool verbinden();
private:
Ui::LoginDialog ui;
void init();
signals:
void LoginOk();
};
To copy to clipboard, switch view to plain text mode
login.cpp:
#include "login.h"
#include "test.h"
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QTextEdit>
#include <QStatusBar>
#include <QAbstractItemView>
#include <QEvent>
#include <QTreeWidgetItem>
#include <QTreeWidget>
#include <QtGui/QTreeWidget>
#include <QSqlQueryModel>
#include <QSqlTableModel>
LoginDialog
::LoginDialog(QWidget *parent
) {
ui.setupUi(this);
connect(ui.ok_btn, SIGNAL(clicked()), this, SLOT(LoginOk()));
connect(ui.ok_btn, SIGNAL(clicked()), this, SLOT(verbinden()));
connect(ui.cancel_btn, SIGNAL(clicked()), this, SLOT(close()));
}
void LoginDialog::myfirstfunction()
{
"Unable to find the user preferences file.\n"
"The factory default will be used instead.");
}
bool LoginDialog::verbinden()
{
QString host
= ui.
host_cb->currentText
();
if((user == ""))
{
QMessageBox::information(this,
"Login",
"Bitte Benutzername angeben");
return 0;
}
db.setHostName(host);
db.setDatabaseName("DRIVER={SQL Server};SERVER="+host+";DATABASE=inventar;UID="+user+";PWD="+pass+"");
db.setUserName(user);
db.setPassword(pass);
if(!db.open())
{
QMessageBox::information(this,
"",db.
lastError().
text());
return false;
}
else
{
//MainWindow* m;
//m->ui.speichern_btn->setEnabled(TRUE);
this->close();
return true;
}
}
#include "login.h"
#include "test.h"
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QTextEdit>
#include <QStatusBar>
#include <QAbstractItemView>
#include <QEvent>
#include <QTreeWidgetItem>
#include <QTreeWidget>
#include <QtGui/QTreeWidget>
#include <QSqlQueryModel>
#include <QSqlTableModel>
LoginDialog::LoginDialog(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
connect(ui.ok_btn, SIGNAL(clicked()), this, SLOT(LoginOk()));
connect(ui.ok_btn, SIGNAL(clicked()), this, SLOT(verbinden()));
connect(ui.cancel_btn, SIGNAL(clicked()), this, SLOT(close()));
}
void LoginDialog::myfirstfunction()
{
QMessageBox::information(this, "Application name",
"Unable to find the user preferences file.\n"
"The factory default will be used instead.");
}
bool LoginDialog::verbinden()
{
QString user = ui.user_le->text();
QString pass = ui.pass_le->text();
QString host = ui.host_cb->currentText();
QMessageBox::information(this,"Login", user);
QMessageBox::information(this,"Login", pass);
QMessageBox::information(this,"Login", host);
if((user == ""))
{
QMessageBox::information(this,"Login", "Bitte Benutzername angeben");
return 0;
}
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName(host);
db.setDatabaseName("DRIVER={SQL Server};SERVER="+host+";DATABASE=inventar;UID="+user+";PWD="+pass+"");
db.setUserName(user);
db.setPassword(pass);
if(!db.open())
{
QMessageBox::information(this,"",db.lastError().text());
return false;
}
else
{
//MainWindow* m;
//m->ui.speichern_btn->setEnabled(TRUE);
this->close();
return true;
}
}
To copy to clipboard, switch view to plain text mode
test.h:
#include "ui_mainwindow.h"
{
Q_OBJECT
public:
MainWindow();
Ui::MainWindow ui;
public slots:
void selectSprache();
void openLoginDialog();
void updateTable();
void enableButton();
private:
void init();
protected:
};
#include "ui_mainwindow.h"
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
Ui::MainWindow ui;
public slots:
void selectSprache();
void openLoginDialog();
void updateTable();
void enableButton();
private:
void init();
protected:
};
To copy to clipboard, switch view to plain text mode
test.cpp:
#include "test.h"
#include "login.h"
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QTextEdit>
#include <QStatusBar>
#include <QAbstractItemView>
#include <QEvent>
#include <QTreeWidgetItem>
#include <QTreeWidget>
#include <QtGui/QTreeWidget>
#include <QSqlQueryModel>
#include <QSqlTableModel>
#include <QSqlRecord>
MainWindow::MainWindow()
{
ui.setupUi(this);
LoginDialog* logindialog = new LoginDialog();
logindialog->show();
connect(logindialog, SIGNAL(LoginOk()), this, SLOT(enableButton()));
connect(ui.actionverbinden, SIGNAL(triggered()), this, SLOT(openLoginDialog()));
connect(ui.speichern_btn, SIGNAL(clicked()), this, SLOT(selectSprache()));
connect(ui.update_btn, SIGNAL(clicked()), this, SLOT(updateTable()));
init();
}
void MainWindow::selectSprache()
{
QString table
= ui.
tabelle_le->text
();
model->setTable(table);
model->select();
ui.tableView->setModel(model);
ui.tableView->show();
}
void MainWindow::openLoginDialog()
{
LoginDialog l(this);
l.exec();
}
void MainWindow::init()
{
ui.speichern_btn->setEnabled(FALSE);
}
void MainWindow::updateTable()
{
model.setTable("sprache_tbl");
QString name
= model.
record(1).
value("sprache").
toString();
name);
}
void MainWindow::enableButton()
{
"");
//ui.speichern_btn->setEnabled(TRUE);
}
#include "test.h"
#include "login.h"
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QTextEdit>
#include <QStatusBar>
#include <QAbstractItemView>
#include <QEvent>
#include <QTreeWidgetItem>
#include <QTreeWidget>
#include <QtGui/QTreeWidget>
#include <QSqlQueryModel>
#include <QSqlTableModel>
#include <QSqlRecord>
MainWindow::MainWindow()
{
ui.setupUi(this);
LoginDialog* logindialog = new LoginDialog();
logindialog->show();
connect(logindialog, SIGNAL(LoginOk()), this, SLOT(enableButton()));
connect(ui.actionverbinden, SIGNAL(triggered()), this, SLOT(openLoginDialog()));
connect(ui.speichern_btn, SIGNAL(clicked()), this, SLOT(selectSprache()));
connect(ui.update_btn, SIGNAL(clicked()), this, SLOT(updateTable()));
init();
}
void MainWindow::selectSprache()
{
QString table = ui.tabelle_le->text();
QSqlTableModel *model = new QSqlTableModel;
model->setTable(table);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
ui.tableView->setModel(model);
ui.tableView->show();
}
void MainWindow::openLoginDialog()
{
LoginDialog l(this);
l.exec();
}
void MainWindow::init()
{
ui.speichern_btn->setEnabled(FALSE);
}
void MainWindow::updateTable()
{
QSqlTableModel model;
model.setTable("sprache_tbl");
QString name = model.record(1).value("sprache").toString();
QMessageBox::information(this, "Application name",
name);
}
void MainWindow::enableButton()
{
QMessageBox::information(this, "Application name",
"");
//ui.speichern_btn->setEnabled(TRUE);
}
To copy to clipboard, switch view to plain text mode
Bookmarks