Может ли главное окно QWidget .h быть включено в его дочерний класс виджетов? - PullRequest
0 голосов
/ 30 января 2019

Я поместил виджет с именем 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?Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...