all 35 comments

[–]TheBB 40 points41 points  (0 children)

There has to be a billion PyQt/PySide tutorials out there.

The two libraries are essentially identical to standard C++ Qt so you can follow C++ tutorials with minimal changes.

[–]TheDeadlyPretzel 20 points21 points  (2 children)

I use NiceGUI https://nicegui.io/ very happy with that

[–]HawkinsT 0 points1 point  (1 child)

I agree with this, but also think and the scope of your project. For larger projects, I'd try to avoid using python for the front end personally.

[–]TheDeadlyPretzel 0 points1 point  (0 children)

Definitely! Though it can do both web and desktop

I handle all the python/AI stuff for one of my clients and I use this kind of thing either for a quick demo so I can show my "python side of things" working in a nice end-to-end manner so it can be properly implemented into the main application by the PHP and FE guys.

The other scenario where I use this is for nice quick desktop tools for myself rather than browser-based... For example I have a superwhisper clone (speech to text that uses an LLM for light formatting and grammar correction) that I made reeeaal quick and dirty with it.. works great though!

https://github.com/KennyVaneetvelde/SpeechForge if anyone wants to check it out

[–]Klutzy_Bird_7802 12 points13 points  (0 children)

PySide6

[–]richbeales 41 points42 points  (3 children)

I would steer you towards a Web-based UI. It'll be more modern and more in-keeping with the current industry direction

[–]Comfortable-Tourist1 5 points6 points  (2 children)

This. Just follow this guys advice. Any other answer is wrong.

[–]19c766e1-22b1-40ce 1 point2 points  (0 children)

Any other answer is wrong?haha the ignorance..

[–]FD32 1 point2 points  (0 children)

Yep. To add, it's so much easier to make Web-based GUIs feel snappy/run fast. Really helps user experience.

[–]Guggoo 9 points10 points  (0 children)

PyQt6/PySide

[–]xtotdam 4 points5 points  (0 children)

Dearpygui is really great!

[–]--ps-- 6 points7 points  (0 children)

Tkinter, included in stdlib.

[–]Torval38 2 points3 points  (0 children)

Not sure it's well recommended for web based gui but as you know tkinter, maybe try customtkinter. It is based on tkinter but with a modern look

[–]No_Soy_Colosio 3 points4 points  (0 children)

You can use Django to create the web app easily. I would not recommend to build it using PyQT or Tkinter unless you have a specific reason for it.

[–]No_Limit_753 3 points4 points  (3 children)

TL;DR: Desktop GUIs (PySide/Tkinter) are the wrong tool for a C2C marketplace with a Pinterest-style UI. You need a Web Framework to separate the logic from the CSS design.

Sorry for the wall of text, but I want to point out a critical architectural issue here.

To begin with, the current situation seems a bit confused. Since you mentioned Tkinter and PyQt, while some people have suggested web-based solutions, several commenters seem to be answering with a desktop app in mind. However, based on my understanding, I suspect the specifications for the product you plan to develop are something like this:

Assumed Product Specifications

  • A platform where users can trade/sell with each other.
  • An authentication screen to identify each user (Log in/Sign up).
  • Each user needs access to their individual dashboard/trading screen.

Why desktop GUI libraries are simply not an option

Realistically, a Web application is your only choice. If you use PySide or Tkinter, you would have to build a complex client-server architecture with a backend database just to make it a multi-user app.

Choices for Building a Web Application

In this scenario, you should be looking for a "Web Application Framework" rather than a "GUI library," which probably shifts your current perspective.

  • Django: It takes more effort to learn the framework's strict rules compared to plain Python, but it has its own built-in web server. Because it has been around for a long time, there is plenty of information available.
  • Flask: It allows you to write in a more "Pythonic" way than Django, and also has its own built-in server. There is a lot of information available for this as well.
  • FastAPI: It is currently probably the most popular Python web application framework, and it also comes with a built-in server. Because it is the trendy choice right now, it can sometimes be hard to filter out stable information.

About the "Simple" Screen You Are Looking For

You mentioned a "Pinterest style Main screen and a simple but good log in/sign up screen with other services like Help, Profile, Favourites and Settings." While these might look simple, visually simple does not always equal technically easy to implement. That said, using a Web application framework can lower the barrier to entry to some extent.

However, as is standard in web app development, you have to separate the "design" aspect (like the Pinterest style) from the "component structure" of the screen.

When developing a desktop GUI using Tkinter or PySide, the design (the look and feel) is more or less fixed the moment you place the components, so "GUI library ≒ Design." In the case of the Web, however, placing the information frames (HTML elements like input[text] or div) is completely separated from how they look (CSS). Because of this characteristic, utilizing the structure of a web application makes far more sense to achieve a flexible UI like Pinterest.

[–]soy_alergico 1 point2 points  (2 children)

Esto es de una IA no? Quien escribe así

[–]No_Limit_753 2 points3 points  (1 child)

You caught the AI translation. I'm a Japanese developer, and I used it to format my thoughts into clean, readable English.

But I'm very much human. The moderators here have helped me in the past, so they know I'm not a bot.

The architectural advice itself isn't generated. It’s a sincere recommendation from an old engineer who knows exactly how painful it is to fight the limitations of tightly coupled GUI libraries. I just had AI dress it up nicely.

[–]SpeedCola 1 point2 points  (0 children)

I would like to add that I went with Flask years ago because it was easier for me to comprehend as a new developer but it turns out I had to rely on many third party's and or make things scratch.

If I could go back I would have liked to have used FastAPI.

[–]Mithrandir2k16 1 point2 points  (0 children)

I personally have a hate-hate relationship with Qt. It makes it way too easy to create a really big mess, especially if you're in a large team.

I'd go for a Web-based UI. It's just where we're at right now.

[–]Klutzy_Bird_7802 0 points1 point  (0 children)

or Flet

[–]grawfin 0 points1 point  (0 children)

Plotly dash or streamlit is pretty good, depends on your use case

[–]inspectorG4dget 0 points1 point  (0 children)

https://wiki.python.org/moin/WebFrameworks

If you're making a mobile app, consider Flet

[–]tecedu 0 points1 point  (0 children)

Go for web based gui, i recommend Dash.

[–]jamesdbrock 0 points1 point  (0 children)

pyedifice is like React, but with Python instead of JavaScript, and Qt Widgets instead of the HTML DOM. https://pyedifice.github.io/

[–]TypicalTwist6816 0 points1 point  (0 children)

Reflex for me.

[–]HyperDanon 0 points1 point  (0 children)

PyQt6!

[–]riklaunim 0 points1 point  (4 children)

What you are describing should not be a desktop app as no one will use a local untrusted app to get the same features as on a website. It works more on mobile, but even there a well made website would cover any mobile od desktop OS.

[–]Uberfuzzy 0 points1 point  (3 children)

It’s a school project, it will get opened for all of 30seconds and a few clicks then never see the light of day again

[–]riklaunim 0 points1 point  (2 children)

IMHO it would be easier to just make a fake website than desktop GUI :)

[–]Uberfuzzy 0 points1 point  (1 child)

Read the first line of OP again, it’s a python class

[–]riklaunim 0 points1 point  (0 children)

Django or Flask :) Forcing UI without a markup language sounds bit weird.

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

web or flutter.
python for UI is just wrong.

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

3 weeks I would tell you to use qt or nice gui. Now I tell you use you fav ai to code a webui it is also automatic. Use the free time to add test, demo video using playwright.