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