Portál AbcLinuxu, 10. května 2025 02:50

Dotaz: Smaže QTabWidget vložené widgety?

Wan-To avatar 17.3.2006 16:10 Wan-To | skóre: 16 | blog: WanBlog | Čelákovice
Smaže QTabWidget vložené widgety?
Přečteno: 122×
Odpovědět | Admin
Mám tento kód, kde tabs je QTabWidget a clientw/serverw je QWidget uvnitř QTabWidgetu:
delete tabs;
delete clientw;
delete serverw;
při spuštění tohoto kódu se aplikace ukončí se signálem "Neoprávněný přístup do paměti (SIGSEGV)".

Když však widgety uvnitř smažu před smazáním tabs, kód proběhne úspěšně:
delete clientw;
delete serverw;
delete tabs;
Jak je to tedy s mazáním QTabWidgetu v Qt4? Skoro to vypadá, že si destruktor zjistí, jestli byly widgety uvnitř smazané a pokud ne, smaže je. V dokumentaci k QTabWidget jsem o tomto chování nic nenašel.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.3.2006 18:10 Shamot
Rozbalit Rozbalit vše Re: Smaže QTabWidget vložené widgety?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano, QTabWidget smaze vlozene objekty (uvolni pamet). Obecne se tak chovaji vsechny widgety, pri sve destrukci uvolni i widgety, které vlastní + ty, které jej mají explicitně nastaven jako parent.
Wan-To avatar 17.3.2006 18:25 Wan-To | skóre: 16 | blog: WanBlog | Čelákovice
Rozbalit Rozbalit vše Re: Smaže QTabWidget vložené widgety?
A když widgety smažu před zavoláním destruktoru QTabWidget? Nepíše to žádnou chybu, vypadá to, že je vše v pořádku. Není v tom skrytá nějaká záludnost?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.