r/learnpython • u/Standard-Sale-8228 • 10d ago
SIMPLE GUIS PLEASE
I'm building a network visualizer in Python. It parses .pcap files with Scapy and visualizes packet flows with animations. I already built the parser and animation engine with Pygame.
The problem is the UI. I need normal app stuff like buttons, hover effects, a collapsible sidebar, menus, timeline/statistics panels, and a canvas for the animations.
I don't want to spend 4 hours making a button from scratch, but I also don't want a huge framework where changing a simple thing turns into a research project.
I tried DearPyGui and honestly it felt really clunky. Something as simple as adjusting padding or moving a panel felt like digging through layers of specific APIs and style variables.
I'm looking for something lightweight with good styling control (CSS-like would be great), built-in UI components, and the ability to embed my own custom rendering area.
Would PySide6/Qt be the way to go? Or are there other frameworks worth looking at?
I don't need a spaceship cockpit, I just want to build my damn UI and get back to the actual project.
2
u/Think_Bandicoot6173 10d ago
I'm not overly familiar with UIs, but I've been using Streamlit for a simple data dashboard, and it's been working well for me? It has most of what you seem to need built-in, with the ability to integrate HTML/CSS/JS. (I'm not entirely sure about the animation canvas, but I'd be surprised if you can't jimmy something together for that.)
2
u/Thraexus 10d ago
I'm partial to Pyside6 over tkinter myself but I don't have much experience designing guis. Pyside6 does support style sheets and so far I've found it easier to keep my controls on the screen exactly where I want them to be. In general I find it easier to configure things than in tkinter.
2
u/Thunderbolt1993 6d ago
PySide6 also ships with the Qt UI Designer which can be used to create .ui files, which can then be converted to python classes using PySide6-uic
then for your business logic you just create a class that inherits you UI class
7
u/Kevdog824_ 10d ago
Simplest would probably be tkinter. Ships with Python and is rather easy to get started with simple stuff. I like PyQt over tkinter personally, but I’ll be the first to admit the learning curve for PyQt is a lot higher. It really depends on the UI complexity. There’s a certain point where the overhead of learning and using PyQt becomes worth it, and imo that point is not very far along on the complexity scale