![]() |
|
|
![]()
|
|
| itengineer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.11.2008 Репутация: нет Всего: нет |
Нужен класс, который будет включать в себя несколько wxToggleButton'ов. При выборе одного из них, все остальные должны ставить SetValue(false). Писать велосипед не хочется.
Ещё хочу на wxTobbleButton поставить картинку. Пока нашёл только wxCustomButton. Может есть ещё какие-нибудь варианты? |
|||
|
||||
| t_rex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 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 для программистов и пользователей |
|||
|
||||
| itengineer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.11.2008 Репутация: нет Всего: нет |
Я подумал о немного другом способе. Просто список кнопок, евент от которых обрабатывается в одном методе. Источник евента получает SetValue(true), а остальные false. Не знаю, как это соотносится с оптимальностью, но работать будет. Весь вопрос как раз в том, чтобы не изобретать велосипед, а использовать что-нибудь готовое, если есть.
Кстати, а как с картинками на wxToggleButton'ах (или подобных классах)? |
|||
|
||||
| t_rex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 11.10.2006 Где: Украина, г. Запор ожье Репутация: 2 Всего: 7 |
Ммм.. да, нормальное тоже решение. можно и так.
По поводу картинок, ну есть wxThings но там надо прилично так дорабатыват напильником. И вид у кнопок не нативный, хотя есть wxRenderNative, но все равно надо будет дописывать совего кода прилично так. ЗЫ: А чем не устроило wxRadioButtonGroup ? если только одна кнопка всегда выбрана. --------------------
Жизнь не MultiEdit. Undo не сделаешьКросс-платформенное программирование с wxWidgetsБлог о программировании для мобильных устройтсвGoogle Android для программистов и пользователей |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 7 Всего: 250 |
А стандартный wxToolBar у с тулами у которых флаг wxITEM_RADIO не подойдет ?
Т.е использовать это в обработчике wxCommаndEvent`a ? Насколько я знаю wx для этого рекомендует использовать wxUiEventUpdate. Только обработчик должен знать ид нажатой кнопки, чтоб правильно установить состояние. Такой подход добавит декларативности. Это сообщение отредактировал(а) mes - 22.11.2008, 14:25 |
|||
|
||||
| monax |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 9.6.2005 Репутация: 1 Всего: 4 |
Та же проблема была, этот флаг помог её решить. Это сообщение отредактировал(а) monax - 22.11.2008, 22:17 --------------------
Лаборатория программиста |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |