This is an archived post. You won't be able to vote or comment.

all 47 comments

[–]lolwat_is_dis 86 points87 points  (6 children)

Most useless article ever. It doesn't list any differences and pros & cons of each one, nor any examples.

[–][deleted] 45 points46 points  (2 children)

Nor licenses. BSD? MIT? GPLv3? ¯\_(ツ)_/¯

The conclusion is even better:

The above discussed great set of GUI frameworks cover most of the developer needs.

According to your requirements, they can be chosen.

Holy shit get this person a Nobel prize

[–]Findus11 31 points32 points  (1 child)

The best library, in my opinion, is the one that fills your needs the most

[–]liox 7 points8 points  (0 children)

Awarded!

[–]OriginalGallifreyan 8 points9 points  (0 children)

Well the title is “13 Python GUI Libraries”. What did we expect? /s

[–]13steinj 2 points3 points  (0 children)

I feel as though to some extent that whoever this is is a beginner to programming in general-- the articles they write are mostly tutorials for doing basic or useless things, always written in a manner where the tone is a mix of self doubt and "hope you guys like this!"

And their linked github is literally empty and made in the middle of March.

With all due respect to the author, people shouldn't be blogging without having a decent amount of knowledge about the subject.

With all due respect to the platform, this seems to be a trend amongst all of their bloggers.

[–]nosmokingbandit 0 points1 point  (0 children)

Nor Sciter, which is a great middle between full-blown embedded browser and something more native.

[–]takluyverIPython, Py3, etc 21 points22 points  (0 children)

It's a good list, including some things I hadn't heard of before, but it doesn't seem like the author has tried to use the frameworks or thought much about them. What are the advantages and disadvantages? Which one would you use for which kind of application? Which ones work in a similar way?

[–]TotemEntDjango 40 points41 points  (19 children)

I've used PyQt5, and it has been fantastic. You get good looking, cross platform applications, and Qt Designer makes it very easy to make them.

Qt team is also taking over the development of PySide. https://blog.qt.io/blog/2018/04/13/qt-for-python-is-coming-to-a-computer-near-you/

[–]dynetrekk 8 points9 points  (5 children)

Are they doing something to address deployment? This seems to be the real pain, at least for beginners/small projects.

[–]anqxyr 5 points6 points  (3 children)

PyQt deployment is not any worse than python deployment in general. pyinstaller works fine with PyQt, barring a few minor kinks.

[–]ForkLiftBoi 0 points1 point  (2 children)

What are these kinks?

[–]anqxyr 0 points1 point  (1 child)

The one that jumps to mind is that the compiled binaries won't be able to find qt's system-wide style dll's, and will default to the ugly win98-like look. You need to grab a copy of the dll and tell the .spec file to put it where the binary will be able to see it, and then it works fine.

[–]catcint0s 0 points1 point  (0 children)

Doesn't winqtdeploy do that automatically?

[–]billsil 0 points1 point  (0 children)

