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

Add QGraphicsView on form from another class

本文关键字:添加 QGraphicsView 表单 另一个      更新时间:2023-10-16

我有一个 MainWindow 类和另一个类。 另一个类有方法 createView,可以创建新的QGraphicsView我从 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();
}

但是效果并不好...实际上它根本不起作用。是的,我将指针保存在另一个类中的 MainWindow 对象上作为 mainWindow,我从另一个类构造函数中获取。如果使用

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)) {
       ...
       QGraphicsView *gv= new QGraphicsView(this); 
       gv->show();
       ...
}

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

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