解决方法 Qt bug Combobox 下拉列表出现在 window 后面
Workaround Qt bug Combobox dropdown appear behind window
现在我有一个在图标托盘中运行的小工具应用程序。当我单击该图标时,应用程序进入 "windowstayontophint" 模式。我在此 window 上添加了一个组合框。但是当我点击桌面上的其他地方,然后点击组合框时,下拉菜单 window 会转到 window 的后面。这似乎是此处报告的已知错误:
https://bugreports.qt.io/browse/QTBUG-61804
有解决办法吗?我正在使用 Qt 5.9.1。
编辑:添加一些代码:
MainWindow 构造函数中的这个:
Qt::WindowFlags flags = this->windowFlags();
this->setWindowFlags(flags|Qt::WindowStaysOnTopHint);
然后我在 mainwindow 中放置了一个 QComboBox,其中包含预加载的项目。第一次点击,下拉菜单正常出现在顶部。然后我单击桌面,然后返回主 window 和组合框。而下拉就变成了mainwindow的后面。点击上面的 link 看看我的意思。错误报告还提供了正在发生的事情的屏幕截图。
没人要回答,所以我自己回答。
答案:更新到最新的 Qt。
它对我不起作用,因为我在更新时遇到了问题(这里是菜鸟)。基本上发生的是在维护工具上选择 "Update" 选项不会将 SDK 从 5.9.1 更新到 5.10.1。它只更新某些东西,比如 Qt Creator。
我需要选择"Add or remove Components"然后添加Qt 5.10.1,但只检查MinGW 32bit。 (取消选中所有其他人,否则您需要它们(例如 android 或其他))。
即便如此,您还需要手动下载CMake(从cmake.com获取)并在Qt Creator中的"Manage Kits"中设置。
现在我有一个在图标托盘中运行的小工具应用程序。当我单击该图标时,应用程序进入 "windowstayontophint" 模式。我在此 window 上添加了一个组合框。但是当我点击桌面上的其他地方,然后点击组合框时,下拉菜单 window 会转到 window 的后面。这似乎是此处报告的已知错误:
https://bugreports.qt.io/browse/QTBUG-61804
有解决办法吗?我正在使用 Qt 5.9.1。
编辑:添加一些代码:
MainWindow 构造函数中的这个:
Qt::WindowFlags flags = this->windowFlags();
this->setWindowFlags(flags|Qt::WindowStaysOnTopHint);
然后我在 mainwindow 中放置了一个 QComboBox,其中包含预加载的项目。第一次点击,下拉菜单正常出现在顶部。然后我单击桌面,然后返回主 window 和组合框。而下拉就变成了mainwindow的后面。点击上面的 link 看看我的意思。错误报告还提供了正在发生的事情的屏幕截图。
没人要回答,所以我自己回答。
答案:更新到最新的 Qt。
它对我不起作用,因为我在更新时遇到了问题(这里是菜鸟)。基本上发生的是在维护工具上选择 "Update" 选项不会将 SDK 从 5.9.1 更新到 5.10.1。它只更新某些东西,比如 Qt Creator。
我需要选择"Add or remove Components"然后添加Qt 5.10.1,但只检查MinGW 32bit。 (取消选中所有其他人,否则您需要它们(例如 android 或其他))。
即便如此,您还需要手动下载CMake(从cmake.com获取)并在Qt Creator中的"Manage Kits"中设置。