создать полосу прокрутки в подменю qt? - PullRequest
1 голос
/ 19 августа 2011

У меня есть приложение карты и подменю, в которое динамически добавляются объекты (то есть точки на карте), добавленные в подменю, в зависимости от загруженного слоя. У меня есть возможность скрыть каждый отдельный объект (то есть точку), нажав на соответствующий элемент подменю. Есть ли способ организовать подменю? Когда точек много (т. Е. 100), все подменю занимает экран. Могу ли я добавить полосу прокрутки в подменю? Я посмотрел в документации, но не смог найти ничего, что поддерживает эту функцию.

Ответы [ 4 ]

8 голосов
/ 06 февраля 2013

Из этого сообщения об ошибке Мне удалось выяснить, что вы можете сделать следующее:

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

Работает как шарм.

0 голосов
/ 20 августа 2011

Хотя возможно создать подкласс класса QMenu для создания собственного виджета, и оттуда лучше искать лучший способ отображения этой информации. Вы сэкономите время, и вашим пользователям будет намного проще не просматривать большой список элементов в небольшой области.

0 голосов
/ 20 августа 2011

Я думаю, что вы можете получить желаемый эффект, создав и используя собственный подкласс QStyle (через QApplication :: setStyle ()), и переопределив виртуальный метод styleHint, чтобы он возвращал 1, когда передан параметр StyleHint - SH_Menu_Scrollable , По крайней мере, это работает для меня, когда я создаю большие объекты QMenu и показываю их как всплывающие меню .... Это также может работать для QMenus, прикрепленного к строке меню, но я этого не пробовал.

0 голосов
/ 19 августа 2011

Насколько я знаю, такой возможности нет. Возможно, вам не следует использовать подменю для этого, но вы предпочитаете пункт меню, который показывает собственный графический интерфейс менеджера точек, в котором будет QListWidget, отображающий все ваши пункты. Я знаю, что это решение сломает (большую?) Часть вашего кода, но больше ничего не вижу.

...