【macOS Qt MenuBar】的显示方法

1 篇文章 0 订阅

MacOS Qt MenuBar无法在窗体中显示菜单的原因与解决方法

产生的问题

在macOS中安装Qt,运行的程序通常与在Windows中不同, 这取决于平台是否使用Native menubar,一些Linux系统中同样存在这种问题
异常显示

Mac默认的菜单显示在菜单栏,并且默认没有actionmenu将不会显示,复用菜单将不按照预先设定的方式排列。

错误显示🙅‍♂️如下
复用
异常2
设计显示如下
正确显示

解决方案

默认设置是否跟随系统取决于是否显式设置属性,显示设置将覆盖系统的默认选项。

修改

方法一

去main.cpp页面,在main()函数中插入下列 代码片.

QCoreApplication::setAttribute(Qt::AA_DontUseNativeMenuBar);

此时你的main()函数看起来应该是这样

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QCoreApplication::setAttribute(Qt::AA_DontUseNativeMenuBar);
    MainWindow w;
    w.show();
    return a.exec();
}

当然,在构造函数中添加以上代码也是可行的,这里介绍的是通法。Qt assistant1

Qt assisitant2

方法二

也有一些方法比如
经检验,高版本的Qt中这种方案可能已经不再适用,建议用方法一
在构造函数中添加以下代码片(有ui)

ui->menubar->setNativeMenuBar(false);

或者(无ui)

menubar->setNativeMenuBar(false);
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
macOS 是苹果公司的操作系统,提供了强大的性能和稳定性。Qt 是一个跨平台的应用程序框架,它能够帮助开发者快速构建跨平台的应用程序。Excel 是微软公司的电子表格软件,广泛应用于各个领域。那么,macOS 上能否使用 Qt 开发 Excel 相关的应用程序呢? 答案是肯定的。macOS 上可以使用 Qt 开发 Excel 相关的应用程序。Qt 是跨平台的,可以在各个操作系统上运行,包括 macOS。开发者可以使用 Qt 提供的图形界面和各种功能模块来构建一个功能丰富的 Excel 应用程序。 通过 Qt,开发者可以使用 C++ 或者其他编程语言来编写 Excel 应用程序。Qt 提供了丰富的 API,可以方便地读取和写入 Excel 文件,进行数据的编辑和计算操作。同时,Qt 还提供了图形界面组件,开发者可以根据需要进行界面的设计和布局。 在 macOS 上,Qt 提供了完整的集成开发环境(IDE),开发者可以使用这个工具来快速创建和调试应用程序。同时,Qt 还提供了强大的跨平台的支持,可以帮助开发者轻松地将应用程序移植到其他操作系统上去。 总而言之,macOS 上可以使用 Qt 开发 Excel 相关的应用程序。Qt 提供了丰富的功能和工具,可以帮助开发者快速构建功能强大的 Excel 应用程序,并且能够实现跨平台的运行。对于使用 macOS 的开发者来说,Qt 是一个非常实用的工具。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值