GUI designer for Kivy

13,362 views
Skip to first unread message

Demitri

unread,
Jun 15, 2014, 8:23:45 PM6/15/14
to kivy-...@googlegroups.com
Hello;
I'm doing Software Engineering and am about to start working on my final year project, I've chosen Kivy and Python to get it done.
Kivy is spectacular; but the only problem is that I couldn't find a proper live UI designer.
I've tried the Kivy designer but it's kind of unstable and it lacks in terms of responsiveness and reliability, and it's tough to develop interfaces using IDLEs like vim, Pycharm, etc.

Any advice?


Thanks in advance :)

qua non

unread,
Jun 16, 2014, 4:47:25 AM6/16/14
to kivy-...@googlegroups.com
Hi Demitri,

You are right in that Kivy-designer is alpha quality. This is mostly cause there is not much development effort around it.
Mostly cause of a small core dev team that is already spread thin.

We are open to people working on the project though. We could definitely use some help on this front.

Regards



--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

ZenCODE

unread,
Jun 16, 2014, 2:24:42 PM6/16/14
to kivy-...@googlegroups.com
The real problem with a GUI designer is that you think what you see is what others will see. This is a terribly faulty assumption, as there are a massive amount of different screens sizes and resolutions. WYSIWYG is a very limiting design approach.

One of the most powerful approaches to building "fluid interfaces" i.e. interfaces that scale and adapt to different displays, is layouts. All the modern GUI framework include such containers (WPF, GTK, wxWidgets etc) because it's a much better way to design fluid layouts. One of Kivy's great strength is the kv lang: it's a very concise way to design layouts and UI that are clearly separated from logic (separation of concerns) and dynamically  decide what goes where.

So no, Kivy does not have a nice GUI designer, but it's probably better that way. If you're designing for 1 resolution, they are great. But the moment you run on a different resolution, that designer deceives you, because it WILL look different. Using a declarative, layout based UI is much more flexible and scalable, and handles different resolutions better because if forces you to define your layout based on logic, not screen size. That means it's able to adapt much more easily,correctly and predictably to different UI's.

Yes, a GUI designer may be easier and more intuitive, but personally, I think it's a very short-sighted and limited way to design a UI. It only looks that way on your screen. Run it somewhere else, and it's "Hey, but I did not put that button there!". UI's should be designed using layouts that intelligently adapt the layout based on your display. They should be fluid and flexible. WYSIWYG is a myth...

But that;s just my idealistic rant. Use it, don't use it...;-)
Message has been deleted
Message has been deleted

Demitri

unread,
Jun 17, 2014, 9:05:49 PM6/17/14
to kivy-...@googlegroups.com
I agree with what you addressed as a faulty assumption, I should've stated that I'm not targeting Mobile Platforms in this project as I'll only package it for Win, Linux and OSX users.
Hence, the screen resolution shouldn't be much of a worry.
It's true that programmatically designing an interface will extremely expand the programmer's view, but the main concern is about the short time-frame.
I'm afraid that I might not be able to finish in time if I didn't use a framework that has a nice GUI designer.

And that's mostly because I've only developed console-based systems and when I started using GUI, there were some proper live UI designers to get the task done.

Frankly speaking; I don't make a great deal when it comes to programmatically designing an interface. I took a look at what you can do with KvLang; and I found the API amazingly sophisticated, as the logic is separated from the presentation (as you mentioned earlier) and the properties could be set with ease.
But my only problem will be with positioning the UI elements; so let me ask you this, let's say that I'll use Kivy regardless; what will be the easiest way to effortlessly place UI elements on the interface?  

Thanks again. Cheers

ZenCODE

unread,
Jun 18, 2014, 12:12:54 AM6/18/14
to kivy-...@googlegroups.com
Hi Dimitri

