• 6755阅读
  • 4回复

Qt运行错误代码-1073741823 [复制链接]

上一主题 下一主题
离线墨染樱
 
只看楼主 倒序阅读 楼主  发表于: 2013-05-06
投票截止时间:无限制

最多可选1项,共有0人参与,

0(0%)
 
关键词: 求助QTCreator
今天对教程敲代码运行时,出现
Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
错误。求各位帮帮忙。
图片
附代码:

addressbook.h:
#ifndef ADDRESSBOOK_H
#define ADDRESSBOOK_H

#include <QWidget>
#include <qlineedit.h>
#include <qtextedit.h>
#include <qpushbutton.h>
#include <qmap.h>
#include <qstring.h>

namespace Ui {
class AddressBook;
}

class AddressBook : public QWidget
{
    Q_OBJECT
    
public:
    explicit AddressBook(QWidget *parent = 0);
    ~AddressBook();
public slots:
    void addContact();
    void submitContact();
    void cancel();
    
private:
    Ui::AddressBook *ui;
    QPushButton *addButton;
    QPushButton *cancelButton;
    QPushButton *submitButton;
    QLineEdit *nameLine;
    QTextEdit *addressText;

    QMap<QString, QString> contacts;
    QString oldName;
    QString oldAddress;
};

#endif // ADDRESSBOOK_H



addressbook.cpp:
#include "addressbook.h"
#include "ui_addressbook.h"
#include <qlabel.h>
#include <qgridlayout.h>
#include <QVBoxLayout>
#include <qmessagebox.h>

AddressBook::AddressBook(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::AddressBook)
{
    ui->setupUi(this);
    QLabel *nameLabel = new QLabel(tr("Name:"));
    nameLine = new QLineEdit;
    nameLine->setReadOnly(true);

    QLabel *addressLabel = new QLabel(tr("Address:"));
    addressText = new QTextEdit;
    addressText->setReadOnly(true);

    QGridLayout *mainLayout = new QGridLayout;
    QVBoxLayout *buttonLayout1 = new QVBoxLayout;


    buttonLayout1->addWidget(addButton,Qt::AlignTop);
    buttonLayout1->addWidget(submitButton);
    buttonLayout1->addWidget(cancelButton);
    buttonLayout1->addStretch();


    mainLayout->addWidget(nameLabel,0,0);
    mainLayout->addWidget(nameLine,0,1);
    mainLayout->addWidget(addressLabel,1,0,Qt::AlignTop);
    mainLayout->addWidget(addressText,1,1);
    mainLayout->addLayout(buttonLayout1,1,2);


    setLayout(mainLayout);
    setWindowTitle(tr("My Address Book "));

    addButton = new QPushButton(tr("&Add"));
    addButton->show();

    submitButton = new QPushButton(tr("&Submit"));
    submitButton->hide();

    cancelButton = new QPushButton(tr("&Cancel"));
    cancelButton->hide();

    connect(addButton,SIGNAL(clicked()),this,SLOT(addContact()));
    connect(submitButton,SIGNAL(clicked()),this,SLOT(submitContact()));
    connect(cancelButton,SIGNAL(clicked()),this,SLOT(cancel()));


}

void AddressBook::addContact(){
    oldName = nameLine->text();
    oldAddress = addressText->toPlainText();

    nameLine->clear();
    addressText->clear();

    nameLine->setReadOnly(false);
    nameLine->setFocus(Qt::OtherFocusReason);
    addressText->setReadOnly(false);

    addButton->setEnabled(false);
    submitButton->show();
    cancelButton->show();
}

void AddressBook::submitContact(){
    QString name = nameLine->text();
    QString address = addressText->toPlainText();
    if(name == "" || address == ""){
        QMessageBox::information(this,tr("Empty Field"),tr("Please enter a name and address"));
        return;
    }

    if(!contacts.contains(name)){
        contacts.insert(name,address);
        QMessageBox::information(this,tr("Add Success"),tr("\"%l\" has been added to your address book").arg(name));
    } else {
        QMessageBox::information(this,tr("Add Unsuccess"),tr("Sorry,\"%l\" is already in your address book").arg(name));
        return;
    }

    if(contacts.isEmpty()){
        nameLine->clear();
        addressText->clear();
    }

    nameLine->setReadOnly(true);
    addressText->setReadOnly(true);
    addButton->setEnabled(true);
    submitButton->hide();
    cancelButton->hide();
}

void AddressBook::cancel(){
    nameLine->setText(oldName);
    nameLine->setReadOnly(true);

    addressText->setText(oldAddress);
    addressText->setReadOnly(true);

    addButton->setEnabled(true);
    submitButton->hide();
    cancelButton->hide();
}

AddressBook::~AddressBook()
{
    delete ui;
}



main.cpp:
#include "addressbook.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    AddressBook w;
    w.show();

    return a.exec();
}



离线jdwx

只看该作者 1楼 发表于: 2013-05-06
回 楼主(墨染樱) 的帖子
一般是使用了空指针。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线墨染樱
只看该作者 2楼 发表于: 2013-05-06
回 1楼(jdwx) 的帖子
能帮我看看吗?我刚开始学,明明就是按照教程敲的,完全不是知道这段代码哪里错了。
离线jdwx

只看该作者 3楼 发表于: 2013-05-06
回 2楼(墨染樱) 的帖子
改了一下,
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线墨染樱
只看该作者 4楼 发表于: 2013-05-06
回 3楼(jdwx) 的帖子
O(∩_∩)O谢谢,终于解决了,原来是这个问题啊。囧rz...
快速回复
限100 字节
 
上一个 下一个