Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Панель компонентов из wxTobbleButton 
:(
    Опции темы
itengineer
Дата 21.11.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 9.11.2008

Репутация: нет
Всего: нет



Нужен класс, который будет включать в себя несколько wxToggleButton'ов. При выборе одного из них, все остальные должны ставить SetValue(false). Писать велосипед не хочется.

Ещё хочу на wxTobbleButton поставить картинку. Пока нашёл только wxCustomButton. Может есть ещё какие-нибудь варианты?
PM MAIL   Вверх
t_rex
Дата 21.11.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 11.10.2006
Где: Украина, г. Запор ожье

Репутация: 2
Всего: 7



М.. можно завести массив bool'ов, потом на все кнокпи навесить общий обработчик, в котором в зависимости от ID устанавливать нужный элемент массива в TRUE, а остальные в FALSE. Еще навесить на все конпки один обработчик EVT_UPDATE_UI, который в зависимости от ID будт проерять значение элемента массива и выставлять event'у Checked. Вот как-то так.. можно, допустим, не по ID а как-то через ClientData указывать адрес элемента массива. Т.е. делаем, допустим, список bool'ов, потом проходимся по нему, для каждого єлемента созаем новую кнопочку, вешаем на нее через Connect обработчик клика и update ui, а также вешаем CientData с адресом элемента массива
--------------------
Жизнь не MultiEdit. Undo не сделаешьКросс-платформенное программирование с wxWidgetsБлог о программировании для мобильных устройтсвGoogle Android для программистов и пользователей
PM MAIL WWW ICQ Skype GTalk   Вверх
itengineer
Дата 21.11.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 9.11.2008

Репутация: нет
Всего: нет



Я подумал о немного другом способе. Просто список кнопок, евент от которых обрабатывается в одном методе. Источник евента получает SetValue(true), а остальные false. Не знаю, как это соотносится с оптимальностью, но работать будет. Весь вопрос как раз в том, чтобы не изобретать велосипед, а использовать что-нибудь готовое, если есть.

Кстати, а как с картинками на wxToggleButton'ах (или подобных классах)?
PM MAIL   Вверх
t_rex
Дата 21.11.2008, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 11.10.2006
Где: Украина, г. Запор ожье

Репутация: 2
Всего: 7



Ммм.. да, нормальное тоже решение. можно и так.
По поводу картинок, ну есть wxThings но там надо прилично так дорабатыват напильником. И вид у кнопок не нативный, хотя есть wxRenderNative, но все равно надо будет дописывать совего кода прилично так.
ЗЫ: А чем не устроило wxRadioButtonGroup ? если только одна кнопка всегда выбрана.
--------------------
Жизнь не MultiEdit. Undo не сделаешьКросс-платформенное программирование с wxWidgetsБлог о программировании для мобильных устройтсвGoogle Android для программистов и пользователей
PM MAIL WWW ICQ Skype GTalk   Вверх
mes
Дата 21.11.2008, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 7
Всего: 250



А стандартный wxToolBar у с тулами у которых флаг  wxITEM_RADIO не подойдет ?

Цитата(itengineer @  21.11.2008,  18:35 Найти цитируемый пост)
Источник евента получает SetValue(true), а остальные false

Т.е использовать это в обработчике wxCommаndEvent`a ? 
Насколько я знаю wx для этого рекомендует использовать wxUiEventUpdate. Только обработчик должен знать ид нажатой кнопки,
чтоб правильно установить состояние. Такой подход добавит декларативности.


Это сообщение отредактировал(а) mes - 22.11.2008, 14:25


--------------------
PM MAIL WWW   Вверх
monax
Дата 22.11.2008, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 9.6.2005

Репутация: 1
Всего: 4



Цитата(mes @  21.11.2008,  20:04 Найти цитируемый пост)
А стандартный wxToolBar у с тулами у которых флаг  wxITEM_RADIO не подойдет ?


Та же проблема была, этот флаг помог её решить.

Это сообщение отредактировал(а) monax - 22.11.2008, 22:17
--------------------
Лаборатория программиста
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0465 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.