Невидимость

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
User avatar
McSeem
Earned a small fee
Earned a small fee
Posts: 13
Joined: Wed Aug 30, 2017 11:31 am

Невидимость

Post by McSeem »

Доброго времени суток,
Подскажите пожалуйста, как управлять видимостью/невидимостью элементов, ну например, мне нужно скрывать панель или Grid. Не могу найти соответствующих методов. Возможно ли вообще с wxWidgets скрывать и отображать ранее скрытые объекты?
Заранее спасибо.

UPD: Покопался в методах класса wxToolBar - среди них есть Hide() и Show(). Но мне нужно скрывать Grid, но у wxGrid нет Show() и Hide(). Как можно скрывать/показывать Grid?
User avatar
cutecode
Super wx Problem Solver
Super wx Problem Solver
Posts: 425
Joined: Fri Dec 09, 2016 7:28 am
Contact:

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

Post by cutecode »

Кажется так

Code: Select all

Show(false);
wx 3.1.6 win/mac/linux

regards,
Alexander Saprykin
https://v2.dental-soft.ru
User avatar
McSeem
Earned a small fee
Earned a small fee
Posts: 13
Joined: Wed Aug 30, 2017 11:31 am

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

Post by McSeem »

cutecode wrote:Кажется так

Code: Select all

Show(false);
Спасибо, разобрался. Нужно поместить Grid как дочерний элемент в какой-либо другой родительский элемент (контейнер), класс которого имеет соответствующие методы (Show()/Hide()) и управлять видимостью этих родительских элементов.
Serge_N
Knows some wx things
Knows some wx things
Posts: 40
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N »

McSeem wrote: Спасибо, разобрался. Нужно поместить Grid как дочерний элемент в какой-либо другой родительский элемент (контейнер), класс которого имеет соответствующие методы (Show()/Hide()) и управлять видимостью этих родительских элементов.
Нет необходимости в таких излишних манипуляциях. wxGrid наследуется от класса wxScrolledWindow который в свою очередь унаследован от класса wxWindow. Поэтому вы можете свободно использовать Show()/Hide() с гридом, так же как с wxWindow или с любым другим виджетом унаследованным от wxWindow.
User avatar
McSeem
Earned a small fee
Earned a small fee
Posts: 13
Joined: Wed Aug 30, 2017 11:31 am

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

Post by McSeem »

Serge_N wrote:
McSeem wrote: Поэтому вы можете свободно использовать Show()/Hide() с гридом, так же как с wxWindow или с любым другим виджетом унаследованным от wxWindow.
Можно по-подробнее с примером? Я не совсем понимаю как можно использовать Show()/Hide() с гридом, если этих методов нет для этого виджета. Возможно, я неправильно понимаю механизм наследования.
Serge_N
Knows some wx things
Knows some wx things
Posts: 40
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N »

Грид наследуется от wxScrolledWindow, это можно посмотреть в заголовочном файле грида (Скрин прилагаю). В свою очередь wxScrolledWindow наследуется от wxWindow (с версии 3.0.0 и помоему с 2.9 через шаблон wxScrolied с wxPanel, а Панель наследуется от wxWindow), а в версии 2.8.xxx без шаблона).
Attachments
wxGridHeader.png
Last edited by Serge_N on Fri Oct 20, 2017 2:36 pm, edited 2 times in total.
Serge_N
Knows some wx things
Knows some wx things
Posts: 40
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N »

Show()/Hide() это функции-челены класса wxWindow:

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

http://docs.wxwidgets.org/3.0/classwx_w ... e0276ef07f
Serge_N
Knows some wx things
Knows some wx things
Posts: 40
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N »

Ага вот нашел... в документации к версии 2.8 это лучше видно, потому, как без шаблона:

http://docs.wxwidgets.org/2.8/wx_wxgrid.html#wxgrid
User avatar
McSeem
Earned a small fee
Earned a small fee
Posts: 13
Joined: Wed Aug 30, 2017 11:31 am

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

Post 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 на Вашем скрине?
Serge_N
Knows some wx things
Knows some wx things
Posts: 40
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N »

McSeem wrote: Спасибо огромное за подробное объяснение! Все работает! Еще хотелось бы поинтересоваться, что за IDE на Вашем скрине?
На скрине Geany под Linux. Но я пользуюсь Geany редко. Основная IDE у меня Code::Blocks.
Post Reply