Окно-переполнение виджета в wxWidgets

Я ищу способ реализовать этот дизайн в wxPython на Linux...
У меня есть панель инструментов с кнопкой, когда кнопка нажата, должно появиться всплывающее окно, имитирующее расширение панели инструментов (например, меню), и это всплывающее окно должно отображать два столбца переключателей (скажем, 2x5) и текстовое поле.. Моя главная проблема в том, что панель инструментов имеет небольшую высоту, поэтому всплывающее окно должно выходить за границы области окна / клиента.

Я подумал о двух возможных реализациях:

  • с помощью wxMenu, поскольку меню может быть нарисовано за пределами клиентской области. Боюсь, что возможности макета недостаточно гибки для моей цели
  • с помощью фасонной рамы. Нажатие на кнопку приведет к изменению формы рамки и отображению необходимых виджетов в соответствии с запросом.

Мой вопрос: я что-то упустил / что-то не так?:) Это вообще выполнимо?

1 ответ

Решение

Использование меню не допускается, потому что wxWidgets не могу поместить виджеты в меню. Использование фигурной рамки было бы в принципе возможным, но проблема заключается в том, чтобы получить положение нажатой кнопки, чтобы окно отображалось в правильном положении. Я пытался сделать это тогда, но не повезло (в C++ wxWidgets). Может быть, эта ситуация поменялась между тем, удачи.

Вы также можете попробовать wxComboCtrl, который позволяет вам иметь собственное всплывающее окно. Тогда можно было бы отобразить окна радио и контроль ввода.

Другие вопросы по тегам