[python] Smazání určitého řádku s widgety z QGridLayoutu

Petr Vaněk petr na scribus.info
Neděle Duben 19 20:44:30 CEST 2009


Dne neděle 19 Duben 2009 19:37:02 Martin Stiborský napsal(a):
> Umím zjistit kterého řádku čudlik byl zmáčknut, umím najít widgety
> onoho konkrétního řádku, ale pomocí removeItem je neumím smazat.
> Tedy ony zmizí, ale funguje to nějak divně,řádek se posune někam
> naspod QGridLayoutu, kousek widgetu je pořád vidět, těžko popsat.
>
> Kód kterým mažu:
> def deleteRow(self):
>     sender = self.sender()
>     index = self.answersWidgets.indexOf(sender)
>     row = self.answersWidgets.getItemPosition(index)[0]
>     for x in range(self.answersWidgets.columnCount()):
> 	widget = self.answersWidgets.itemAtPosition(row, x)
> 	if widget is not None:
> 	    self.answersWidgets.removeItem(widget)
>
> Udělal jsem video, tam je dobře vidět, kde je problém.
> http://www.vimeo.com/4226650
> Co dělám špatně ?

z dokumentace:
"Removes the layout item item from the layout. It is the caller's 
responsibility to delete the item."

Takže widget stále zůstává potomkem "parenta" - přesune se z layoutu někam do 
rodiče. Musíš jej smazat/zrušit ručně.

p.

P.S.: obecná - chlapíci, kdybyste dávali nějaké "minimální fungující kódy", 
tak to můžu hned nasimulovat, ale takhle mne ani nehne ;)


Další informace o konferenci Python