gpt4 book ai didi

c++ - 即使返回 true,CTRL+TAB 快捷方式的 Qt eventFilter 也会被进一步处理

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:04 24 4
gpt4 key购买 nike

我试图通过在区域上安装 eventFilter 来覆盖 QMdiAreaCtrl+Tab 行为。

我用来测试忽略事件的实现如下:

bool 
MyEventFilterClass::eventFilter(QObject * watched, QEvent * e)
{
if (e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ||
e->type() == QEvent::Shortcut || e->type() == QEvent::ShortcutOverride)
{
// Ignore all keyboard and shortcut events
return true;
}
return false;
}

我认为忽略所有键和快捷方式事件会阻止 Ctrl+TabQMdiArea 处理,但这是不正确的。即使在为所有事件返回 true 时,Ctrl+Tab 仍然可以正常工作,尽管下一个事件窗口没有像往常一样突出显示。

请注意,一旦我能够阻止标准行为,我就会实现我自己的行为。

如何阻止处理 Ctrl+Tab

最佳答案

QMdiArea 已经使用事件过滤器来捕获 Ctrl+Tab,因此您必须创建 QMdiArea 的派生类并重新定义它eventFilter 函数。

而且由于 QMdiArea::eventFilter 中还有很多其他的东西,不要忘记为您不想阻止或处理的事件回调它。

关于c++ - 即使返回 true,CTRL+TAB 快捷方式的 Qt eventFilter 也会被进一步处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7659539/

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