Pyglade, gtk, howto write more efficiently, and waste less code?

P

Pipiten

Hi everybody, i` m new in this group, and python so.., my greetings to
everybody here.
I wrote a little program, in wich i do this:
(I have several "Select File" buttons, one for each file (in this case,
an image) wich has an text_entry, so i can add a comment for each
picture.)

def on_button1_clicked(self,widget):
"""Button 1 pressed"""
image_file1 = FileSelection(self)
self.path1.set_text(image_file1)
self.image1.set_from_file(image_file1)
self.image1.show()

def on_button2_clicked(self,widget):
"""Button 2 pressed"""
image_file2 = FileSelection(self)
self.path2.set_text(image_file2)
self.image2.set_from_file(image_file2)
self.image2.show()

def on_button3_clicked(self,widget):
"""Button 3 pressed"""
image_file3 = FileSelection(self)
self.path3.set_text(image_file3)
self.image3.set_from_file(image_file3)
self.image3.show()

def on_button4_clicked(self,widget):
"""Button 4 pressed"""
image_file4 = FileSelection(self)
self.path4.set_text(image_file4)
self.image4.set_from_file(image_file4)
self.image4.show()

def on_button5_clicked(self,widget):
"""Output dir button pressed"""
outputpath = FileSelection(self)
self.path5.set_text(outputpath)


Is there any way to do this, with a for bucle, or something like that?.
For example, if i want to to the same, 25 times, not to copy and paste.
Does anyone knows how to do that?, write it one time, and flexible to
use many times.
( I think it should be with the variables sent by parameters, isn´t? )



Thanks a lot, have a nice day!
 
N

niemand.leermann

Pipiten said:
Hi everybody, i` m new in this group, and python so.., my greetings to
everybody here.
I wrote a little program, in wich i do this:
(I have several "Select File" buttons, one for each file (in this case,
an image) wich has an text_entry, so i can add a comment for each
picture.)

def on_button1_clicked(self,widget):
"""Button 1 pressed"""
image_file1 = FileSelection(self)
self.path1.set_text(image_file1)
self.image1.set_from_file(image_file1)
self.image1.show()
...

You can connect all buttons to the same callback,
and in the callback you pick they matching image.

At least that what I would do (Up to now I don't use glade).

HTH,
Thomas
 
P

Pipiten

Thanks thomas!, i did it that way ;).

maybe someone can help me with this, it seems simple, but i don`t know
how to do it.

I have:
self.paths = ["","path1","path2","path3","path4","path5"]
self.paths[1] = self.wTree.get_widget("path1")
self.paths[2] = self.wTree.get_widget("path2")
self.paths[3] = self.wTree.get_widget("path3")
self.paths[4] = self.wTree.get_widget("path4")
self.paths[5] = self.wTree.get_widget("path5")

what about if i have 30 widgets? how can i "get" them all?

... variables variables? ¬¬



thanks everybody, good luck
 
G

Gabriel Genellina

I have:
self.paths = ["","path1","path2","path3","path4","path5"]
self.paths[1] = self.wTree.get_widget("path1")
self.paths[2] = self.wTree.get_widget("path2")
self.paths[3] = self.wTree.get_widget("path3")
self.paths[4] = self.wTree.get_widget("path4")
self.paths[5] = self.wTree.get_widget("path5")

what about if i have 30 widgets? how can i "get" them all?

Is this what you want?

for i,path in enumerate(self.paths):
self.paths = self.wTree.get_widget(path)



Gabriel Genellina
Softlab SRL





__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top