【问题标题】:Python/PyQt5 fullscreen application on Windows 10 in Tablet mode平板模式下 Windows 10 上的 Python/PyQt5 全屏应用程序
【发布时间】:2018-11-20 10:00:04
【问题描述】:

我有一个在带有触摸屏设备的 Windows 10 上运行的 PyQt5 应用程序,我需要全屏运行它(任务栏也必须在平板电脑模式下隐藏)。

在经典模式下,一切正常。 在平板模式下,我有两个问题:

  1. 当我启动主窗口时,它有时会启动,但开始屏幕显示在前台:我需要手动查找正在运行的应用程序并单击我的应用程序才能在屏幕上看到它。
  2. 在使用我的应用程序时,我可以单击按钮以打开首选项对话框,并以与上述相同的行为结束:开始屏幕显示在前台,我需要手动查找正在运行的应用程序并单击我的应用程序以便在屏幕上看到它。

这是非常烦人的行为。

基本上我所做的是在主窗口启动时在主窗口上显示一个 showFullscreen() 并在对话框上显示一个 dialog.exec_() 以便将其显示为模式对话框。

我试图四处寻求帮助以解决这个问题,但我真的没有发现任何有用的东西。我读到其他人有类似的行为,但我没有找到解决办法。

您对如何在 Python 3.5 中处理这个问题有什么建议吗?

提前感谢您的任何反馈。

【问题讨论】:

    标签: windows python-3.x windows-10 pyqt5 pywin32


    【解决方案1】:

    显然,在 Windows 10 的平板电脑模式下,我找到了导致窗口最小化的原因,所以我决定在这里写下它,希望它可以帮助其他人。

    这个问题(至少对于我的具体情况)与一些 QWidget(也是扩展 QWidget 的自定义类)没有在构造函数中传递给定父级(即 parent=None)的事实有关。 并且因为我在QWidget's documentation page 中找到了这个:

    没有父窗口小部件的窗口小部件始终是一个独立的窗口(顶级窗口小部件)。

    我解析了我的代码并将父级设置为那些 QWidget,现在问题似乎解决了。

    附带说明:我发现我必须在构造函数中将父级设置为一些(但不一定是所有)QWidget 的子类(即 QScrollArea、QScrollWidget、QFrame 等等......)...我真的不知道为什么,但无论如何在构造函数中设置父级在我看来是一种最佳实践,所以我从现在开始就这样。

    【讨论】:

      猜你喜欢
      • 2017-04-20
      • 2010-11-20
      • 2015-10-23
      • 1970-01-01
      • 2015-06-28
      • 2017-04-12
      • 2020-04-11
      • 1970-01-01
      • 2022-10-07
      相关资源
      最近更新 更多