Am 26.04.2011 17:34, schrieb bod...@googlemail.com:
Hi,

I am reading in data from a csv file which will be in a format like this

User1, attrib1, attrib2
User2, attrib1, attrib2
Etc.

And need to display this in a window. My initial thought was to use gtk.Entry 
widgets because I will need to edit this data, but I don't think this will work 
as I will also need to read the data back, in relation to the user column, e.g 
I will have something like

[Psuedocode]
For I in entries:
     A = usercolumn
     B = attrib1column
     C = attrib2column

     Somefunction(A,B,C)
[/psuedocode]

I don't think I could use this method with entry boxes as I have no idea how 
many entries there will be (column length will be fixed) so I can't create the 
entry widgets beforehand


You could use a table widget. I'm sure GTK has something like that (I'm using Qt).

Otherwise, creating a "dynamic" widget for one set of your data is not as hard as it might sound. You need to keeping references to the composing widgets, for example in a dict. Here's some PyQt Pseudocode:


# You can retrieve the dictionary and the fieldnames with help of the
# csv module
att_name_to_value = {"User": "User1", "Att1": "attrib1", "Att1": "attrib1"}
fieldnames = ["User", "Att1", "Att2"]

att_name_to_line_edit = {}

# This is Qt specific
layout = QtGui.QGridLayout()

for row, fieldname in enumerate(fieldnames):
    label = QtGui.QLabel(fieldname)
    line_edit = QtGui.QLineEdit(att_name_to_value[fieldname]
    att_name_to_line_edit[fieldname] = line_edit
    # add the label to the first col
    layout.addWidget(label, row, 0)
    # add the line_edit to the second col
    layout.addWidget(line_edit, row, 1)

my_main_widget = QtGui.QWidget()
my_main_widget.setLayout(layout)


Now, if you need to read the changed data from the widget (triggered by a button_clicked event or what ever) you can call a function to read the data like this:


def read_data_from_widget(att_name_to_line_edit):
    for att_name, line_edit in att_name_to_line_edit.items():
        # do the conversion, e.g. PyQt
        new_text = str(line_edit.text())
        # do whatever you wish with the new data ...


HTH,

Jan




Anyone have any suggestions?

Thanks,
Bodsda
Sent from my BlackBerry® wireless device
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to