QTmaindow实现点击菜单栏打开新页面
时间: 2024-02-20 16:00:30 浏览: 23
在 Qt 中,可以使用 QDialog 或 QMainWindow 来实现新的窗口。具体步骤如下:
1. 在主窗口中添加菜单栏,添加菜单和菜单项。
2. 连接菜单项的 triggered 信号到相应的槽函数中,在槽函数中创建新的窗口并显示出来。
下面是一个简单的示例代码:
```
// MainWindow.h
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
private slots:
void openNewWindow();
private:
// ...
};
// MainWindow.cpp
#include "MainWindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDialog>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// ...
// 创建菜单栏
QMenuBar *menuBar = new QMenuBar(this);
setMenuBar(menuBar);
QMenu *menu = new QMenu("Menu", this);
menuBar->addMenu(menu);
QAction *action = new QAction("Open New Window", this);
menu->addAction(action);
connect(action, &QAction::triggered, this, &MainWindow::openNewWindow);
}
void MainWindow::openNewWindow()
{
QDialog *dialog = new QDialog(this);
dialog->setWindowTitle("New Window");
dialog->exec();
}
```
在这个示例中,我们在菜单栏中添加了一个菜单项“Open New Window”,点击菜单项会打开一个新的 QDialog 窗口。如果你想打开一个 QMainWindow 窗口,可以将创建对象改为 QMainWindow。在槽函数中,我们创建了一个 QDialog 对象,设置窗口标题为“New Window”,然后使用 exec 函数显示出来。这个新窗口将会是模态对话框,即在它关闭之前,主窗口中的其他部件将不能使用。