Невидимость

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
User avatar
McSeem
In need of some credit
In need of some credit
Posts: 8
Joined: Wed Aug 30, 2017 11:31 am

Невидимость

Postby McSeem » Thu Oct 12, 2017 5:55 pm

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

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

User avatar
cutecode
Earned some good credits
Earned some good credits
Posts: 110
Joined: Fri Dec 09, 2016 7:28 am
Contact:

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

Postby cutecode » Thu Oct 12, 2017 11:04 pm

Кажется так

Code: Select all

Show(false);
regards,
Alexander Saprykin

User avatar
McSeem
In need of some credit
In need of some credit
Posts: 8
Joined: Wed Aug 30, 2017 11:31 am

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

Postby 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: 12
Joined: Thu Apr 13, 2017 1:34 pm

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

Postby Serge_N » Thu Oct 19, 2017 2:54 pm

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


Нет необходимости в таких излишних манипуляциях. wxGrid наследуется от класса wxScrolledWindow который в свою очередь унаследован от класса wxWindow. Поэтому вы можете свободно использовать Show()/Hide() с гридом, так же как с wxWindow или с любым другим виджетом унаследованным от wxWindow.

User avatar
McSeem
In need of some credit
In need of some credit
Posts: 8
Joined: Wed Aug 30, 2017 11:31 am

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

Postby 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: 12
Joined: Thu Apr 13, 2017 1:34 pm

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

Postby 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: 12
Joined: Thu Apr 13, 2017 1:34 pm

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

Postby Serge_N » Fri Oct 20, 2017 2:21 pm


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

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

Postby Serge_N » Fri Oct 20, 2017 2:29 pm

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

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

User avatar
McSeem
In need of some credit
In need of some credit
Posts: 8
Joined: Wed Aug 30, 2017 11:31 am

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

Postby 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: 12
Joined: Thu Apr 13, 2017 1:34 pm

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

Postby Serge_N » Sat Oct 21, 2017 1:43 pm

McSeem wrote:Спасибо огромное за подробное объяснение! Все работает! Еще хотелось бы поинтересоваться, что за IDE на Вашем скрине?


На скрине Geany под Linux. Но я пользуюсь Geany редко. Основная IDE у меня Code::Blocks.


Return to “wxWidgets Development (Russian)”

Who is online

Users browsing this forum: No registered users and 3 guests