Qt之窗口

目录

Qt窗口简介:

菜单栏 

⼯具栏

状态栏

浮动窗⼝ 

对话框 

Qt内置对话框

1.消息对话框QMessageBox 

2.颜⾊对话框QColorDialog 

3.⽂件对话框QFileDialog 

4.字体对话框QFontDialog 

5.输⼊对话框QInputDialog 

总结 

接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧

Qt窗口简介:

Qt窗⼝是通过QMainWindow类来实现的。 QMainWindow是⼀个为⽤⼾提供主窗⼝程序的类,继承⾃QWidget类,并且提供了⼀个预定义的 布局。QMainWindow包含⼀个菜单栏(menubar)、多个⼯具栏(toolbars)、多个浮动窗⼝(铆 接部件)(dockwidgets)、⼀个状态栏(statusbar)和⼀个中⼼部件(centralwidget)

菜单栏 

Qt 中的菜单栏是通过QMenuBar这个类来实现的。⼀个主窗⼝最多只有⼀个菜单栏。位于主窗⼝顶 部、主窗⼝标题栏下⾯。

菜单栏中包含菜单.菜单中包含菜单项.

代码实例:在窗⼝上创建⼀个菜单栏,在菜单栏中添加⼀些菜单,在某⼀个菜单中添加⼀些菜单项。

注意:此时新建项⽬时选择的基类 QMainwindow

 通过图形化界面的方式

通过代码的方式:

 

(1)给菜单设置快捷键 

设置好的快捷键需要搭配alt来进行使用

(2) 给菜单项设置快捷键

(3) 添加子菜单

 QMenuBar可以通过addMenu添加菜单的

QMenu也提供了addMenu,通过这个操作给某个菜单项添加子菜单

(4) 添加分割线

菜单里菜单项特别多时,就可以通过分割线进行分组

QMenu中提供了addSeparator这样的函数

(5) 添加图标

如果给QMenu设置图标,当前QMenu是长在QMenuBar上的,此时文本就不显示,图标覆盖了文本

(6) 关于QMenuBar创建方式的讨论

如果我们创建的项目,没有勾选自动生成ui文件时,此时上述代码是没有问题的

如果勾选了自动生成ui文件,上述代码就会引起内存泄露

在自动生成的ui文件中,Qt已经生成了一个QMenuBar了

这是当设置新的QMenuBar进来的时候,就会导致旧的QMenuBar脱离Qt的对象树了,意味着后续就无法对这个对象进行释放了

上述程序如果窗口关闭,对象树释放,此时进程就结束了,自然所有内存都回收给系统,上述内存泄露就不会造成影响

但是如果这样的代码 是出现在一个多窗口的程序中,如果涉及到窗口频繁跳转切换,就会导致内存泄露更严重一些

这是采用这样的写法,当QMenuBar已经存在,直接获取并返回;当QMenuBar不存在,就会创建一个新的再返回

如果是获取到已经存在的QMenuBar,这里的设置就是自己替换自己,即还是自己,仍然在对象树上

⼯具栏

⼯具栏是应⽤程序中集成各种功能实现快捷键使⽤的⼀个区域。可以有多个,也可以没有,工具栏可以手动移动位置

添加菜单栏,使用的是setMenuBar,菜单栏只能有一个,重复设置,新的替换旧的(set就包含"替换"的意思)

添加工具栏,使用的是addToolBar,工具栏可以有多个,重复设置,就会出现多个工具栏,不包含替换

(1)创建⼯具栏

这里一条条的就是工具栏,需要给工具栏添加菜单项QAction

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值