Книга: Основы программирования в Linux

LogonDialog

LogonDialog

Вы, конечно же, не сможете запрашивать базу данных без предварительной регистрации, поэтому вам необходимо простое диалоговое окно для ввода имени пользователя и пароля. Назовите этот класс LogonDialog. (Да, еще один пример остроумного и образного имени!)

1. Начнем с заголовочного файла. Введите приведенный далее программный код и назовите файл LogonDialog.h. Обратите внимание на то, что для разнообразия этот класс описан в данном случае как потомок класса QDialog, а не KDialogBase.

#include <qdialog.h>
#include <qlineedit.h>
class LogonDialog : public QDialog {
 Q_OBJECT
public:
 LogonDialog(QWidget* parent = 0, const char *name = 0);
 QString getUsername();
QString getPassword();
private:
 QLineEdit *username_entry, *password_entry;
};

2. У вас есть более удобные методы для имени пользователя и пароля, чем инкапсуляция в файле LogonDialog.cpp вызова database_start. Далее приведен файл LogonDialog.cpp:

#include "LogonDialog.h"
#include "appmysql.h"
#include <qpushbutton.h>
#include <qlayout.h>
#include <qlabel.h>
LogonDialog::LogonDialog(QWidget *parent, const char *name):
 QDialog(parent, name) {
 QGridLayout *grid = new QGridLayout(this, 3, 2, 10, 5, "grid");
 grid->addWidget(new QLabel("Username", this, "usernamelabel"), 0, 0, 0);
 grid->addWidget(new QLabel("Password", this, "passwordlabel"), 1, 0, 0);
 username_entry = new QLineEdit(this, "username entry");
 password_entry = new QLineEdit(this, "password_entry");
 password_entry->setEchoMode(QLineEdit::Password);
 grid->addWidget(username_entry, 0, 1, 0);
 grid->addWidget(passwordentry, 1, 1, 0);
 QPushButton* button = new QPushButton("Ok", this, "button");
 grid->addWidget(button, 2, 1, Qt::AlignRight);
 connect (button, SIGNAL(clicked()), this, SLOT(accept()));
}
QString LogonDialog::getUsername() {
 if (username_entry == NULL) return NULL;
 return username_entry->text();
}
QString LogonDialog::getPassword() {
 if (password_entry == NULL) return NULL;
 return password_entry->text();
}

На рис. 17.15 показано, как будет выглядеть диалоговое окно.


Рис. 17.15 

Оглавление книги

Оглавление статьи/книги

Генерация: 1.944. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз