Não há uma maneira "correta" de fazer nada. Há apenas maneiras diferentes com vantagens e desvantagens. O Ubuntu SDK é uma boa opção, mas há muitos outros também. O SDK do Ubuntu é baseado no framework Qt que é um framework GUI de plataforma cruzada popular, mas geralmente é escrito usando C ++.
Outra estrutura de GUI de plataforma cruzada popular é o GTK, que tem boas ligações no Python usando o PyGTK.
No geral, esta questão vai ser muito opinativa porque, como eu disse, não há uma maneira "certa" de fazê-lo.