当前位置: 首页 > news >正文

关于Qt主窗口的菜单部件

前言

        在介绍主窗口的两大部件之前,我们要先知道关于主窗口的一些知识。


主窗口 

        一个主窗口可以没有菜单条、工具条、状态条,但必须设置中心部件。在 Q 生成的 C++头文件 ui_mainwindow.h 代码中,我们可以看到以下代码:

centralWidget = new Qwidget(MainWindow);
centralWidget -> setObjectName(Qstring::fromUtf8("centralwidget"));
MainWindow -> setCentralwidget(centralWwwidget);

        主窗口的框架看起来有点复杂,在 Qt Designer 中,一般不必太关心它的实现,Qt 在生成过程中,会自动编译在头文件 ui_mainwindow.h代码中,只需关心自己建立的窗口部件即可。

主窗口的标题 

        修改主窗口的标题有两种方法:一是在ui设计模式中:在设计模式界面右上角的对象面板中,选择MainWindow选项,然后在右下角的属性面板中,选择windowTitle属性修改。

二是自己添加代码:

打开MainWindow.cpp添加:

#include<QTextCodec>

在MainWindow的构造函数中:

Mainwindow::Mainwindow(QWidget *parent):
QMainwindow(parent)
ui(new Ui::Mainwindow)
{
ui->setupui(this);
//设置中文字符
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForTr(QTextCodec::codecForName ("GB2312"));
this->setwindowTitle("我修改了窗口标题");
}

主窗口的图标 

        如果想要给主窗口添加图标,可以从资源文件中来进行选择,在对其他部件或者对象添加图标的时候大多都是在资源文件中进行选择:

1.从文件菜单中选择新建文件或工程(New File or Project)菜单项,在“新建”界面中选择 Qt Resource file 选项:

2. 在工程面板中,打开资源文件 tubiao.qrc,单击 Add 按钮,选择加人前缀“/”:

3.选择添加文件。选择logo.png,图标 logo.jpg 添加到资源文件中:

4.进人设计模式,在窗口属性中,选择 Windowlcon,打开资源选择对话框,单击左上角刷新资源按钮,选择确定图标。

主窗口的基本操作

        在了解到如何设置了标题和图标之后,我们来了解一下关于主窗口的一些基本操作函数

  • close():关闭当前窗口,如果是主窗口同时退出程序。
  • hide():隐藏当前窗口,该操作等同于 setVisible(false)。
  • rect():返回当前窗口内部的区域。
  • resize(const QSize &.)/resize(int,int):调整窗口的大小。
  • setAutoFillBackground(bool):设置自动填充窗口背景,当输人值为 true 时,该操作用窗口的默认值刷新窗口背景;为 false时,不重绘窗口背景。该操作在自定义窗口背景和绘图时很有用。
  • setCentralWidget(QWidget *):设置中心部件。窗口默认的中心部件是QWidget,用户如果想用其他部件替换,可以在 MainWindow 的构造函数中调用此操作。
  • setWindowState(Qt::WindowStates):设置窗口的状态,包括设置窗口为最大化最小化、全屏和活动状态。
  • setWindowTitle(const QString &):设置窗口的标题。
  • show():显示窗口。
  • showFullScreen():全屏显示窗口。
  • showMaximized():最大化显示窗口。
  • showMinimized():最小化显示窗口。
  • showNormal():窗口正常大小显示。
  • update()/update (int, int, int, int)/update (const QRect &.)/update (constQRegion &.):更新窗口的显示,调用该操作后,窗口执行 paintEvent 操作。

菜单

普通版本菜单

        菜单栏为一种树形结构,单击以后即可显示出菜单项,通过菜单项为软件的大多数功能提供功能入口。在ui界面上可以快速设计一个菜单栏(图标添加和上文方法相同):

        并且对每一个选项跳转槽函数进行编辑:

        选择菜单后,在ui界面下方右键单击选项对槽函数进行编辑:

void MainWindow::on_open_action_triggered()
{QMessageBox::information(this,"提示","你点击了打开");
}void MainWindow::on_save_action_triggered()
{QMessageBox::information(this,"提示","你点击了保存");
}void MainWindow::on_quit_action_triggered()
{this->close();
}

 

 弹出式菜单

        了解了如何设计菜单和编写菜单代码,弹出式菜单操作就很简单了。首先重载主窗口的 void mousePressEvent(QMouseEvent * event)操作,响应窗口中的鼠标右键信息。然后,在 void mousePressEvent(QMouseEvent *event)操作中,直接在需要单击的位置弹出已经建立的菜单即可,下面的代码给出了上述两种菜单的弹出显示方法:

1.在头文件中增加操作声明:

void mousePressEvent(QMouseEvent *event);

 2.源文件中增加包含文件和 mousePressEvent 操作的实现:

#include<QMouseEvent>.....void MainWindow::mousePressEvent(OMouseEvent * event){//右键显示自己编码生成的菜单if(event->button()==Qt::RightButton){aboutMenu->popup(event->globalPos());}//左键显示 QtDesigner 生成的菜单if(event->button()==Qt::LeftButton){ui->menu->popup(event->globalPos());}   }

希望各位大佬一起交流学习,我也会回访各位大佬的空间的!!!

http://www.lryc.cn/news/340520.html

相关文章:

  • rabbitmq每小时自动重启
  • 【多线程】单例模式 | 饿汉模式 | 懒汉模式 | 指令重排序问题
  • 00_Qt概述以及如何创建一个QT新项目
  • git报错
  • 【R: mlr3:超参数调优】
  • 使用Pandas实现股票交易数据可视化
  • 蓝桥杯刷题-乌龟棋
  • 美国纽扣电池认证标准要求16 CFR 第 1700和ANSI C18.3M标准
  • 华硕ROG幻16笔记本电脑模式切换管理工具完美替代华硕奥创中心管理工具
  • 【ROS2笔记六】ROS2中自定义接口
  • 设计模式-代理模式(Proxy)
  • 中伟视界:智慧矿山智能化预警平台功能详解
  • 如何在PPT中获得网页般的互动效果
  • HTML段落标签、换行标签、文本格式化标签与水平线标签
  • NVIC简介
  • LeetCode-924. 尽量减少恶意软件的传播【深度优先搜索 广度优先搜索 并查集 图 哈希表】
  • 【linux】yum 和 vim
  • excel试题转word格式
  • C语言学习笔记之指针(二)
  • 在Debian 12系统上安装Docker
  • 策略者模式(代码实践C++/Java/Python)————设计模式学习笔记
  • vue2/Vue3项目中,通过请求接口来刷新列表中的某个字段(如:Axios)
  • Java多线程锁定
  • 【C 数据结构】单链表
  • [MAUI]集成富文本编辑器Editor.js至.NET MAUI Blazor项目
  • Spring Boot | Spring Boot 整合 “Servlet三大组件“ ( Servlet / Filter / Listene )
  • 错误分析 (Machine Learning研习十九)
  • SQL系统函数知识点梳理(Oracle)
  • 面试突击---MySQL索引
  • 关注 | 我国已对百种产品实施强制性产品认证