[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