我用MainWindow
和QStackedWidget
制作了QMenuBar
。我的一个小部件包含一个QGraphicsView
,我将其提升为自定义QGraphicsView
(DrawingView
)。我想将menuBar的QActions
连接到我的自定义DrawingView
。
我设法使连接到小部件的QActions
正常工作,但我不知道如何从DrawingView
访问方法。
这是我用于其他QActions
的代码:
draw = qobject_cast<Drawing*>(ui->stackedWidget->widget(1));
connect(ui->actionOpen, &QAction::triggered, draw, &Drawing::openPhoto);
connect(ui->actionSave, &QAction::triggered, draw, &Drawing::saveFile);
connect(ui->actionExit, &QAction::triggered, draw, &Drawing::close);
我为DrawingView尝试过此操作,但我知道它只是制作了一个新的DrawingView,而不是使用Draw ui中的那个。
drawView = new DrawingView();
connect(ui->actionZoom_In, &QAction::triggered, drawView, &DrawingView::zoomIn);
connect(ui->actionZoom_Out, &QAction::triggered, drawView, &DrawingView::zoomOut);
我也尝试过,这在ui-> stackedWidget-> widget(1)-> graphicsView中给出了错误:
drawView = qobject_cast<DrawingView*>(ui->stackedWidget->widget(1)->graphicsView); //also tried (ui->stackedWidget->widget(1)->ui->graphicsView)
connect(ui->actionZoom_In, &QAction::triggered, drawView, &DrawingView::zoomIn);
connect(ui->actionZoom_Out, &QAction::triggered, drawView, &DrawingView::zoomOut);
有关如何从MainWindow连接或如何访问2nd小部件内MainWindow的用户界面的任何帮助。