【发布时间】:2013-12-17 18:59:54
【问题描述】:
我有一个 MainWindow 类和 Another 类。 Another 类具有创建新 QGraphicsView 的方法 createView。我从 MainWindow 调用此方法,并且我还想在我的表单上布局此视图。它看起来像:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)) {
...
AnotherClass object(this);
object.createView();
...
}
...
void AnotherClass::createView() {
QGraphicsView *gv= new QGraphicsView(mainWindow); // mainWindow - pointer to MainWindow object
gv->show();
}
但它并没有那么好......实际上它根本不起作用。是的,我将 Another 类中 MainWindow 对象上的指针保存为 mainWindow,这是我从 Another 类构造函数中获取的。 如果使用
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)) {
...
QGraphicsView *gv= new QGraphicsView(this);
gv->show();
...
}
它可以正常工作,但这个解决方案并不让我满意。
【问题讨论】:
-
第一个示例中发布的代码根本无法编译 - 对象是在堆上还是在堆栈上创建的?
-
哦,谢谢。我的错误是在堆栈上创建变量
-
这两段代码应该同样有效。问题似乎出在其他地方。
标签: c++ qt qgraphicsview qmainwindow