很久之前学习的Qt菜单栏的消息响应,昨天发现忘记了,今天又拿起来了,记一下笔记:

就像平常我们常用的软件一样,每个程序基本都有菜单栏,在菜单栏中有很多功能性的按钮,点击这些按钮会弹出有对应的菜单功能,


首先要明白:菜单栏必须有相应的对象(就是QACTION),相应的槽,菜单的对象这三个。

创建一个QAction对象pAction;

创建一个QMenu对象 pMenu;

然后将pMenu通过MenuBar的AddMenu函数加入到菜单栏中,然后在将QAction对象通过QMenu的AddAction加入到菜单中。运行程序就会在菜单栏中显示出所需要的菜单选项。


pLoadAction = new QAction(parent);

pToolAction = new QAction(parent);
//pToolAction->setShortcut(QKeySequence::Open);
//pLoadAction->setShortcut(QKeySequence::Open);
pLoadAction->setStatusTip("LoadFiles...");
pMenu = menuBar()->addMenu("&LoadFiles");
pMenuTool = menuBar()->addMenu("&Tool");
pMenuTool->addAction(pToolAction);
pMenu->addAction(pLoadAction);
statusBar();

qt之菜单栏的创建的更多相关文章

  1. Qt之菜单栏工具栏入门

    菜单栏基本操作 创建菜单栏 QMenuBar *menuBar = new QMenuBar(this); //1.创建菜单栏 menuBar->setGeometry(,,width(),); ...

  2. Qt 从菜单栏打开文件

    Qt从菜单栏的下拉菜单选择文件 构造函数中设置打开动作信息 //打开文件 m_menu = ui.menu; // m_menu->menuAction = new QAction(QIcon( ...

  3. Qt on Android:创建可伸缩界面

    使用 Qt 来开发 Android 应用,也需要适配不同移动设备,适配多种多样的屏幕和分辨率.这次我们大概来讲一下如何使用 Qt 提供的机制来创建可伸缩的界面. DPI 必须要解释一下 DPI . D ...

  4. Qt——动态库的创建和使用

    一.动态库是什么 很多人写程序的人都见过.lib和.dll文件,对动态库也略有耳闻. 生成动态库后可以得到两个文件,后缀名分别是.lib以及.dll. 简而言之,.lib称为导入库,相当于头文件:.d ...

  5. QT共享库的创建与调用(初级)(附:UI界面不能被改变的其中一个原因)

    背景: 最近在做的一个项目其中一部分既是实现PC与下位机的USB通信.windows平台下已经完成,现需移植到linux平台下. 在linux系统中,通过一段时间的工作,设备已被配置成hid类(后续再 ...

  6. QT学习之路--创建一个对话框

    Q_OBJECT:这是一个宏,凡是定义信号槽的类都必须声明这个宏. 函数tr()全名是QObject::tr(),被他处理过的字符串可以使用工具提取出来翻译成其他语言,也就是做国际化使用. 对于QT学 ...

  7. Linux Qt动态库的创建和使用

    一.创建动态库 编写一个共享库类,比如: //..base.h class Base : public QObject { Q_OBJECT public: ); void PrintLog(QStr ...

  8. Qt多线程学习:创建多线程

    [为什么要用多线程?] 传统的图形用户界面应用程序都仅仅有一个运行线程,而且一次仅仅运行一个操作.假设用户从用户界面中调用一个比較耗时的操作,当该操作正在运行时,用户界面一般会冻结而不再响应.这个问题 ...

  9. 【Qt】2.1 创建对话框

    QDialog是Qt对话框类,可以直接使用这个类来创建对象并显示出来. 要使用一个对话框,就这样子写: #include <QApplication> #include <QDial ...

随机推荐

  1. asp.net core 中KindEditor的使用

    主要是需要对上传图片和文件管理的服务端进行改造 public class KindEditorController : Controller { private IHostingEnvironment ...

  2. R3注入的四种方式

    DLL注入 1.首先要获取想要注入的进程句柄(OpenProcess) 2.从要注入的进程的地址空间中分配一段内存(VirtualAllocEx) 3.往分配的内存位置写入要注入的DLL名称(Writ ...

  3. ML平台_PAI参考

    阿里云机器学习PAI(Platform of Artificial Intelligence)是一款一站式的机器学习平台,包含数据预处理.特征工程.常规机器学习算法.深度学习框架.模型的评估以及预测这 ...

  4. 窗体Form的FormStyle属性设置为fsStayOnTop时属性设置不起作用问题探讨。

    procedure CreateParams(var Params: TCreateParams); override; procedure MainForm.Createparams(var Par ...

  5. delphi absolute 应用实例

    procedure TForm1.Button1Click(Sender: TObject); var i1,i2:Integer; b:..] of Byte absolute i1; // b 在 ...

  6. Python标示符和关键字

    标示符 什么是标示符,看下图: 标识符就是开发人员在程序中自定义的一些符号和名称. 标示符是自己定义的,如变量名 .函数名等. 标示符的规则 标示符由字母.下划线和数字组成,且数字不能开头 pytho ...

  7. VS中生成时“sgen.exe”已退出,代码为 1解决办法

    visual studio 2010 选定web项目,右键选择“属性”—“生成”,将“生成序列化程序集”设成“关闭”. 原理分析: sgen是XML序列化程序生成器工具. 可能是这个项目里面有xml序 ...

  8. VirtualBox中挂载物理磁盘

    注1. 详细内容请参考VirtualBox帮助文件. 注2. 需对dos命令有一定了解. 注3. 以下命令均需以管理员身份执行,VirtualBox也需以管理员身份运行. 主要应用host上的vbox ...

  9. 迭代器和增强for

    增强for 内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作. 格式: for(元素的数据类型  变量 : Collection集合or数组){ } 它用于遍 ...

  10. Python:删除、增加字典的元素

    一)增加一个或多个元素 d = {'a': 1}  d.update(b=2)  #也可以 d.update({‘b’: 2}) print(d) -->{'a': 1, 'b': 2}    ...