Всем привет! Мне необходимо пропатчить kdm, добавив возможность регистрации пользователей. Я добавил кнопку "Register" и связял её сигнал clicked() со слотом: void KStdGreeter::fake() { KRegisterDialog d; d.exec(); } /////////////// kregister_dialog.h ////////////////// #ifndef K_REGISTER_DIALOG_ #define K_REGISTER_DIALOG_ #include <qdialog.h> #include <map> class QLabel; class QLineEdit; class QWidget; class QGridLayout; class QPushButton; class KRegisterDialog : public QDialog { // Q_OBJECT public: KRegisterDialog(QWidget *parent = 0); ~KRegisterDialog(); private: typedef enum {studentID, login, password, passwordAgain} fields_t; std::map<fields_t, QLabel*> labels_; std::map<fields_t, QLineEdit*> lineEdits_; QPushButton* submitButton_; QGridLayout* gLayout_; }; #endif //K_REGISTER_DIALOG_ /////////////// kregister_dialog.cpp ////////////////// #include "kregister_dialog.h" #include <qlabel.h> #include <qlineedit.h> #include <qwidget.h> #include <qlayout.h> #include <qpushbutton.h> KRegisterDialog::KRegisterDialog(QWidget* parent) : QDialog(parent) { labels_[studentID] = new QLabel("Student ID",this); lineEdits_[studentID] = new QLineEdit(this); labels_[login] = new QLabel("Login name",this); lineEdits_[login] = new QLineEdit(this); labels_[password] = new QLabel("Password",this); lineEdits_[password] = new QLineEdit(this); labels_[passwordAgain] = new QLabel("Retype password",this); lineEdits_[passwordAgain] = new QLineEdit(this); submitButton_ = new QPushButton(this); submitButton_->setText("Submit"); gLayout_ = new QGridLayout(this); gLayout_->addWidget(labels_[studentID] ,0,0); gLayout_->addWidget(lineEdits_[studentID] ,0,1); gLayout_->addWidget(labels_[login] ,1,0); gLayout_->addWidget(lineEdits_[login] ,1,1); gLayout_->addWidget(labels_[password] ,2,0); gLayout_->addWidget(lineEdits_[password] ,2,1); gLayout_->addWidget(labels_[passwordAgain] ,3,0); gLayout_->addWidget(lineEdits_[passwordAgain] ,3,1); gLayout_->addWidget(submitButton_ ,4,1); } KRegisterDialog::~KRegisterDialog() { // TODO : Free all! } Вот что получилось: 1) Диалог открывается не в отдельном окне, а накладывается на виджет верхнего уровня (KStdGreeter)!!! Почему - не понимаю. На маленьком примере все работает. Подозреваю что-то в KDE!? 2) В QLineEdit'ы я ничего ввести не могу! Вот такие странности. Может подскажет кто в чем здесь дело?
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Qt: передать значение из QLineEdit в глобальную переменную (2012)
- Форум Размер виджета в Qt (2004)
- Форум Диалог авторизации (2013)
- Форум QListView не хочет отображаться, если вызывать внутри класса. (2008)
- Форум Object::connect: No such slot QLCDNumber::display(3) (2009)
- Форум Qt, С++, указатели, отчаяние. (2009)
- Форум QTabWidget и динамически изменяющаяся страница (2013)
- Форум Qt Creator. Кто как предпочитает подключать *.ui ? (2010)
- Форум [QT] subclassing (2009)
- Форум почему с QSqlRelationalTableModel данные не сохраняются? (2015)