4

I use Python for basic back end purposes, using numpy/pandas heavily. I’m now looking to build out a program that incorporates a GUI. For my program, I’m thinking about either using a Python related GUI such as Tkinter or Kivy, or learning JavaScript and building it out via html or using electron.

The program primarily revolves around a displayed data table. The cells (or boxes) of the data table should be editable by simply clicking on the box. The values in these cells will have conditional formatting applied (making the background change color for each cell).

A great bonus would be if the data could be easily inserted into a pandas dataframe in case I wanted to perform any further back end adjustments.

I’ve so far been dabbling in Kivy, but it doesn’t seem to handle dataframes and data table outputs very intuitively (I could be wrong about this and just need more experience with the program!).

What GUI solution might be best suited for my data table desires?

NOTE: Any solution I pick, I would like it to have minimal issues with licensing, etc. (I believe this is an issue with PyQT, but I could be wrong.)

Very baseline drawing of what the application could look like:

enter image description here

  • You should take a look at libui. It's open source on GitHub and I would expect that there is a Python wrapper, as it is fairly popular. – spikespaz Nov 21 '18 at 5:25
  • Based on the information on the Github page, I would be cautious about libui, as it says "some of it will be buggy on certain platforms, and there's a lot of stuff missing". – BrenBarn Nov 22 '18 at 19:13
1

My suggestion would be to install wxPython with pip install wxPython and then run the Demo, (from the command line wxdemo should do the job and have a look at the demos for Core Windows/Controls->Grid->wx.Grid Showing Editors and Renders and the one for Shows how to create a custom Cell Editor.

wxPython has a very permissive licence - LGPL with Binary Distribution.

wx.Grid Showing Editors and Renders Shows how to create a custom Cell Editor

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.