QWidget mainwindow .h可以包含在其子窗口小部件类中吗?

时间:2019-01-30 14:38:41

标签: qt

我在QMainWindow中放置了一个名为myWiget的小部件。 myWidget被提升为名为PaintImagePaintImage *myWidget)的类。在这里,我要做的是在PaintImage的子小部件myWidget中绘制图像,其中调用了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成员吗?预先感谢!

0 个答案:

没有答案