Полноэкранное приложение Python / PyQt5 на Windows 10 в режиме планшета - PullRequest
0 голосов
/ 11 июня 2018

У меня есть приложение PyQt5, работающее в Windows 10 с сенсорным устройством, и мне нужно запустить его в полноэкранном режиме (панель задач должна быть скрыта также в режиме планшета).

В классическом режиме все работает нормально,В режиме планшета у меня есть 2 проблемы:

  1. , когда я запускаю главное окно, иногда оно запускается, но экран запуска отображается на переднем плане: мне нужно вручную искать запущенные приложения и щелкнуть мое приложение вЧтобы увидеть его на экране.
  2. во время использования моего приложения я могу нажать на кнопку, чтобы открыть диалоговое окно настроек, и его открытие заканчивается в том же порядке, что и выше: экран запуска отображается на переднем плане, и мне нужноискать вручную запущенные приложения и нажимать на мое приложение, чтобы увидеть его на экране.

Это очень раздражающее поведение.

По сути, я делаю это showFullscreen ()в главном окне, когда оно запускается, и dialog.exec_ () в диалоговом окне, чтобы отобразить его как модальное диалоговое окно.

Я пытался найти помощь, чтобы решить эту проблему, но действительно ничего не нашелполезно.Я читал о других людях, имеющих подобное поведение, но я не нашел решения.

Есть ли у вас предложения о том, как справиться с этим в Python 3.5?

Заранее благодарен за любые отзывы.

1 Ответ

0 голосов
/ 27 июня 2018

Видимо, мне удалось найти причину, по которой окно было свернуто в режиме планшета в Windows 10, поэтому я решил написать его здесь в надежде, что это поможет кому-то еще.

Проблемабыл связан (по крайней мере, для моего конкретного случая) с тем фактом, что были некоторые QWidget (также пользовательские классы, расширяющие QWidget) без заданного родителя, переданного в конструктор (то есть parent = None).И поскольку я нашел это на странице документации QWidget :

Виджет без родительского виджета всегда является независимым окном (виджет верхнего уровня).

Я проанализировал свой код и установил родителя для этих QWidgets, и теперь проблема кажется мне решенной.

В качестве примечания: я обнаружил, что мне пришлось установить родителя в конструкторе также для некоторых (но не обязательно для всех) подклассы QWidget (то есть QScrollArea, QScrollWidget, QFrame и т. д.) ... Я действительно не знаю почему, но в любом случае установка родителя в конструкторе кажется мне лучшей практикой, поэтомуЯ иду этим путем с этого момента.

...