QStackedWidget将QAction连接到QWidget的自定义QGraphicsView

问题描述 投票:0回答:1

我用MainWindowQStackedWidget制作了QMenuBar。我的一个小部件包含一个QGraphicsView,我将其提升为自定义QGraphicsViewDrawingView)。我想将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的用户界面的任何帮助。

qt qt5 qgraphicsview qaction qstackedwidget
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.