A simple interface program that accepts username and password, slot function is temporarily empty, compilation can pass, runtime error.
//passwddialog.h
-sharpifndef PASSWDDIALOG_H
-sharpdefine PASSWDDIALOG_H
-sharpinclude <QDialog>
class QLabel;
class QLineEdit;
class QPushButton;
class PasswdDialog : public QDialog{
    Q_OBJECT
public:
    PasswdDialog(QWidget* parent = 0);
private slots:
    void okClicked();
    void onLineEditChanged(const QString& str);
    
private:
    QLabel*        usernameLabel;
    QLabel*        passwdLabel;
    QLineEdit*    usernameLineEdit;
    QLineEdit*    passwdLineEdit;
    QPushButton*    okButton;
    QPushButton*    cancelButton;
};
-sharpendif
//passwddialog.cpp
-sharpinclude <QtGui>
-sharpinclude "passwddialog.h"
PasswdDialog::PasswdDialog(QWidget* parent)
    : QDialog(parent)
{
    usernameLabel = new QLabel(tr("&Username:"));
    usernameLineEdit = new QLineEdit;
    usernameLabel->setBuddy(usernameLineEdit);
    passwdLabel = new QLabel(tr("&Password:"));
    passwdLineEdit = new QLineEdit;
    passwdLabel->setBuddy(passwdLineEdit);
    okButton = new QPushButton(tr("&Ok"));
    okButton->setDefault(true);
    okButton->setEnabled(false);
    cancelButton = new QPushButton(tr("&Cancel"));
    connect(okButton, SIGNAL(clicked()),
            this, SLOT(okClicked()));
    connect(cancelButton, SIGNAL(clicked()),
            this, SLOT(close()));
    connect(usernameLineEdit, SIGNAL(textChanged(const QString&)),
            this, SLOT(onLineEditChanged(const QString&)));
    connect(passwdLineEdit, SIGNAL(textChanged(const QString&)),
            this, SLOT(onLineEditChanged(const QString&)));
    QHBoxLayout* topLayout = new QHBoxLayout;
    topLayout->addWidget(usernameLabel);
    topLayout->addWidget(usernameLineEdit);
    QHBoxLayout* middleLayout = new QHBoxLayout;
    middleLayout->addWidget(passwdLabel);
    middleLayout->addWidget(passwdLineEdit);
    QHBoxLayout* bottomLayout = new QHBoxLayout;
    bottomLayout->addWidget(okButton);
    bottomLayout->addWidget(cancelButton);
    bottomLayout->addStretch();
    QVBoxLayout* layout = new QVBoxLayout;
    layout->addLayout(topLayout);
    layout->addLayout(middleLayout);
    layout->addLayout(bottomLayout);
    setLayout(layout);
    setWindowTitle(tr("Sign in"));
    setFixedHeight(sizeHint().height());
}
void PasswdDialog::okClicked(){
    ;
}
void PasswdDialog::onLineEditChanged(const QString& str){
    ;
}
//main.cpp
-sharpinclude <QApplication>
-sharpinclude "passwddialog.h"
int main(int argc, char** argv){
    QApplication app(argc, argv);
    PasswdDialog* passwdDialog;
    passwdDialog->show();
    return app.exec();
}compilation is fine, running error:
passwd. / passwd
Maximum number of clients reached: cannot connect to X server: 0
[1] 4766 segmentation fault (core dumped). / passwd
qt newcomer, please solve the problem. Thanks!
