我在QMainWindow中放置了一个名为myWiget
的小部件。 myWidget被提升为名为PaintImage
(PaintImage *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
成员吗?预先感谢!