Такая ситуация...
Приложение построено на базе MDI.
При открытии документа создается дочернее окно на workspace (описанное в отдельном классе).
На дочернем окне лежит виджет, который тоже описан в отдельном классе. В какой-то момент необходимо некоторое значение из этого виджета передать в главную форму на statusbar.
Создание statusbar в MainWindow.cpp:
C++ (Qt)
sbMain = new QStatusBar(this);
lbMessage = new QLabel(this);
sbMain->addWidget(lbMessage, 1);
Отдаю значение из виджета следующим образом:
C++ (Qt)
#include "mainwindow.h"
...
void BiContent::mousePressEvent(QMouseEvent * me)
{
((MainWindow *)((DocWindow *)parent())->parent())->lbMessage->setText("Checking...");
}
В данном месте происходит Core dump...
Что интересно, если вызывать
функцию главного окна
C++ (Qt)
((MainWindow *)((DocWindow *)parent())->parent())->setStatusMessage("Checking...");
сообщение отсылается, но (!), если функция в главном окне такая:
C++ (Qt)
void MainWindow::setStatusMessage(QString str)
{
qDebug(str);
}
Консоль текст печатает. А если так:
C++ (Qt)
void MainWindow::setStatusMessage(QString str)
{
lbMessage->setText(str);
}
Опять вылетает с Core dump!!!
Помогите.