Qt 窗⼝


Qt 窗⼝ 是通过 QMainWindow类 来实现的。
QMainWindow 是⼀个为⽤⼾提供主窗⼝程序的类,继承⾃ QWidget类,并且提供了⼀个预定义的布局。QMainWindow 包含 ⼀个菜单栏(menu bar)、多个⼯具栏(tool bars)、多个浮动窗⼝(铆接部件(dockwidgets)、⼀个状态栏(status bar)和⼀个 中⼼部件(central widget),它是许多应⽤程序的基础,如⽂本编辑器,图⽚编辑器等。如下图为 QMainwindow 中 各组件所处的位置:

在这里插入图片描述

菜单栏

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

菜单栏中包含菜单. 菜单中包含菜单项
在这里插入图片描述

创建菜单栏

⽅式⼀:菜单栏的创建可以借助于 QMainWindow类提供的 menuBar() 函数来实现。menubar()函数原型如下:

    //创建菜单栏
    QMenuBar *menubar=menuBar();
    //将菜单栏放入窗口中
    this->setMenuBar(menubar);

⽅式⼆:在堆上动态创建;

    //创建菜单栏
    QMenuBar *menubar=new QMenuBar(this);
    //将菜单栏放入窗口中
    this->setMenuBar(menubar);

在菜单栏中添加菜单

创建菜单,并通过 QMenu 提供的 addMenu() 函数 来添加菜单

    //创建菜单
    QMenu* menu1=new QMenu("文件");
    QMenu* menu2=new QMenu("编辑");
    QMenu* menu3=new QMenu("查看");
    //将菜单添加到菜单栏中
    menubar->addMenu(menu1);
    menubar->addMenu(menu2);
    menubar->addMenu(menu3);

创建菜单项

在 Qt 中,并没有专⻔的菜单项类,可以通过 QAction 类,抽象出公共的动作

    //创建菜单项
    QAction*action1=new QAction("open");
    QAction*action2=new QAction("close");
    QAction*action3=new QAction("create");
    //将菜单项添加到菜单上
    menu1->addAction(action1);
    menu1->addAction(action2);
    menu1->addAction(action3);

运行结果
在这里插入图片描述

在菜单项之间添加分割线

在菜单项之间可以添加分割线。添加分割线是通过 QMenu 类 提供的
addSeparator() 函数来实现
在这里插入图片描述

在这里插入图片描述

综合⽰例

在窗⼝上创建⼀个菜单栏,在菜单栏中添加⼀些菜单,在某⼀个菜单中添加⼀些菜单项。

  1. 新建 Qt 项⽬
    在这里插入图片描述

  2. 在 “mainwindow.cpp” ⽂件中创建菜单和中央控件
    创建⼀个菜单栏, ⼀个菜单.
    两个菜单项: 保存, 加载
    创建⼀个 QTextEdit 作为窗⼝的中央控件
    在这里插入图片描述

  3. 给 action 添加⼀些动作
    在这里插入图片描述
    实现这两个槽函数
    使⽤ QFileDialog 来实现选择⽂件的效果:getSaveFileName ⽤于保存⽂件的场景. 此时的对话框可以输⼊⽂件名;getOpenFileName ⽤于打开⽂件的场景. 此时的对话框可以获取到⿏标选择的⽂件名
    在这里插入图片描述
    在这里插入图片描述
    执⾏程序, 可以看到此时就可以通过程序来保存/加载⽂件了. 并且对⽂件进⾏编辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值