• 6701阅读
  • 5回复

[提问]为什么我的QT程序按运行以后,一直不出结果 [复制链接]

上一主题 下一主题
离线ojiushihou
 
只看楼主 倒序阅读 楼主  发表于: 2011-03-25
— 本帖被 XChinux 执行加亮操作(2011-03-27) —
为什么我的QT程序按运行以后,一直不出结果。下面显示:“Starting ×××××××(前面是路径名)×××\login-build-desktop\debug\login.exe...”
离线XChinux

只看该作者 1楼 发表于: 2011-03-25
发程序上来看看。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线ojiushihou
只看该作者 2楼 发表于: 2011-03-25
回 1楼(XChinux) 的帖子
longin.h
#ifndef LOGIN_H
#define LOGIN_H

#include <QDialog>

#include "ui_login.h"

class login : public QDialog,public Ui::login
{
    Q_OBJECT

public:
    login(QWidget *parent = 0);

//protected:
    //void changeEvent(QEvent *e);

private:
    void on_loginButton_clicked();
};

#endif // LOGIN_H


login.cpp
#include <QtGui>

#include "login.h"
#include "ui_login.h"

login::login(QWidget *parent) :
    QDialog(parent)
{
    setupUi(this);
    passwordLineEdit->setEchoMode(QLineEdit::Password);
}

/*void login::changeEvent(QEvent *e)
{
    QDialog::changeEvent(e);
    switch(e->type()){
    case QEvent::LanguageChange:
        retranslateUi(this);
        break;
    default:
        break;
    }
}
*/
void login::on_loginButton_clicked()
{
    if(nameLineEdit->text().trimmed()==tr("qt")&&passwordLineEdit->text()==tr("123456"))
//判断用户名和密码是否正确,加入trimmed()这个函数的作用就是移除字符串开头和结尾的空白字符
        accept();
    else{
        QMessageBox::warning(this,tr("Warning"),tr("user name or password error!"),QMessageBox::Yes);
//如果不正确,弹出警告对话框
        nameLineEdit->clear();//清空用户名输入框
        passwordLineEdit->clear();//清空密码输入框
        nameLineEdit->setFocus();//将光标转到用户名输入框
    }
}


main.cpp
#include <QtGui/QApplication>
#include <QDialog>
#include "login.h"


int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    login *logindialog=new login;

    if(app.exec()==QDialog::Accepted)
       {
           logindialog->show();
           return app.exec();
       }
       else return 0;


}
离线heyhey88
只看该作者 3楼 发表于: 2011-03-25
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    login *logindialog=new login;

    if(logindialog->exec()==QDialog::Accepted)   //这里改成这样就成了
       {
           logindialog->show();
           return app.exec();
       }
       else return 0;
}


界面图
离线jdwx

只看该作者 4楼 发表于: 2011-03-25
引用第3楼heyhey88于2011-03-25 14:23发表的  :
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    login *logindialog=new login;
.......

???????????
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线ojiushihou
只看该作者 5楼 发表于: 2011-03-25
回 3楼(heyhey88) 的帖子
太感谢了!终于可以正常运行。。。只是对于输入密码的正确性好像没有正常报错。。
^_^
快速回复
限100 字节
 
上一个 下一个