Um Gtk.TreeStore e Gtk.ListStore são diferentes porque Gtk.ListStore é uma lista simples na qual você adiciona linhas como uma lista, enquanto Gtk.TreeStore contém dados pai / filho, portanto, o pai é Gtk.TreeIter e uma lista como linha.
parent_iter = treestore.append(None, ["parent row"])
treestore.append(parent_iter, ["child row"])
Quanto à janela vazia, dê uma olhada nas vistas seção dos documentos.