Wpis z mikrobloga

jak mam w headerze:

QAction *reasonsActs[20];
i w cpp

http://pastebin.com/raw.php?i=AHELj232

i tu pytanie - czy takie cos nie powoduje jakiś leak danych ? albo zapełnianie sie czegoś ?

bo za każdym razem klikniecie prawym bedzie robic nowy connect, da sie to jakiś inaczej obejsc ? taki dynamiczny connect

bo ogólnie działa mi to dobrze, tylko pytanie czy pamięcią i connectami taki sposób dobrze operuje sobie

#programowanie #qt @KrzaQ2 może @maciejkiner
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mero3: https://wykop-code.appspot.com/ polecam

tak, tutaj leakujesz, polecam

std::unique_ptr
. Poza tym, jeśli te akcje są stałe, to zainicjalizuj je raz a potem tylko buduj z nich menu. Co do connectów to nie musisz się martwić - po usunięciu obiektu Qt "magicznie" rozłącza połączenia usuwanego obiektu.
  • Odpowiedz
@mero3: W sumie w Twoim przypadku moƶesz wszystko zrzucić na Qt, ale proszę:

std::unique_ptr reasonmenu(new QMenu(tr("reason")));
// czy potrzebujesz tablicy QAction* ? jeśli są tylko do tego menu to nie ma sensu trzymać ich w tablicy (szczególnie, ƶe jej wielkość nie jest powiązana z IReasons.size()
QAction * a = new QAction(reasonmenu.get()); // parent = QMenu, dzięki czemu zwolnisz pamięć kasując
  • Odpowiedz