QT如何实现mainwindow点击QMenu打开单独的新页面而不是跳转新页面,且不要使用QAction
时间: 2024-02-09 18:13:12 浏览: 84
QT学习之路(适合新手)
3星 · 编辑精心推荐
要实现该功能,可以在`QMenu`中添加一个`QAction`,然后在该`QAction`的`triggered`信号中打开一个新的窗口。代码示例如下:
```cpp
// 在MainWindow的构造函数中添加以下代码
QMenu *menu = new QMenu("My Menu", this);
menu->addAction("Open New Window");
connect(menu, &QMenu::triggered, this, [=](QAction *action){
if (action->text() == "Open New Window") {
// 创建并打开一个新的窗口
QWidget *newWindow = new QWidget();
newWindow->show();
}
});
QMenuBar *menuBar = new QMenuBar(this);
menuBar->addMenu(menu);
setMenuBar(menuBar);
```
在该代码中,我们创建了一个名为`My Menu`的`QMenu`,并向其中添加了一个名为`Open New Window`的`QAction`。然后在`QMenu`的`triggered`信号中,判断触发信号的`QAction`是否为`Open New Window`,若是,则创建并打开一个新的窗口`newWindow`。
最后,我们将`QMenu`添加到`QMenuBar`中,使其显示在`MainWindow`的顶部菜单栏中。
阅读全文