|
|
1
6
很容易完成一半必需的功能。只需在主窗口类中创建编辑菜单和必要的Qactions(copy/paste/undo/etc),并将它们连接到插槽。在插槽中,模拟正确的按键和释放事件(例如,用于复制的ctrl+c),并将它们发送到当前聚焦的小部件。在代码中,如下所示:
当然,这是一个相当大的黑客。您需要修改每个目标平台的代码,将键盘快捷键更改为正确的快捷键,并且接收焦点的小部件可能会使用ctrl+c执行一些出乎意料的安静操作。在我看来,此方法的最大缺点是无法正确控制编辑菜单项的启用状态。无法从通用小部件查询复制或粘贴操作是否可能。 对于这个问题,我无法找到真正的解决方案——并且会惊讶地发现它的存在——因为复制/粘贴功能通常隐藏在类的代码中,而不是通过任何标准的信号集/槽暴露出来。在今晚的功能实验之后,我决定忘记从我的应用程序中有一个编辑菜单,并期望用户知道键盘快捷键,或者使用上下文相关的菜单。 |
|
|
2
0
我的印象是编辑菜单应用于中央文档小部件,而不是加载小部件。我还没有测试过,但是如果您有一个带有qlineedits的表单,那么编辑菜单(在菜单栏中)是否真的适用于这个小部件。你不是简单地打开上下文菜单或按快捷键来访问这些选项吗… |
|
|
3
0
用户285740的解决方案对我没有帮助,因为我在应用程序中使用了浏览器控件(CEF或WebKit无关紧要)。
为什么?
对于浏览器来说,
最终,我找到了解决办法!从Objective EC++代码创建相同的菜单项。他们的行为就像是通过
您可以在这里找到一个示例: nsMenuUtilsX::GetStandardEditMenuItem() ,只需从objc++代码中执行该操作。
但是,如果您以前执行过此代码,则此代码不起作用
|
|
|
FranticFronk · Tkinter单选按钮在已选择时执行命令 1 年前 |
|
|
Kumkuatte · 如何将UI元素对齐到Unity中的左侧位置 1 年前 |
|
|
Calax · GUI不显示所有组件(C++) 2 年前 |
|
|
trassert · python flet容器 2 年前 |
|
|
zadisk8 · 带有Q拆分器和多级选项卡的PyQt5 2 年前 |
|
|
Patrick Visi · Zitadel日常创建服务用户 2 年前 |