C++Qt实现在Qwidget中有四个菜单栏,点击每个菜单栏,在每个菜单栏下显示对应的窗口
时间: 2024-05-10 20:17:39 浏览: 196
实现这个功能,可以按照以下步骤:
1. 在Qt中创建一个QWidget窗口,并在该窗口中添加QMenuBar控件。
2. 在QMenuBar控件中添加四个QMenu控件,分别对应四个菜单栏。
3. 在每个QMenu控件中添加QAction控件,用于触发对应的窗口。
4. 创建四个QWidget窗口,分别对应四个菜单栏下显示的窗口。
5. 在QAction控件的triggered()信号槽中,判断当前触发的QAction控件是哪个,然后显示对应的QWidget窗口。
具体实现代码如下:
```
// 创建主窗口
QWidget *mainWindow = new QWidget;
// 创建菜单栏
QMenuBar *menuBar = new QMenuBar(mainWindow);
// 创建四个菜单
QMenu *menu1 = new QMenu("菜单1", menuBar);
QMenu *menu2 = new QMenu("菜单2", menuBar);
QMenu *menu3 = new QMenu("菜单3", menuBar);
QMenu *menu4 = new QMenu("菜单4", menuBar);
// 添加菜单栏
menuBar->addMenu(menu1);
menuBar->addMenu(menu2);
menuBar->addMenu(menu3);
menuBar->addMenu(menu4);
// 创建四个Action
QAction *action1 = new QAction("窗口1", mainWindow);
QAction *action2 = new QAction("窗口2", mainWindow);
QAction *action3 = new QAction("窗口3", mainWindow);
QAction *action4 = new QAction("窗口4", mainWindow);
// 添加Action到对应的菜单中
menu1->addAction(action1);
menu2->addAction(action2);
menu3->addAction(action3);
menu4->addAction(action4);
// 创建四个窗口
QWidget *window1 = new QWidget;
QWidget *window2 = new QWidget;
QWidget *window3 = new QWidget;
QWidget *window4 = new QWidget;
// 在Action的triggered()信号槽中显示对应的窗口
connect(action1, &QAction::triggered, [window1](){
window1->show();
});
connect(action2, &QAction::triggered, [window2](){
window2->show();
});
connect(action3, &QAction::triggered, [window3](){
window3->show();
});
connect(action4, &QAction::triggered, [window4](){
window4->show();
});
// 设置主窗口布局
QVBoxLayout *layout = new QVBoxLayout(mainWindow);
layout->addWidget(menuBar);
mainWindow->setLayout(layout);
// 显示主窗口
mainWindow->show();
```
阅读全文