Stéphane Brunet wrote:
John Finlay a écrit :
Stéphane Brunet wrote:
Hi,
btw, thank you John Finlay for the answer on my last question.
In my quest of a GUI interfacing my small database application (I
did try OpenOffice Base and went mad after one hour :S ) I would
like to copy some behaviour of MS Access in my forms.
Say I have two (SQL) tables with two fields and one relation between
the two:
---------------- ----------------
| Table1 | | Table2 |
---------------- ----------------
| Field1 (int) |<---->| Field1 (int) |
| Field2 (str) | | Field2 (str) |
---------------- ----------------
Now in my PyGTK form of Table1 (a TreeView), when I display the
Field1 in the first column, I would like to have a ComboBox which
displays the text associated to the integer value of Table2 (i.e.
Table2.Field2) rather than the value directly. However, I still want
it stored as an integer in Table1.Field1.
How would you do this in an elegant manner ? Do I have to create my
own CellRenderer more generic than a CellRendererCombo ?
How do you want the db info displayed in the treeview?
I think of actually displaying the content of Table1 with Field1 in
the first column and Field2 in a second column. However, Field1
wouldn't be displayed as an integer but as a string coming from
Table2. In order to modify the content of Field1, I would like the
user to select a string (of Table2.Field2) in a CellRendererCombo
rather than an integer.
Are you planning on inserting the
table info into a liststore or generating it on the fly?
I thought of using two separate ListStore to store the content of each
table. I don't know if it is the best way but I want to alter the
information in the DB only when the user has finished his
modifications in the GUI.
To set the value displayed in the first column you could use
set_cell_data_func and then set the text in the associated function
using the table1 field1 value to select the table2 field2 value.
John
_______________________________________________
pygtk mailing list pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/