Qt开发登录框的bug

来源:互联网 发布:求最短路径的算法 编辑:程序博客网 时间:2024/06/06 18:00

首先我新建了一个空工程,然后添加login.h头文件:

#ifndef LOGIN_H#define LOGIN_H#include<QtGui/QDialog>class QLineEdit;class SLoginDlg : public QDialog{    Q_OBJECTpublic:    SLoginDlg(QWidget *parent = 0);    virtual ~SLoginDlg();public slots:    virtual void accept();private:    QLineEdit *userLineEdit;    QLineEdit *pwdLineEdit;};#endif // LOGIN_H

再者添加login.cpp源文件:

#include"login.h"#include<QtGui/QtGui>SLoginDlg::SLoginDlg(QWidget *parent) : QDialog(parent){    setWindowTitle(tr("登录"));    QLabel *userLabel = new QLabel(tr("用户名"));    QLabel *pwdLabel = new QLabel(tr("密码"));    userLineEdit = new QLineEdit;    pwdLineEdit = new QLineEdit;    pwdLineEdit->setEchoMode(QLineEdit::Password);    userLineEdit->setPlaceholderText(tr("条码号/学号"));    pwdLineEdit->setPlaceholderText(tr("请输入密码"));    QGridLayout *gridLayout = new QGridLayout;    gridLayout->addWidget(userLabel,0,0,1,1);    gridLayout->addWidget(userLineEdit,0,1,1,3);    gridLayout->addWidget(pwdLabel,1,0,1,1);    gridLayout->addWidget(pwdLineEdit,1,1,1,3);    QPushButton *okButton = new QPushButton(tr("登录"));    QPushButton *cancelButton = new QPushButton(tr("取消"));    QHBoxLayout *btnLayout = new QHBoxLayout;    btnLayout->setSpacing(60);    btnLayout->addWidget(okButton);    btnLayout->addWidget(cancelButton);    QVBoxLayout *faceLayout = new QVBoxLayout;    faceLayout->setMargin(40);    faceLayout->addLayout(gridLayout);    faceLayout->setMargin(40);    faceLayout->addLayout(btnLayout);    setLayout(faceLayout);    connect(okButton,SIGNAL(clicked()),this,SLOT(accept()));    connect(cancelButton,SIGNAL(clicked()),this,SLOT(reject()));    resize(300,200);}SLoginDlg::~SLoginDlg(){    delete userLineEdit;    delete pwdLineEdit;}void SLoginDlg::accept(){    if(userLineEdit->text().trimmed()==tr("Hughen")&&            pwdLineEdit->text()==tr("123456"))         //trimmed()是过滤其中的非法字符    {        QDialog::accept();    }    else    {        QMessageBox::warning(this,tr("错误"),tr("用户名或密码错误,请检查大小写是否规范"),QMessageBox::Yes);        userLineEdit->clear();        pwdLineEdit->clear();        userLineEdit->setFocus();    }}

最后添加main.cpp源文件:

#include"login.h"#include<QtGui/QtGui>#include<QTextCodec>int main(int argc,char *argv[]){    QApplication appLogin(argc,argv);    QTextCodec::setCodecForTr(QTextCodec::codecForName("Hughen"));    SLoginDlg *SLog = new SLoginDlg;    SLog->show();    return appLogin.exec();}
所有代码书写完成,然后在Qt for Desktop MSVC2010的构建环境下,编译链接,问题出现

程序异常终止,直接退出

到这里我就不明白了,求一个大神给点提示,我这代码究竟错在哪里?????

哭哭哭哭哭哭

原创粉丝点击