1

I need to add a GUI component/interface to a prexisting python library. It has networking components like nodes and connections. How do I go about doing that?

Target platforms are desktop/laptop systems (focus on Linux and Windows). Target audience would be people looking to develop Quantum Networks (For quantum communication protocols) who are not as familiar with programming as they are with physics.

I am expecting at the very least to be able to define and illustrate (2D) multiple nested sub-components of primary components, basic shapes like circles and rectangles with some customization should be enough for starters.

Performance is not expected to be a major consideration on the scale that currently things are.

Using other basic math libraries like random and numpy.

Would Tkinter be of some use here? Or will I have to build something from the ground up? I just need some input to jump start the work.

1 Answer 1

1

This question is too broad to give a good answer.

In general I would see Tkinter at the baseline, don't go below that line.

Another general advise is to go with Qt: https://www.qt.io/qt-for-python It is cross-platform, give a native look-and-feel, is very powerful and complete in regards with features you expect from a modern GUI.

For example what comes to my mind given your application:

  • HiDPI, touch support
  • Powerful graphics view component
  • Integration with fast GL-based rendering
  • Support for threading so the GUI thread is not blocked by computations
Sign up to request clarification or add additional context in comments.

3 Comments

Thanks for this answer. What other specifics can I add to give you and others a better idea of what I want?
What are your target platforms (Hardware and Software)? Target audience? Scope of the GUI in terms of functionality and types of visualizations? Performance and usability considerations? Other libraries you are interoperating with?
Given your requirements, I still believe Qt is a good choice because it has a nice interface for drawing with QPainter on any widget (a simple QLabel will do), or if you want to have an interactive scene, QGraphicsView with QGraphicsItems. However you should have a look at deployment options and what you need there. I would recommend pyinstaller, doc.qt.io/qtforpython/deployment-pyinstaller.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.