Search code examples
pythonuser-interfacematplotlibwxpythonmultiple-monitors

GUI applications in python for fast update of on-screen images


I apologize in advance for my noob-ness; I'm just getting into programming.

Can you set me down the right path for a GUI framework? Looking at this list of GUI frameworks is pretty daunting, considering my general lack of expertise.

Summary:

I'm trying to write a GUI in python that actively updates a second monitor with images that are mathematically generated using numpy. The GUI will have parameters that can be adjusted in real time that change the image (an interference pattern of light) accordingly.

Important criteria:

  • parameters adjusted on screen change the interference pattern in real time
  • compatibility with numpy, matplotlib (or easy graphing)

Secondary criteria:

  • a framework that is useful/flexible for a beginner who's interested in industry programming
  • dual monitor support (if push comes to shove I can just update the image in a window and move the window to the second monitor)
  • as a side project I'd like to write a stock trading interface (with graphs, commands, etc... maybe with PyAlgoTrade?), so, once again, flexibility would be nice

Right now I'm leaning towards wxpython, since I've heard that it's flexible with matplotlib (for stock trading GUI's). Before I head down this path (and likely overwhelm myself with new documentation), I'd like to make sure I'm not heading down an unnecessarily windy road.

Any useful links are much appreciated! Your 'keyword relevance' knowledge is likely much better than mine.

Thank you!


Solution

  • Tkinter GUI for python

    To have a fast idea, how matplotlib may get directly into a Tkinter based GUI, included a fully operational Model-Visual-Controller tripod co-integrated with Tkinter real-time control-loop, kindly go through this recipe: https://stackoverflow.com/a/25769600/3666197 enter image description here Both <<Important>> & <<Secondary>> parameters met.

    Fast updates

    Numpy is a lingua franca, so telling that it is a must is worthless.

    Good Real-Time UI / Event-handling design is cardinal. Poor MVC/control-loop may kill otherwise smart system ( as seen from recent updates of some professionally distributed trading system, where UI-responsiveness fell by far under an acceptable UI-interaction latency and sometimes even freezes UI-interactions for several tens of seconds

    There are techniques to construct matplotlib objects ( having pre-baked data-structures ), that accelerate any real-time updates to get propagated faster onto GUI-Visual-layer RealTime GUI