gpt4 book ai didi

c++ - QT_NO_CONTEXTMENU 何时定义?

转载 作者:行者123 更新时间:2023-12-01 14:43:29 26 4
gpt4 key购买 nike

Qt documentation on menus ,它们展示了如何覆盖小部件的上下文菜单。他们使用宏 QT_NO_CONTEXTMENU ,但他们没有在文本中对这个宏、它为什么存在或谁使用它做任何评论:

#ifndef QT_NO_CONTEXTMENU
void contextMenuEvent(QContextMenuEvent *event) override;
#endif // QT_NO_CONTEXTMENU

Qt 何时定义 QT_NO_CONTEXTMENU?

例如,我可以看到 Qt 在不支持上下文菜单的系统上为您定义了这个宏。由于 QAbstractScrollArea contextMenuEvent 的声明以同样的方式包装,我知道为了安全起见我也必须使用宏,否则我会冒使用 override 的风险在一个永远不会被调用的不存在的函数上。但我想知道什么会导致这个宏首先被定义,因为我觉得这首先是一个宏,而不是 QAbstractScrollArea的成员变量,这很奇怪。可以随时设置。

最佳答案

这个宏在 -no-feature-CONTEXTMENU 时被定义。从源代码配置和构建 Qt 时设置选项,即使用 configure工具。您是正确的,它适用于不支持上下文菜单的系统。这些通常是资源有限的嵌入式系统(例如触摸屏信息亭),因此您不希望使用任何额外的模块使它们陷入困境,尤其是那些无论如何都不会使用的模块。

关于c++ - QT_NO_CONTEXTMENU 何时定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60143222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com