Я поместил виджет с именем myWiget
в QMainWindow.MyWidget повышен до класса с именем PaintImage
(PaintImage *myWidget
).Здесь я собираюсь нарисовать изображение во вспомогательном виджете myWidget
с помощью PaintImage, в котором вызывается метод painter
.
В PaintImage.h
у меня есть #include "mainwindow.h"
и объявляется MainWindow *main
.Я использую указатель main
для доступа к определенным там интересующим переменным, например:
int w = ui->myWidget->geometry().width();
int h = ui->myWidget->geometry().height();
Затем в paintimage.cpp
:
PaintImage::PaintImage(QWidget *parent) : QWidget(parent)
{
//these lines of codes cause the problem!
int w = main->w;
int h = main->h;
.......
}
void PaintImage::paintEvent(QPaintEvent * /*event*/)
{
//QPainter painter is called inside
}
Компиляция кодов показывает, что:
The program has unexpectedly finished.
The process was ended forcefully.
В чем причина проблемы?Не могу ли я получить доступ к MainWindow
членам из PaintImage
?Заранее спасибо!