#include <QtGui>
#include <QDebug>
class LoginDialog
: public QDialog { Q_OBJECT
public:
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
layout->addWidget(pwEdit);
layout->addWidget(buttonBox);
setLayout(layout);
}
public slots:
void accept() {
if (pwEdit
->text
() == QString("xyzzy")) }
private:
};
Q_OBJECT
public:
connect(button, SIGNAL(clicked()), SLOT(buttonClicked()));
setCentralWidget(button);
}
public slots:
void buttonClicked() {
if (button->text() == "Login") {
LoginDialog dialog;
int result = dialog.exec();
// do login stuff
button->setText("Logout");
}
}
else {
// do logout stuff
button->setText("Login");
}
}
private:
};
int main(int argc, char *argv[])
{
MainWindow m;
m.show();
return app.exec();
}
#include "main.moc"
#include <QtGui>
#include <QDebug>
class LoginDialog: public QDialog {
Q_OBJECT
public:
LoginDialog(QWidget *p = 0): QDialog(p) {
pwEdit = new QLineEdit(this);
QDialogButtonBox *buttonBox =
new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(pwEdit);
layout->addWidget(buttonBox);
setLayout(layout);
}
public slots:
void accept() {
if (pwEdit->text() == QString("xyzzy"))
QDialog::accept();
}
private:
QLineEdit *pwEdit;
};
class MainWindow: public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *p = 0): QMainWindow(p) {
button = new QPushButton("Login", this);
connect(button, SIGNAL(clicked()), SLOT(buttonClicked()));
setCentralWidget(button);
}
public slots:
void buttonClicked() {
if (button->text() == "Login") {
LoginDialog dialog;
int result = dialog.exec();
if (result == QDialog::Accepted) {
// do login stuff
button->setText("Logout");
}
}
else {
// do logout stuff
button->setText("Login");
}
}
private:
QPushButton *button;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow m;
m.show();
return app.exec();
}
#include "main.moc"
To copy to clipboard, switch view to plain text mode
Bookmarks