titov_
Март 23, 2016 13:42:36
При использовании Kivy часть файлов пишется на Python и часть на Kivy. Как они разделяются и за что отвечают? Ведь Kivy помимо интерфейса ещё реализует какой-то функционал. Например, работа с меню. Как определять, что реализовывать на Python, а что на Kivy?
Octans
Март 25, 2016 04:32:38
Kivy это gui фреймворк, соответственно никакого другого функционала выходящего за рамки gui он не предлагает. kivy lang служит лишь для упрощения построения gui(читай структурированного), все что можно сделать в kv файлах, можно реализовать и непосредственно в py файлах, но в kv это будет нагляднее, быстрее, и местами даже короче (например работу с положением и размером виджетов проще реализовать в kv, т.к. это не требует написания лишних методов и их биндингов), но все реализовать в kv нельзя(да и не нужно), т.к. kv lang это не полноценный яп, в нем банально нельзя объявить новую функцию(разве что через lambda, или каким-нибудь извратом через exec), или динамически генерировать новые виджеты(без вызова методов описанных в python), поэтому основная логика(кроме простых событий и взаимодействий виджетов) пишется как обычно на python. Можете считать kv lang неким дизайнером форм(как в delphi или vs), но только в текстовом виде ;) , ближайший аналог kivy lang это qml в qt.