在另一个类的表单上添加 QGraphicsView

Posted

技术标签:

【中文标题】在另一个类的表单上添加 QGraphicsView【英文标题】:Add QGraphicsView on form from another class 【发布时间】: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();
       ...

它可以正常工作,但这个解决方案并不让我满意。

【问题讨论】:

第一个示例中发布的代码根本无法编译 - 对象是在堆上还是在堆栈上创建的? 哦,谢谢。我的错误是在堆栈上创建变量 这两段代码应该同样有效。问题似乎出在其他地方。 【参考方案1】:

问题在于在堆栈上创建变量。

【讨论】:

以上是关于在另一个类的表单上添加 QGraphicsView的主要内容,如果未能解决你的问题,请参考以下文章

如何在Qgraphicsview上使用QPainter绘图

调整大小时 QGraphicsView 中项目位置的边距

如何去除QGraphicsView&Scene上添加的QPushButton的边界线

如何在 QGraphicsView 上添加效果?

动态填充后在另一个(未绑定的)表单中显示表单

如何搜索子表单并使用数据在另一个子表单中添加记录