Page 1 of 1

Невидимость

Posted: Thu Oct 12, 2017 5:55 pm
by McSeem
Доброго времени суток,
Подскажите пожалуйста, как управлять видимостью/невидимостью элементов, ну например, мне нужно скрывать панель или Grid. Не могу найти соответствующих методов. Возможно ли вообще с wxWidgets скрывать и отображать ранее скрытые объекты?
Заранее спасибо.

UPD: Покопался в методах класса wxToolBar - среди них есть Hide() и Show(). Но мне нужно скрывать Grid, но у wxGrid нет Show() и Hide(). Как можно скрывать/показывать Grid?

Re: Невидимость

Posted: Thu Oct 12, 2017 11:04 pm
by cutecode
Кажется так

Code: Select all

Show(false);

Re: Невидимость

Posted: Fri Oct 13, 2017 5:53 am
by McSeem
cutecode wrote:Кажется так

Code: Select all

Show(false);
Спасибо, разобрался. Нужно поместить Grid как дочерний элемент в какой-либо другой родительский элемент (контейнер), класс которого имеет соответствующие методы (Show()/Hide()) и управлять видимостью этих родительских элементов.

Re: Невидимость

Posted: Thu Oct 19, 2017 2:54 pm
by Serge_N
McSeem wrote: Спасибо, разобрался. Нужно поместить Grid как дочерний элемент в какой-либо другой родительский элемент (контейнер), класс которого имеет соответствующие методы (Show()/Hide()) и управлять видимостью этих родительских элементов.
Нет необходимости в таких излишних манипуляциях. wxGrid наследуется от класса wxScrolledWindow который в свою очередь унаследован от класса wxWindow. Поэтому вы можете свободно использовать Show()/Hide() с гридом, так же как с wxWindow или с любым другим виджетом унаследованным от wxWindow.

Re: Невидимость

Posted: Thu Oct 19, 2017 7:00 pm
by McSeem
Serge_N wrote:
McSeem wrote: Поэтому вы можете свободно использовать Show()/Hide() с гридом, так же как с wxWindow или с любым другим виджетом унаследованным от wxWindow.
Можно по-подробнее с примером? Я не совсем понимаю как можно использовать Show()/Hide() с гридом, если этих методов нет для этого виджета. Возможно, я неправильно понимаю механизм наследования.

Re: Невидимость

Posted: Fri Oct 20, 2017 2:17 pm
by Serge_N
Грид наследуется от wxScrolledWindow, это можно посмотреть в заголовочном файле грида (Скрин прилагаю). В свою очередь wxScrolledWindow наследуется от wxWindow (с версии 3.0.0 и помоему с 2.9 через шаблон wxScrolied с wxPanel, а Панель наследуется от wxWindow), а в версии 2.8.xxx без шаблона).

Re: Невидимость

Posted: Fri Oct 20, 2017 2:21 pm
by Serge_N
Show()/Hide() это функции-челены класса wxWindow:

http://docs.wxwidgets.org/3.0/classwx_w ... 3fb4d95328

http://docs.wxwidgets.org/3.0/classwx_w ... e0276ef07f

Re: Невидимость

Posted: Fri Oct 20, 2017 2:29 pm
by Serge_N
Ага вот нашел... в документации к версии 2.8 это лучше видно, потому, как без шаблона:

http://docs.wxwidgets.org/2.8/wx_wxgrid.html#wxgrid

Re: Невидимость

Posted: Sat Oct 21, 2017 8:30 am
by McSeem
Serge_N wrote:Show()/Hide() это функции-челены класса wxWindow:

http://docs.wxwidgets.org/3.0/classwx_w ... 3fb4d95328

http://docs.wxwidgets.org/3.0/classwx_w ... e0276ef07f
Спасибо огромное за подробное объяснение! Все работает! Еще хотелось бы поинтересоваться, что за IDE на Вашем скрине?

Re: Невидимость

Posted: Sat Oct 21, 2017 1:43 pm
by Serge_N
McSeem wrote: Спасибо огромное за подробное объяснение! Все работает! Еще хотелось бы поинтересоваться, что за IDE на Вашем скрине?
На скрине Geany под Linux. Но я пользуюсь Geany редко. Основная IDE у меня Code::Blocks.