我想在课堂以外访问QgraphicsView的场景。当我创建一个从QGraohicsView派生的类时,我通常可以这样做,但是此类是从QMainWIndow派生的MainWindow,并且我可以扩展QGraphicsView,因为当您将.show()方法作为编译器调用时存在冲突不知道选择哪一个。在课堂以外访问
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{}
所以我创建的QGraphicsView的新实例,并予以公布,并Qgraphicsscene并予以公布。
然后在外部类
extern MainWindow * mainwindow
但是当我试图访问它,我得到一个未定义的引用错误。
mainwindow->view->scene()->addItem(item); or
mainwindow->mainwindow.scene->addItem(item);
它们都不工作。 我知道它的破坏封装,但在这种情况下没有其他解决方法。
**我想要做的是在类的外部访问QgraphicsView的场景?
**主窗口具有公共变量
QGraphicsScene *scene;
QGraphicsView * view;
在MainWindow.cpp
scene = new QGraphicsScene(this);
view = new QGraphicsView(scene);
view.show();
多重继承。 C++中的一个知识。 – Olaf
抱歉,我并不是想要添加c,habbits :( –
)告诉我们你想解决什么问题。不要问如何使非工作解决方案工作 - 你现在明显知道他们不工作。 't很明白你的问题是什么,显然'mainwindow-> view'不会工作,因为你的'MainWindow'类没有这个名字的成员,所以首先显示真正的代码! –