Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUI libraries #1

Open
dumblob opened this issue Mar 1, 2017 · 2 comments
Open

GUI libraries #1

dumblob opened this issue Mar 1, 2017 · 2 comments

Comments

@dumblob
Copy link

dumblob commented Mar 1, 2017

It seems pyLCI is very limited when it comes to UI. I would suggest using Nuklear as it's extremely fast, embeddable (single-header C file), very easy to use, quite rich, and easily extensible (see vurtun/nuklear#349 and vurtun/nuklear#202). Currently there are no finished Python bindings, but this might change soon (there are though other bindings).

@CRImier
Copy link
Member

CRImier commented Mar 4, 2017

Hi! Thank you for your suggestion, somehow I missed Nuklear entirely even though it seems to be quite popular (is it actually used in Battlefield? even if it's a configuration page, wow!) What do you mean when you say "pyLCI is limited when it comes to UI"? What would you like to see in pyLCI, any suggestions, maybe a vision?

Bindings can be developed, this is not a problem =) The current problem is that ZeroPhone by now is limited by simple monochrome screens, and isn't even using any kind of framebuffer. Once I have a set of requirements for the new ZeroPhone UI (which is likely to come if pyLCI has some kind of major architectural flaw that will make it unfit for ZeroPhone), I'll see if Nuklear can cope with that - or if, maybe, we could have some kind of a framebuffer in the next version (would improve portability, too!) Otherwise, it seems to be one of viable UI framework for ZeroPhone 2 - especially given that I'm trying to stay away from the current fad of having a slow and bloated UI =D

@dumblob
Copy link
Author

dumblob commented Mar 4, 2017

is it actually used in Battlefield? even if it's a configuration page, wow!

Unfortunately it's not Battlefield, but Nuklear is capable of complex UIs (especially in conjunction with Cassowary as discussed in vurtun/nuklear#123 (comment) ).

What do you mean when you say "pyLCI is limited when it comes to UI"? What would you like to see in pyLCI, any suggestions, maybe a vision?

Let's say someone comes and says, that he wants crazy UI stuff like on Amazon Kindle (but for tiny displays not supporting gradients, of course) or just something like embedded GUI demo. With pyLCI you would need to reimplement nearly every single widget, layouting, clipping, etc., because currently pyLCI supports only menu, printer, refresher, checkbox, numeric input, and character input.

But don't let distract yourself from using pyLCI, it's a good library and if you're not planning to do anything like mentioned above, don't use anything else. On the other hand, Python bindings for Nuklear will be easily usable as just a canvas drawing API, so if you would want to draw few frames with "advanced" graphics, you could draw them using Nuklear and then pass the resulting matrix back to pyLCI, which would just display the matrix.

especially given that I'm trying to stay away from the current fad of having a slow and bloated UI =D

If that's the case, you'll fall in love with Nuklear 😉.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants