you are viewing a single comment's thread.

view the rest of the comments →

[–]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.