Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt单击按钮导致崩溃_C++_Qt_Qpushbutton - Fatal编程技术网

C++ Qt单击按钮导致崩溃

C++ Qt单击按钮导致崩溃,c++,qt,qpushbutton,C++,Qt,Qpushbutton,每次我单击我在UI设计器中添加的QPushButton时,按钮都会保持单击状态,应用程序就会崩溃。当我移除按钮的“clicked()”信号所连接的插槽时,我可以单击按钮,应用程序的行为正常 这是使用UI的类的标头: #ifndef DARLEHENSRECHNER_H #define DARLEHENSRECHNER_H #include <QMainWindow> #include "Darlehensgeber.h" namespace Ui { class Darl

每次我单击我在UI设计器中添加的QPushButton时,按钮都会保持单击状态,应用程序就会崩溃。当我移除按钮的“clicked()”信号所连接的插槽时,我可以单击按钮,应用程序的行为正常

这是使用UI的类的标头:

#ifndef DARLEHENSRECHNER_H
#define DARLEHENSRECHNER_H

#include <QMainWindow>
#include "Darlehensgeber.h"

namespace Ui {
    class Darlehensrechner;
}

class Darlehensrechner : public QMainWindow
{
    Q_OBJECT

    public:
        explicit Darlehensrechner(QWidget *parent = 0);
        ~Darlehensrechner();

private slots:
    void on_berechnenButton_clicked();

private:
        Ui::Darlehensrechner *ui;
        Darlehensgeber dg;
};

#endif // DARLEHENSRECHNER_H

除了可疑的
releaseMouse()
(你想做什么?)用户界面代码看起来还不错。您的崩溃可能发生在
dg.takeLoan
(或对
dg
方法的其他调用)中,使用调试器精确定位位置。这只是试图解决问题。我将删除它。在您的
takeLoan
中,您不是碰巧被0除的吗?不,没有被0除的情况。但是谢谢你的建议。发现调试器有问题,我在takeLoan中有一个无休止的循环。谢谢你的帮助
#include "darlehensrechner.h"
#include "ui_darlehensrechner.h"

Darlehensrechner::Darlehensrechner(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Darlehensrechner),
    dg()
{
    ui->setupUi(this);
}

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

void Darlehensrechner::on_berechnenButton_clicked()
{
    dg.takeLoan(ui->kreditEdit->text().toFloat(),
                ui->ratenEdit->text().toFloat(),
                ui->zinsEdit->text().toFloat());

    ui->dauerLabel_2->setText(QString::number(dg.getAmountOfInstallments()));
    ui->betragLabel_2->setText(QString::number(dg.getAmount()));
}