когда я пытаюсь получить доступ к интерфейсу извне конструктора, я получаю сигнал SIGSEGV
ошибка в нижней строке в файле cpp
внизу функции prepareQuestions
Я попытался уменьшить его до минимально возможного кода:
Заголовок:
#ifndef QUESTIONSDIALOG_H
#define QUESTIONSDIALOG_H
#include <QDialog>
#include <QHash>
#include "question.h"
namespace Ui {
class QuestionsDialog;
}
class QuestionsDialog : public QDialog
{
Q_OBJECT
public:
explicit QuestionsDialog(QWidget *parent = 0);
~QuestionsDialog();
void prepareQuestions(QString category);
private:
Ui::QuestionsDialog *ui;
QHash<QString, Question>* questions; //question id + question object
};
#endif // QUESTIONSDIALOG_H
cpp файл:
#include <QtDebug>
#include "questionsdialog.h"
#include "ui_questionsdialog.h"
#include "question.h"
QuestionsDialog::QuestionsDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::QuestionsDialog)
{
ui->setupUi(this);
ui->lbl_question1->setText(QString("this is the constructor")); //works
ui->txt_input1->setText(QString("this is the constructor")); //works
}
QuestionsDialog::~QuestionsDialog()
{
delete ui;
}
void QuestionsDialog::prepareQuestions(QString category){
ui->lbl_question1->setText(QString("this is prepareQuestions method")); //doesn't work
// ui->txt_input1->setText(QString("test1")); //creates an exception (no error message)
}
где я строю в основном
QStackedWidget *dialogStack = new QStackedWidget;
dialogStack->addWidget(new LoginDialog()); //index 0
dialogStack->addWidget(new CallDialog()); //index 1
dialogStack->addWidget(new CategoryDialog()); //index 2
dialogStack->addWidget(new QuestionsDialog()); //index 3
dialogStack->setCurrentIndex(0);
где я вызываю QuestionDialog, чтобы быть сверху:
QStackedWidget* dialogStack = (QStackedWidget*)this->parentWidget();
QuestionsDialog* questionDialog = ((QuestionsDialog*)dialogStack->widget(1));
//set type of call + properties
dialogStack->setCurrentIndex(3);
questionDialog->prepareQuestions(((QToolButton*)obj)->statusTip());
графический интерфейс, когда закомментирована строка ошибки (обратите внимание, что изменение lbl_question1 не работает)
![http://i77.photobucket.com/albums/j74/bertyhell/gui.png](https://i.stack.imgur.com/MPDNL.png)
ошибка при использовании отладчика: