【问题标题】:Need Qt QPA and X11 clarification需要 Qt QPA 和 X11 说明
【发布时间】:2015-04-13 13:34:59
【问题描述】:

我试图了解 Qts 平台处理几个小时,但我不明白。对于我的热键处理,我目前混合使用 X11extras 来获取显示,xlib 用于键转换,xcb 用于 Qt 本机事件处理。三个要链接的库。无证的 QPA 在哪里发挥作用?现在我想知道这是否有必要。我需要在这里澄清一下。我正在使用 qt 5.4。未来的路在何方?

【问题讨论】:

  • 这不应该在 Qt 开发者列表中吗?

标签: c++ qt qt5 x11 xcb


【解决方案1】:

对于 Qt,除非您使用的是本机窗口,否则您不需要对关键事件进行任何本机平台编码。阅读QEventQWidget 中的事件函数。

如果您需要直接访问原始 X11 事件,请使用 QWidget::nativeEvent()QCoreApplication::installNativeEventFilter()。应用程序级别的原生事件过滤器针对每个事件进行处理,并且比子类化QWidget 和重新实现nativeEvent() 对性能的影响更大。

如果您需要将原生窗口作为子小部件嵌入,请阅读 QWindow::fromWinId()QWidget::createWindowContainer()

【讨论】:

  • 你真的希望我接受这个分析器吗? Qt 没有涵盖许多功能。好吧,我不得不为本地事件而烦恼。更进一步,我想了解发生了什么。
  • 道歉;从您所讨论的内容(关键事件,Qt 事件处理)来看,我误解了。你能澄清你想要做什么吗?这将帮助我为你确定我的答案。顺便说一句,QPA 尚未公开。 “在 API 稳定之前”这一切都是私有的,尽管我们从 5.0 开始就听说过。
猜你喜欢
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
相关资源
最近更新 更多