gpt4 book ai didi

Qt:如何在子窗口的默认系统菜单中显示Ctrl+W而不是Ctrl+F4?

转载 作者:行者123 更新时间:2023-12-04 22:07:19 24 4
gpt4 key购买 nike

需要一些快速帮助,因为我可能错过了在 Qt 中解决这种情况的技巧(我使用最新的 Qt 4)。

在我的 QMdiArea 中,我创建了几个子窗口。所有子窗口都附有默认系统菜单(最小化、最大化、停留在顶部、关闭... - 右键单击​​子窗口图标时可以看到)。

为了与我在我的应用程序主菜单中定义的一致(ctrl+w 关闭窗口可见),我不能接受显示的与关闭相关的快捷方式是 Ctrl在子窗口的系统菜单中 +F4 必须是 Ctrl+w。我尝试了不同的方法,包括为应用程序设置全局快捷方式(使用 setShortcutContext)...但没有成功。

关闭默认有两个快捷键:Ctrl+wCtrl+F4。我希望两者都能继续工作,但应该始终显示的是 Ctrl+w

目前,我看到的唯一解决方案是替换系统菜单(一个 QMenu)...但是对于这样一个简单的任务来说,这似乎是很多代码!

最佳答案

你可以试试这样设置:

ui->mdiArea->subWindowList().at(index)->systemMenu()->actions().last()->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_W));

请用合适的索引替换“索引”。它对我有用。 (更新:这不起作用,CTRL+W 已经是关闭操作的指定快捷方式)

更新:

关闭操作有两个分配的快捷方式,第一个显示在菜单中。如果你交换顺序,你会得到 CTRL+W 显示。

QList<QKeySequence> closeShorcuts = ui->mdiArea->subWindowList().at(0)->systemMenu()->actions().last()->shortcuts();
closeShorcuts.swap(0, 1);
ui->mdiArea->subWindowList().at(0)->systemMenu()->actions().last()->setShortcuts(closeShorcuts);

请注意,此源代码中没有平台检查;如果你在 MAC 上运行它你会得到相反的结果,在 X11 中它会超出列表边界(因为只有一个快捷方式:CTRL+W) .

关于Qt:如何在子窗口的默认系统菜单中显示Ctrl+W而不是Ctrl+F4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7687821/

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