Как мне иметь несколько окон в Kivy?

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

Заранее спасибо!


person bafflingbill23    schedule 07.09.2016    source источник


Ответы (2)


Можно, но как-то неудобно. Проблема в том, что kivy поддерживает только одно окно для каждого приложения, поэтому вам нужно как-то это обойти. Я лично просто использую несколько *Layouts (которые представляют собой разные графические интерфейсы с разными функциями) в одном окне, показывая и скрывая их по мере необходимости. Очевидно, что у этого подхода есть свои ограничения, например, он не поддерживает несколько мониторов, но он настолько прост, насколько это возможно.

Затем есть вопрос здесь, на SO, где люди создают отдельные приложения kivy для каждого окна, таким образом получая окна, которые можно перетаскивать и изменять размер относительно. Это требует некоторой работы с подпроцессами и взаимодействием между приложениями, но этот метод более мощный.

ScreenManager, насколько я понимаю, вам не поможет: он позволяет просто определить несколько деревьев виджетов для одного и того же окна и переключаться между ними на лету. Это обычный вариант использования на сенсорных экранах, но на настольных компьютерах он имеет мало смысла. Честно говоря, это верно для довольно многих вещей в kivy. Если вы не планируете позже переходить на мобильные устройства, Tkinter или PyQT могут быть лучшим выбором, чем kivy.

person Synedraacus    schedule 07.09.2016

Вы можете использовать PageLayout или ScreenManager. Они могут создавать несколько экранов (НЕ WINDOWS) одновременно. Они могут быть действительно полезны! Поскольку kivy не поддерживает несколько окон, вы можете использовать их.

from kivy.uix.pagelayout import PageLayout

from kivy.uix.screenmanager import Screen, ScreenManager. FadeTransition
person Jaidee    schedule 29.11.2018