何时定义QT_NO_CONTEXTMENU?
When is QT_NO_CONTEXTMENU defined?
在菜单上的Qt文档中,他们展示了如何覆盖小部件的上下文菜单。他们使用宏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
的成员变量,这对我来说似乎很奇怪。
此宏是在从源代码配置和构建Qt时设置-no-feature-CONTEXTMENU
选项时定义的,即使用configure
工具。您是正确的,它适用于不支持上下文菜单的系统。这些通常是资源有限的嵌入式系统(例如触摸屏信息亭(,因此您不想用任何额外的模块来困扰它们,尤其是那些无论如何都不会使用的模块。
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- c++20[[no.unique_address]]中的新功能是什么
- 以线程安全的方式调用"QQuickPaintedItem::updateImage(const QImage&image)"(no QThread)
- "no matching function for call to 'Vector::Vector'"错误
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- 处理"no operator found"
- 我在 ifstream input_file(文件名)行中收到错误"no matching function to call";
- 如何解决"no Qt platform plugin could be initialized"问题?
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- 为什么当我在 std::string 中打开文件名的 fstream 时出现"no matching function"错误?
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- do while 循环中的 if 语句以 yes 或 no 结尾
- 从 TVector2 类派生复杂类:"No matching function for call to Complex::Complex()"
- 错误消息:使用"string* +="后"no match for 'operator+='"
- Eulers 项目问题 no 345 听不懂几行代码
- "No-Const Pointer to Const "调用功能
- 如何在 c++ 中将 s1 和 s2 与 no if 语句进行比较
- "No such file or directory" C++标头问题
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息