I hear you. I would begin by looking through the showcase in the kivy/examples/demo/showcase folder. That gives you an idea of what widgets are available out-of-the box. They play with the "examples/demo/kivycatalog" project. There you have a live environment where you can try out some layouts and alter them live.

Once you have what you want, you can copy paster that kv into your own kv file. It's almost like a prototyping environment. Once you get the hang of kv, it's incredibly quick to throw together UI's assuming you are happy with a pretty standard interface. Tweaking for aesthetics, as you know, can be time consuming...

Hope that helps? Cheers

John Fabiani

unread,
Jun 18, 2014, 10:32:42 AM6/18/14
to kivy-...@googlegroups.com
Is there some reason a GUI designer couldn't use the layout objects and still be somewhat WYSIWYG.  If the KV language can be written can't a program be written to handle the most common layouts?  
Johnf 

ZenCODE

unread,
Jun 18, 2014, 4:28:25 PM6/18/14
to kivy-...@googlegroups.com
A GUI designer can be "somewhat" WYSIWYG, but only to point. The thing is, not only do different devices have different screen resolutions and aspect ratio's, they have different pixels densities and default font sizes. The metrics module gives you a good idea of the variations involved.

http://kivy.org/docs/api-kivy.metrics.html?highlight=metrics#kivy.metrics

A GUI designer will never be able to accurately convey what it will look like on different devices. Yes, it can handle common layouts and the Kivy Designer comes amazingly close to that.

So yes, don't get me wrong: they are possible and make valuable and useful tools. I just personally find them over-emphasized. Having worked in VB for may years, and in wxFormBuilder and QtDesigner (both great designers, QtDesigner especially), using a concise language (such as kv) seems "better" for building fluid, scalable interfaces because you are forced to approach them logically. You tend think about re-flow and scaling beforehand instead of drawing a picture of how you think it will look, and then trying to tweak and adjust if later across devices/screen.

Having said that, there is nothing about a GUI designer that really prevents the correct approach if you stick to layouts, use the correct units and approach it wisely. They just let you do very inflexible layouts if you're not careful. But I suppose you can't blame a tool it's abused...;p-)

Peace out

Demitri

unread,
Jun 19, 2014, 5:42:02 PM6/19/14
to kivy-...@googlegroups.com
Yes, indeed.
Thanks mate :)

Josh Lee

unread,
Jun 19, 2014, 10:45:38 PM6/19/14
to kivy-...@googlegroups.com
Doing my third project in Kivy right now.... and while I've gotten much more used to .kv files and the general flow of things, a GUI designer would still be awesome.  If you are just designing UI's for desktop/laptop use (as opposed to mobile phones), then the issue that ZenCODE is raising becomes much less of an issue.  Even if you couldn't bake all of the kivy functionality into the GUI designer, it could be setup in a way that would allow you to easily switch between the layout designer and the code.  I mean just from the standpoint of using it to explore new features and protoype rough ideas... you might be my new favorite person if you did this Demitri.

On Thursday, June 19, 2014 2:42:02 PM UTC-7, Demitri wrote:
Yes, indeed.
Thanks mate :)

ZenCODE

unread,
Jun 20, 2014, 2:20:10 AM6/20/14
to kivy-...@googlegroups.com
Agreed. Just a related topic on interest: The interactive catalog is also great for quick design: https://github.com/kivy/kivy/tree/master/examples/demo/kivycatalog

ZenCODE

unread,
Jun 20, 2014, 3:01:49 AM6/20/14
to kivy-...@googlegroups.com
Just to clarify: it's an interactive kv panel. Type and see..

Demitri

unread,
Jun 26, 2014, 11:19:33 AM6/26/14
to kivy-...@googlegroups.com
Hehe will do mate; yeah agreed-upon. 

Demitri

unread,
Jun 26, 2014, 11:20:21 AM6/26/14
to kivy-...@googlegroups.com
That was really helpful.
Thanks again, things are going well.
Reply all
Reply to author
Forward
0 new messages