QAction * nesnesini silmek için QMenu'ya QAction * eklerken? QMenu ya da QAction için belgelerinde bulamadım.QAction mülkiyeti
void MyClass::contextMenuEvent(QContextMenuEvent *evt)
{
QMenu menu(this);
QAction *a = new QAction(tr("Some action"), this);
menu.addAction(a); // who owns a?
menu.exec(evt->globalPos());
}
Qt Menus example yüzden QMenu QAction sahipliğini aldığını varsayalım oluşturduğu işlemlerden herhangi birini silmez. Bu doğru mu?
Teşekkürler. Cevabınız "a" nın yok edilmesiyle ilgili belirsizdir. QObject bunu benim için yapar mı yoksa MyClass'da açıkça bir yere yapmalı mıyım? – glennr
Her bir QObject, QObject'in yok edildiğinde 'çocuklar' silindiğinde 'ebeveyn' olduğu bir QObjects listesi sağlar. Yani hayır, QObject öğenizin QObject türetilmiş nesnelerini üst argümanına geçirmeniz dışında bir şeye ihtiyacınız yoktur. QObject'teki dokümanları oku, bunu bu çabadan çok daha iyi açıklayacak ... – cmannett85