Qt窗⼝是通过QMainWindow类来实现的。
QMainWindow是⼀个为⽤⼾提供主窗⼝程序的类,继承⾃QWidget类,并且提供了⼀个预定义的布局。QMainWindow包含⼀个菜单栏(menu bar)、多个⼯具栏(tool bars)、多个浮动窗⼝(铆接部件)(dock widgets)、⼀个状态栏(status bar) 和⼀个中⼼部件(central widget),它是许多应⽤程序的基础,如⽂本编辑器,图⽚编辑器等。如下图为QMainwindow中各组件所处的位置:
![![[Pasted image 20250422194731.png]]](https://i-blog.csdnimg.cn/direct/2465deadc580438fbb081f92347f7df2.png)
菜单栏
Qt中的菜单栏是通过QMenuBar这个类来实现的。⼀个主窗⼝最多只有⼀个菜单栏。位于主窗⼝顶部、主窗⼝标题栏下⾯。
菜单栏中包含菜单.菜单中包含菜单项.
![![[Pasted image 20250422194805.png]]](https://i-blog.csdnimg.cn/direct/b8eeb9801e4847e9a3440cbe5373ffe7.png)
菜单:QMenu
菜单栏:QMenuBar
菜单项:QAction
![![[Pasted image 20250422200011.png]]](https://i-blog.csdnimg.cn/direct/bed00f1a35094e5dae27755479557738.png)
可以通过图形方式添加菜单栏和菜单项
![![[Pasted image 20250422200348.png]]](https://i-blog.csdnimg.cn/direct/11a24a9940a34e15af655e3f21665518.png)
对象树
![![[Pasted image 20250422200621.png]]](https://i-blog.csdnimg.cn/direct/971daa9f0b364f049d10006e914f2f89.png)
创建菜单栏
⽅式⼀:菜单栏的创建可以借助于QMainWindow类提供的menuBar()函数来实现。menubar()函数原型如下:
QMenuBar* menuBar = new QMenuBar();
this->setMenuBar(menuBar);
⽅式⼆:在堆上动态创建;
QMenuBar* menuBar = new QMenuBar(this);
this->setMenuBar(menuBar);
使⽤ setMenuBar 把菜单栏放到窗⼝中.
在菜单栏中添加菜单
创建菜单,并通过 QMenu 提供的 addMenu() 函数来添加菜单。
//创建一个菜单栏
QMenuBar* menuBar = new QMenuBar();
this->setMenuBar(menuBar);
//创建菜单
QMenu* menu1 = new QMenu("文件");
QMenu* menu2 = new QMenu("编辑");
QMenu* menu3 = new QMenu("视图");
menuBar->addMenu(menu1);
menuBar->addMenu(menu2);
menuBar->addMenu(menu3);
创建菜单项
在Qt中,并没有专⻔的菜单项类,可以通过 QAction 类,抽象出公共的动作。如在菜单中添加菜单项.
QAction可以给菜单栏使⽤,也可以给⼯具栏使⽤.
//添加菜单项
QAction* action1 = new QAction("新建");
QAction* action2 = new QAction("打开");
QAction* action3 = new QAction("保存");
QAction* action4 = new QAction("另存为");
QAction* action5 = new QAction("退出");
menu1->addAction(action1);
menu1->addAction(action2);
menu1->addAction(action3);
menu1->addAction(action4);
menu1->addAction(action5);
在菜单项之间添加分割线
在

最低0.47元/天 解锁文章
4972

被折叠的 条评论
为什么被折叠?



