#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, я только что потерял час жизни для отладки такого простого решения.