QListView* newlist = new QListView(); //This is good? if so why?
Только если вы храните указатель newlist
где-нибудь и позже удаляете его вручную.
Если возможно, я бы предложил разместить ваши виджеты в стеке.Однако это невозможно при использовании техники, которую я собираюсь объяснить.
При разработке сложных виджетов вы обычно создаете дерево объектов виджетов.Это означает, что у каждого виджета, кроме корневого, есть родитель.Когда родитель удаляется, он автоматически удаляет всех своих потомков.Этот метод очень удобен, потому что вам нужно будет только отслеживать корневой виджет.
В вашем случае вы бы сделали что-то вроде этого:
QListView* newlist = new QListView(parentWidget);