Невидимость

Это русская секция форума 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 » Thu Oct 12, 2017 5:55 pm

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

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

User avatar
cutecode
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 240
Joined: Fri Dec 09, 2016 7:28 am
Contact:

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

Post by cutecode » Thu Oct 12, 2017 11:04 pm

Кажется так

Code: Select all

Show(false);
regards,
Alexander Saprykin
www.wxwidgets.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 » Fri Oct 13, 2017 5:53 am

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

Code: Select all

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

Serge_N
Earned a small fee
Earned a small fee
Posts: 14
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N » Thu Oct 19, 2017 2:54 pm

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 » Thu Oct 19, 2017 7:00 pm

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

Serge_N
Earned a small fee
Earned a small fee
Posts: 14
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N » Fri Oct 20, 2017 2:17 pm

Грид наследуется от 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
Earned a small fee
Earned a small fee
Posts: 14
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N » Fri Oct 20, 2017 2:21 pm

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

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

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

Serge_N
Earned a small fee
Earned a small fee
Posts: 14
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N » Fri Oct 20, 2017 2:29 pm

Ага вот нашел... в документации к версии 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 » Sat Oct 21, 2017 8:30 am

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
Earned a small fee
Earned a small fee
Posts: 14
Joined: Thu Apr 13, 2017 1:34 pm

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

Post by Serge_N » Sat Oct 21, 2017 1:43 pm

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

Post Reply