crear una barra de desplazamiento en un submenú qt?

Tengo una aplicación de mapa y un submenú que ha agregado dinámicamente objetos (es decir, puntos en un mapa) al submenú, según la capa que se cargue. Tengo la capacidad de ocultar cada objeto individual (es decir, un punto) haciendo clic en el elemento del submenú correspondiente. ¿Hay alguna forma de organizar el submenú? Cuando hay muchos puntos (es decir, 100), el submenú completo ocupa la pantalla. ¿Puedo agregar una barra de desplazamiento a un submenú? Busqué en la documentación, pero no pude encontrar nada que apoye esta función.

A partir de este informe de error, pude descubrir que podía hacer lo siguiente:

submenu->setStyleSheet("QMenu { menu-scrollable: 1; }"); 

Funciona de maravilla.

No existe tal posibilidad, que yo sepa. Tal vez no debería usar un submenú para esto, sino que prefiere una entrada de menú que muestre su propia GUI de administrador de puntos, que tendría un QListWidget que muestra todos sus elementos de puntos. Soy consciente de que esta solución romperá una parte (¿grande?) De su código, pero no veo nada más.

Si bien es posible crear subclases en la clase QMenu para crear un widget personalizado e ir desde allí es mejor buscar una mejor manera de mostrar esa información. Se ahorrará tiempo y será mucho más fácil para sus usuarios no tener que desplazarse por una gran lista de elementos en un área pequeña.

Creo que puede obtener el efecto que desea al crear y usar su propia subclase QStyle (a través de QApplication :: setStyle ()), y reemplazar el método virtual styleHint para devolver 1 cuando el parámetro StyleHint pasado es SH_Menu_Scrollable. Al menos, eso me funciona cuando creo grandes objetos QMenu y los muestro como menús emergentes … También puede funcionar para QMenus adjunto a la barra de menús, pero no lo he intentado.