【发布时间】:2022-02-15 20:33:01
【问题描述】:
我正在使用 Qt 5.7 (C++) 并希望向 QSpinBox(以及 QDoubleSpinBox 以及可能的其他一些输入小部件)添加自定义功能,例如重置选项。此功能应该可以通过上下文菜单访问。但是我不想替换默认的上下文菜单。相反,我想在现有操作之上或之下添加我的自定义操作。
我发现这个问题的答案几乎匹配:
- https://forum.qt.io/topic/81946/add-item-to-top-of-standard-context-menu-at-right-click
- How to add an entry to toolbar context menu in qt?
但是,这些对我的情况没有帮助,因为它依赖于 Widget 有一个创建和返回标准上下文菜单的方法(如 QLineEdit::createStandardContextMenu())。旋转框没有这种方法。
我还尝试以便宜的方式直接从源代码(https://github.com/qt/qtbase/blob/5.7/src/widgets/widgets/qabstractspinbox.cpp 第 1249 行)复制创建默认选项的代码。这也不是很令人满意,因为它使用了底层行编辑的私有成员。
是否有(标准)方法可以重用和扩充Q(Double)SpinBox 或任何QWidget 的默认上下文菜单?还是我必须手动重新实现默认行为?
【问题讨论】:
标签: c++ qt qt5 contextmenu