wxWidgets в C ++: как сделать так, чтобы wxGauge отображался поверх wxGLCanvas

У меня есть приложение на C ++ с wxWidgets, которое загружает плитки из OpenStreetMap и отображает карту внутри wxGLCanvas. Я также сделал индикатор выполнения с wxGauge, который показывает прогресс загрузки. Карта и индикатор выполнения находятся внутри wxGridBagSizer, я тоже пробовал с wxBoxSizer, но возникают те же проблемы.

wxGLCanvas map

Теперь я хочу, чтобы индикатор выполнения отображался поверх холста, а не сверху, как сейчас. Простое позиционирование с помощью wxPoint отправляет его за холст.

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

Как я могу сделать так, чтобы он отображался сверху, или, по крайней мере, сделать так, чтобы холст не растягивался на все мои другие виджеты?


person ChrisX    schedule 29.06.2015    source источник


Ответы (1)


Чтобы датчик не исчезал, когда он находится на той же панели, что и холст, необходимо указать минимальный размер для датчика.

Чтобы разместить указатель поверх холста, вам необходимо поместить его в отдельный фрейм с родительским элементом основного кадра и стилем wxFRAME_FLOAT_ON_PARENT.

person ravenspoint    schedule 29.06.2015