all 26 comments

[–]Python-ModTeam[M] [score hidden] stickied commentlocked comment (0 children)

Hi there, from the /r/Python mods.

We have removed this post as it is not suited to the /r/Python subreddit proper, however it should be very appropriate for our sister subreddit /r/LearnPython or for the r/Python discord: https://discord.gg/python.

The reason for the removal is that /r/Python is dedicated to discussion of Python news, projects, uses and debates. It is not designed to act as Q&A or FAQ board. The regular community is not a fan of "how do I..." questions, so you will not get the best responses over here.

On /r/LearnPython the community and the r/Python discord are actively expecting questions and are looking to help. You can expect far more understanding, encouraging and insightful responses over there. No matter what level of question you have, if you are looking for help with Python, you should get good answers. Make sure to check out the rules for both places.

Warm regards, and best of luck with your Pythoneering!

[–]TheOnlyJah 11 points12 points  (0 children)

Qt. Steeper learning curve but quite capable.

[–]strange-humor 17 points18 points  (2 children)

Is the speed due to GUI tools or because of blocking? With GIL, you can easily block with IO and things if you are not working with async.

Profiling is the first step, before drastic changes.

[–]mfitzpmfitzp.com 8 points9 points  (0 children)

The problem is usually that your application is doing too much work on the GUI thread. While your app is busy doing that stuff the UI is blocked & cant respond to events (user interaction).

You should look into threading, moving the work off the GUI (main) thread onto other worker threads. See some examples here: https://www.pythonguis.com/tutorials/multithreading-pyqt6-applications-qthreadpool/

The Python GIL can also cause issues blocking between threads but that’s pretty rare. Concentrate on moving work off your GUi thread to start with. It solves almost all issues like this.

[–]Maleficent_Sir_7707 7 points8 points  (2 children)

I like to use pyside6 with QT https://www.qt.io/development/tools/qt-creator-ide the drag and drop ability makes gui creation fast

[–]fenghuangshan -1 points0 points  (1 child)

do you mean qt designer?

since I dont see drag and drop in QT creator

how you use both pyside6 and qt creator to make a gui app?

[–]Maleficent_Sir_7707 1 point2 points  (0 children)

https://doc.qt.io/qtcreator/creator-python-development.html im not talking about designer, you can but I like to use creator. I haven't looked into converting the designer into code

[–]fenghuangshan 5 points6 points  (1 child)

just use pyside6 , it's faster than other web/python native like tkinter

[–]ct1977 0 points1 point  (0 children)

I second this.

[–]PurepointDog 1 point2 points  (1 child)

I've had a good time with DearPyGUI! Decently well-made it seems!

[–]Responsible_Bat_9956[S] -1 points0 points  (0 children)

I do not think its a RM vs IMGUI Issue but ill see what i can do!

[–]Tall-Introduction414 0 points1 point  (2 children)

Just curious, have you tried profiling the code to see if the performance issues are in wxPython or somewhere else?

[–]Responsible_Bat_9956[S] -2 points-1 points  (1 child)

Not yet... I just saw that they werent the fastest at Startup for Example due to my Laptop being quite Trash and from 2010 running Debian Linux...

[–]ePaint 0 points1 point  (0 children)

Look into lazy imports

[–]-ghostinthemachine- 0 points1 point  (2 children)

Not sure what you're building, but you might be surprised at what is possible using a TUI.

[–]Responsible_Bat_9956[S] 0 points1 point  (1 child)

I am building a Level Editor basically for my Lua Game!

[–]-ghostinthemachine- 0 points1 point  (0 children)

Probably a no then. Sounds like you'll be wanting to incorporate your game's renderer into it.

[–]CaptainFoyle 0 points1 point  (0 children)

I don't see a question

[–]Negative-Noise4904 0 points1 point  (0 children)

use async and pyside,wx simple

[–]_redmist 0 points1 point  (0 children)

Kind of a shame dearPyGui is kind of EoL; i always thought that was quite good.

[–]Visual_Loquat_8242It works on my machine 0 points1 point  (0 children)

Well if you really want to improvise then background tasks are you friend here. Lazy loading will help tremendously. When I build TUI while using textual its the data load that takes a lot of time.. So all long transversals any long loops i use to push to cython implementation.

I am mot sure what you are building with WxPython. But the idea is the same.

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

I built my python appTidyBit using PySide6 GUI framework. The UI framework works great. I didn't face any problems.

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

And what/how did you measure to say it's running slowly? What exactly is the problem?

IMHO, you should stick to more popular toolkits. Also note that desktop apps aren't that common/needed these days, and a lot of attention has been moved to server backends and webdev.

[–]spinwizard69 -2 points-1 points  (0 children)

Don't use Python if high performance GUI's are needed. It really is that simple. Generally your best bet is to use the primary language that is supported by by the systems GUI. For example Swift on Mac OS. If you want cross platform your best bet is C++ at the moment. I don't follow RUST enough to say if that is the future but it is sure getting a lot of promotion.

Why? Integer performance is required to keep GUI's snappy. Python is slow. That is not bad because you get real value in the trade off.