Ошибка ошибки сегментации в setupUi()

#c #qt #debugging #segmentation-fault #qt-creator

#c #qt #отладка #ошибка сегментации #qt-creator

Вопрос:

Я создал проект в Qt. Я создал дизайн, запрограммированный в Qt Creator. Все работало нормально, но теперь я все время вижу Segmentation fault ошибку в ui->setupUi(this) методе в моей основной форме. Я знаю, в чем причина этой проблемы. Я попытался поискать в Интернете, но не нашел ничего полезного. Я также прокомментировал свои недавние изменения — без положительного результата… Ниже я публикую код .cpp файла моей основной формы:

 #include "apgmain.h"
#include "ui_apgmain.h"
#include "stdlib.h"
#include "QRegExp"
#include "errorvaldialog.h"

APGMain::APGMain(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::APGMain)
{
    ui->setupUi(this); //This line causes error!!!
}

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

void APGMain::on_pushButton_clicked()
{
    //Exit-button
    std::exit(0);
}

void APGMain::on_pushButton_2_clicked()
{
    //Generate-button
    bool temp = true;
    QString tempStr = ui->lineEdit->text();
    int minlength = tempStr.toInt(amp;temp);
    if(tempamp;amp;minlength>0amp;amp;minlength<129)
    {

    }
    else
    {
        ErrorValDialog* errorval = new ErrorValDialog(this);
        errorval->show();
        return;
    }
}

void APGMain::on_comboBox_currentIndexChanged(const QString amp;arg1)
{
    if(arg1 == "random password generation")
    {

    }

    else
    {

    }

}
  

apgmain.h :

 #ifndef APGMAIN_H
#define APGMAIN_H

#include <QMainWindow>

namespace Ui {
class APGMain;
}

class APGMain : public QMainWindow
{
    Q_OBJECT

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

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

    void on_comboBox_currentIndexChanged(const QString amp;arg1);

private:
    Ui::APGMain *ui;
};

#endif // APGMAIN_H
  

Любые подсказки будут очень оценены. Простая отладка мне ничего не дает.

Комментарии:

1. Я вижу утечку памяти в on_pushButton_2_clicked() , но ни один из показанных вами кодов не приведет к вашему сбою в сегментации. Что вы узнали из отладки этого segfault?

2. не могли бы вы показать нам реализацию setupUi, пожалуйста?

3. @thurizas Я не реализовал эту функцию. Она генерируется автоматически

4. Знаете ли вы причину этой ситуации?

5. @Ty221, я знаю, что setupUi автоматически генерируется uic, просто хотел проверить, были ли в нем какие-либо проблемы. Кроме того, вы сказали, что все работает нормально, и теперь у вас возникла эта проблема. Вы помните, что вы делали между тем, когда «все работало нормально», и сейчас?

Ответ №1:

Вы должны попытаться очистить, а затем заново собрать свой проект.
Иногда QtCreator сходит с ума и появляется эта проблема, поэтому вам нужно сделать это вручную.
Также вы можете попробовать выполнить qmake . Для этого просто выберите это, просто перейдите на вкладку Сборки в строке меню и выберите «запустить qmake» (или очень похожий smith, он будет размещен внизу).
Надеюсь, это поможет.

Комментарии:

1. это должно быть упомянуто в самом QT, я только что потерял час жизни для отладки такого простого решения.