Access database - GUI - Python - I need architectural advice

Chris Angelico rosuav at gmail.com
Thu Nov 28 01:19:53 EST 2013


On Thu, Nov 28, 2013 at 4:55 PM, jm.almeras <jm.almeras at nospam.net> wrote:
> Thank you ChrisA
>
> These are good ideas. But looking precisely at widgets I will need, is one
> of the GUI builders capable of offering :
>
> 1) the use of tabs in a form (that excludes Tkinter I believe)
> 2) dimensionable and editable arrays of columns and rows like when you open
> a table under Access.

I'm assuming it was oversight that had this come to me privately
rather than be on list, and am hoping you won't mind my response going
to the list.

My personal experience with GUI toolkits includes a whole lot that
you'll probably never see in your life (VX-REXX, VPREXX, DrRexx, VREXX
(yeah, I did a lot with REXX in the 1990s), OWL, OS/2 PM, and various
others), but only a few of the modern cross-platform ones. Of the
three most popular Python toolkits, I have virtually no experience
with two (wx and tk), and my GTK work has mostly been in Pike rather
than Python. So I can't say what tkinter is capable of, but certainly
GTK will do what you want.

GTK's TreeView [1] [2] is capable of what you want. It does take some
effort to set it up (I dread the thought of doing it in C - it's
fiddly enough in languages where the array/tuple is a first class
object), but its power is immense. Don't let the "Tree" put you off -
a table view is just a tree where everything is a leaf. As for tabs -
if you mean a Notebook[3], that's fully supported and easy to use. Be
careful what you do with them, though, it's easy to make a UI that's
nigh impossible to find things in if you bury things deep enough. My
favorite example of that is adjusting virtual memory settings in
Windows (XP; not sure how it is in the newer ones): you go to Control
Panel, System properties, Advanced tab, Performance settings button
(brings up another dialog), Advanced tab, Change virtual memory button
(brings up yet another dialog), and then you have all your controls.
Any time you're tempted to create a tab called "Advanced", have a good
long think about what else you might call it... and nesting "Advanced"
inside "Advanced" is usually a recipe for confusion!

[1] C docs: http://www.gtk.org/api/2.6/gtk/GtkTreeView.html
[2] Pike docs: http://pike.lysator.liu.se/generated/manual/modref/ex/predef_3A_3A/GTK2/TreeView.html
[3] http://www.gtk.org/api/2.6/gtk/GtkNotebook.html

ChrisA



More information about the Python-list mailing list