How about using QToolButton? It supports a menu with three different popup styles, out of the box.