0

我有一个 Qt 对话框窗口,其中包含一个QPlainTextEdit小部件,我按照此处的示例创建了一个软件输入面板 (SIP) 。对话窗口的功能要求它保持在顶部。因此,SIP 也必须保持在顶部——但覆盖对话。我发现的问题是:

  1. 如果我Qt::WindowStaysOnTopHint在对话框上设置,则只有 SIP 落后于它。
  2. 如果我Qt::WindowStaysOnTopHint在 SIP 上只设置现在可以被其他窗口覆盖的对话窗口,如果我Qt::WindowStaysOnTopHint在对话框SIP 上设置,同样的事情会发生,显然Qt::WindowStaysOnTopHint只适用于一个小部件。

可以做些什么来确保对话框按此顺序堆叠?制作 SIP 模式并不是一个真正的选择或好的解决方案。

如果重要的话,我正在用 C++ 编写代码

PS 请看看我的后续问题

4

2 回答 2

0

看起来问题是 MyInputPanel QWidget 是用 Qt::Tool 标志构造的。该标志的目的是确保一个窗口始终出现在您不想要的任何其他窗口的顶部。

于 2013-07-02T18:22:57.913 回答
0

我找到了解决方法。我Qt::WindowStaysOnTopHint在 SIP 和主对话框上设置,但将 SIP 移动到主对话框下方,这样 SIP 就不会被它遮挡。

于 2013-07-03T15:12:15.747 回答