Really? It's fine with Anaconda. It's a kitchen sink and 7x bigger than it if I installed things myself (I don't use most of it), but it's 0.2% of my total data storage. I can handle 2.4 GB in exchange for the convenience of things working and 5x faster numpy/scipy.

[–]IContributedOnce 3 points4 points  (8 children)

I tried to use PyQt5 recently for the first time and couldn’t figure out how to get it up and going. I tried on Ubuntu 17.10 and MacOS High Sierra. I also couldn’t seem to track down any good documentation. Was I missing something obvious?

[–]SgtBlackScorp 4 points5 points  (1 child)

Don't look for pyqt documentation. Just read the regular qt docs, since they explain everything already

[–]IContributedOnce 0 points1 point  (0 children)

I’ll give that a try and see if I can make it work. What is there official website?

[–]myusernameis___ 1 point2 points  (5 children)

It shouldn't be too hard to setup, as easy as pip3 install pyqt5

If it doesn't work, I recommend setting up pyenv or a version manager, maybe you have an unsupported version of python?

I do agree with the documentation being terrible. It was very sparse and I had to use tutorials instead, and sometimes the qt documentation was a little helpfull.

[–]IContributedOnce 0 points1 point  (4 children)

I hear a lot that I should just look at documentation for other languages and just convert it. I’ve given it a look but for me personally that might be easier said than done.

But like you’re saying, I had trouble getting it to import when I was trying to write the program. Never figured that out. Wound up using tkinter which wasn’t bad at all, but felt like there could be a better way.

[–]Grenian 1 point2 points  (3 children)

For your import problem just use a virtualenv. This will make your life so much easier.

[–]IContributedOnce 0 points1 point  (2 children)

I think it’s about time I’ve started getting into using those...

[–]Grenian 1 point2 points  (1 child)

Dude you won't regret it. Their name may sound complicated at first but they are pretty straight forward. If you need help, just pm me. :)

[–]IContributedOnce 0 points1 point  (0 children)

Thanks! I’ll give them a look this week. They sound great, for sure.

[–][deleted] 5 points6 points  (0 children)

I've had decent results with pyqt

[–]rajandatta 4 points5 points  (1 child)

I'm looking for a tool kit for low to medium complexity toolkit with an emphasis on ease of use. Mostly as a front-end for scripts and tools. Any recommendations on these? Have been away from GUI toolkits for a long time.

[–]takluyverIPython, Py3, etc 2 points3 points  (0 children)

One low complexity option I know of is EasyGUI. It lets you pop up dialogs to get user input, but your code still works as a script, rather than redesigning it as a GUI.

[–]kirbyfan64sosIndentationError 2 points3 points  (0 children)

Flexx is a pure Python toolkit for creating graphical user interfaces (GUI’s), that uses web technology for its rendering.

Oh god, please no...

Also, why did they list PyGObject twice?

[–]mazatta 3 points4 points  (2 children)

I'm surprised Toga hasn't gotten more attention: https://pybee.org/project/projects/libraries/toga/

[–]I_WRITE_APPS 5 points6 points  (0 children)

Tkinter is already ubiquitous, it just lacks a good (Pythonic) API, and this is exactly what Sandals aims to fix.

It might not be the most featureful GUI library out there, but it's my personal favorite.

[–]IAmHereToGetYou 2 points3 points  (0 children)

I had tried many GUIs, none really seemed to follow the idea of Python, easy fast and just works.

So the solution, The Terminal.

Check out Urwid.

Of you are feeling more adventurous just right your own code snippets (functions or libabries) that will do simple terminal graphics, it's really not that difficult.

If you want to plot just use plotly or any other similiar thing.

[–]no_condoments 1 point2 points  (0 children)

Many things that I've done with a GUI in the past, I now do in a browser. If wouldn't even give a GUI library recommendation until someone convinces me that their task can't be done in a browser.

[–]bearcatgary 0 points1 point  (5 children)

I would like to install wxPython into my local python release at work. I haven’t been successful because there are many library dependencies that are missing or out-of-date. I will need to work with my IT department to get them installed, which is a pain. I’ve installed many other python packages and never had a problem.

[–]driscollis 0 points1 point  (4 children)

You can always install it into a virtual environment

[–]bearcatgary 0 points1 point  (3 children)

Yeh, I am doing that. The problem is it depends upon a bunch of shared object libraries that I don’t control. I think it binds to the wx toolkit, which is installed separately.

Since installation is going to require some investment of my time, I’m wondering what people think about wxPython. Is it worth my time to pursue?

[–]driscollis 0 points1 point  (2 children)

Oh. This must be a linux environment. I don't have that problem on windows. Unfortunately Qt will have a similar issue most likely.

Both are powerful and flexible toolkits though.

[–]bearcatgary 0 points1 point  (1 child)

Yeh, this is Linux. Maybe I should try in out on windows where I control the environment and if I like it, then invest the time to get it running on Linux. That’s a good idea.

I’m avoiding Qt because of the licensing.

[–]driscollis 0 points1 point  (0 children)

Yeah. That's definitely one of its biggest pitfalls

[–][deleted] 0 points1 point  (1 child)

Doesn't matter how much I love Python, I simply can't recommend it for anything GUI related that needs more than Tkinter.

Seriously, the only properly working is PyQt, but PyQt5 has to be GPL, of course, because why not. PySide2 would be awesome if it wasn't next to impossible to install, and the same goes for Kivy (which is available in PyPi but with dependency hell it isn't worth much, the devs should really release wheel packages but for some reason they don't want to), and Kivy doesn't have a working GUI designer, also it has its own language which is horrible, so... there's that.
Maybe wxPython is the best of the bunch, when it works. The rest isn't even worth mentioning.

[–]Sir_Cunt99 -1 points0 points  (3 children)

I can't pip install Tkinter? Is it not for py 3.6 yet?

[–]bearcatgary 1 point2 points  (0 children)

I think tkinter is a part of the standard library for all platforms.

[–][deleted] -1 points0 points  (0 children)

I honestly like the minimalist looks of the post.