Radiobutton это – Как кастомизировать радиобаттон с помощью лейбла находящегося за пределами формы?

Содержание

RadioButton: Компонент

RadioButton: Компонент

Иерархия наследования

          IComponent

          IControl

          IRadioButton

          RadioButton

Описание

Компонент RadioButton используется, как правило, вместе с другими переключателями для выбора одной из взаимоисключаемых альтернатив.

Работа с компонентом

Из переключателей, объединенных в группу (достигается путем использования таких компонентов, как GroupBox, Panel и других), может быть выбран только один. При включении одного из таких переключателей, остальные автоматически освобождаются. Переключатели, размещенные непосредственно на форме, также объединяются в группу.

Свойство Text компонента содержит надпись, расположенную около переключателя (место расположения надписи определяется свойством Aligment). Как и в других компонентах (Button, CheckBox) надпись может содержать символ амперсанта «&», вызывающий подчеркивание следующего после него символа, соответствующего горячей клавише доступа.

Главное свойство компонента Checked определяет, выбран данный переключатель пользователем или нет. Поскольку часто необходимо чтобы один из переключателей группы был выбран по умолчанию, то его свойству Checked необходимо установить значение True на стадии разработки формы.

Пример

Свойства компонента RadioButton

  Имя свойства Краткое описание
Align Свойство Align определяет, как поведет себя компонент при изменении размеров содержащего его родительского компонента.
Alignment Свойство Aligment определяет расположение переключателя внутри поля компонента.
AllowDrag Свойство AllowDrag определяет возможность взять у компонента перетаскиваемый объект.
AllowDrop Свойство AllowDrop определяет, будет ли возможность у компонента принять перетаскиваемый объект.
Anchors Свойство Anchors возвращает настройки, определяющие в процентном соотношении изменение размеров текущего компонента при изменении размеров родительского компонента.
Brush Свойство Brush определяет кисть, используемую для заливки области компонента.
Checked Свойство Checked определяет состояние переключателя.
ClientHeight Свойство ClientHeight используется для получения или задания высоты клиентской области компонента.
ClientWidth Свойство ClientWidth используется для получения или задания ширины клиентской области компонента.
Color Свойство Color определяет цвет фона компонента.
ComponentCount Свойство ComponentCount возвращает количество дочерних компонентов.
Components Свойство Components возвращает дочерний компонент.
Cursor Свойство Cursor определяет вид курсора над компонентом.
Data
Свойство Data предназначено для хранения любых пользовательских данных.
Enabled Свойство Enabled определяет доступность компонента для пользователя.
Focused Свойство Focused возвращает True, если фокус установлен на данном компоненте.
Font Свойство Font определяет множество характеристик, описывающих шрифт, используемый при отображении текста.
Height Свойство Height определяет высоту компонента.
HelpContext Свойство HelpContext определяет уникальный индекс раздела контекстно-зависимой справки для данного компонента.
Hint Свойство Hint определяет текст подсказки для компонента.
Left Свойство Left определяет координату левого края компонента.
Name Свойство Name определяет наименование компонента.
Parent Свойство Parent определяет родительский компонент.
ParentColor Свойство ParentColor определяет, будет ли для компонента заимствован цвет родительского компонента.
ParentFont Свойство ParentFont определяет, будет ли для компонента использоваться шрифт родительского компонента.
ParentShowHint Свойство ParentShowHint определяет условие отображения всплывающей подсказки.
PopupMenu Свойство PopupMenu определяет контекстное меню, которое будет появляться при щелчке дополнительной клавишей мыши на компоненте.
Scrolls Свойство Scrolls возвращает параметры полос прокрутки компонента.
ShowHint Свойство ShowHint включает и выключает показ всплывающего окна подсказки для компонента.
TabOrder Свойство TabOrder определяет позицию компонента в последовательности табуляции.
TabStop Cвойство TabStop определяет признак необходимости компоненту получать фокус при нажатии кнопки «TAB».
Tag Свойство Tag не используется компилятором. Пользователь может изменить значение свойства Tag и использовать его по своему усмотрению.
Text Свойство Text определяет строку, идентифицирующую компонент для пользователя.
Top Свойство Top определяет координату верхнего края компонента.
Visible Свойство Visible определяет видимость компонента во время выполнения.
Width Свойство Width определяет ширину компонента.

Методы компонента RadioButton

События компонента RadioButton

  Имя события Краткое описание
OnBeginDrag Событие OnBeginDrag для компонента наступает, когда пользователь начинает перетаскивать объект от компонента.
OnChange
Событие OnChange наступает при изменении состояния отметки компонента.
OnClick Событие OnClick наступает, если пользователь осуществил щелчок основной кнопкой мыши в области компонента.
OnDblClick Событие OnDblClick наступает, если пользователь осуществил двойной щелчок кнопкой мыши в области компонента.
OnDragDrop Событие OnDragDrop для компонента наступает, когда пользователь отпускает над ним перетаскиваемый объект.
OnDragEnter Событие OnDragEnter наступает, когда перетаскиваемый объект входит в границы данного компонента.
OnDragLeave Событие OnDragLeave наступает, когда перетаскиваемый объект выходит за границы данного компонента.
OnDragOver Событие OnDragOver для компонента наступает, когда пользователь протаскивает над ним перетаскиваемый объект.
OnEnter Событие OnEnter наступает в момент получения фокуса компонентом.
OnExit Событие OnExit наступает в момент потери фокуса компонентом.
OnHScroll Событие OnHScroll наступает при изменении положения ползунка горизонтальной полосы прокрутки.
OnKeyDown Событие OnKeyDown наступает, если компонент находится в фокусе и производится нажатие клавиши на клавиатуре.
OnKeyPress Событие OnKeyPress наступает, если компонент находится в фокусе, при нажатии пользователем символьной клавиши.
OnKeyPreview Событие OnKeyPreview наступает перед каждым событием, связанным с нажатием клавиш.
OnKeyUp Событие OnKeyUp наступает, если компонент находится в фокусе, при отпускании пользователем любой, ранее нажатой клавиши.
OnMouseDown Событие OnMouseDown наступает, если указатель находится в области компонента и была нажата любая кнопка мыши.
OnMouseEnter Событие OnMouseEnter наступает в момент входа курсора мыши в область компонента.
OnMouseHover Событие OnMouseHover наступает при задержке курсора мыши в области компонента.
OnMouseLeave Событие OnMouseLeave наступает в момент выхода курсора мыши за пределы области компонента.
OnMouseMove Событие OnMouseMove наступает при перемещении курсора мыши над компонентом.
OnMouseUp Событие OnMouseUp наступает при отпускании кнопки мыши, когда указатель находится в области компонента.
OnMouseWheel Событие OnMouseWheel наступает, если компонент находится в фокусе при вращении колеса мыши.
OnVScroll Событие OnVScroll наступает при изменении положения ползунка вертикальной полосы прокрутки.

См. также:

Стандартные компоненты

Как улучшить радиобаттоны в инфтерфейсе

Как улучшить любой интерфейс: радиобаттоны

Радиобаттоны — один из самых популярных элементов интерфейса. Настало время рассказать о том как правильно их использовать, для чего они нужны и как их нужно улучшать. Если вы пропустили прошлые выпуски серии статей про улучшение интерфейсов, советую подписаться на рассылку новых постов по почте или по RSS.

Внешний вид радиобаттона — радиобаттон, переключалка или радиокнопка. Кнопка, позволяющая выбрать один параметр из группы. Служит для уточнения параметров и отвечает на вопросы «что именно?», «какой именно?». В отличие от чекбоксов в группе радиобаттонов можно выбрать только один параметр, поэтому они довольно часто используются для опросов.

Правила при использовании радиобаттонов

Многие правила в использовании радиобаттонов схожи с использованием чекбоксов. Однако есть существенные отличия и правила свойственные только радиокнопкам.

1. Не размещайте радиобаттоны по горизонтали.

Радиобаттоны должны идти в столбик

Верхний пример ощутимо лучше. Радиокнопки должны идти в столбик потому что их нельзя отрывать друг от друга. Тоже самое касается и чекбоксов. Исключением может быть разве что группа кнопок, ведущая себя как радиобаттоны. Но об этом далее.

2. Радиобаттоны должны быть группой.

Из предыдущего примера становится понятно, что радиобаттоны должны идти группой и их нельзя отрывать друг от друга. Группа радиобаттонов — это один цельный элемент. Именно поэтому переключение радиокнопок происходит внутри всей группы.

3. Увеличивайте рабочую область

Эта проблема роднит радиобаттоны с чекбоксами. У них обоих слишком маленькая область для клика.  Можно использовать те же приемы что и для чекбоксов: превратить радиобаттон в кнопку, добавить псевдоссылку.

Превращаем радиобаттон в кнопку или добавляем псевдоссылку

 

В бинарном состоянии, когда выбор состоит из двух пунктов (например, выбор между пунктами «Самовывоз» и «Доставка курьером» в интернет-магазине) радиобаттон можно превратить в переключатель.

Превращаем радиобаттон в переключатель

4. Выбирайте по умолчанию самый популярный вариант

Радиобаттон не может существовать в неопределенном состоянии. Всегда должен быть выбран какой-то вариант. В этом случае разумно выбирать самый популярный вариант как вариант «по умолчанию».

Выбор варианта по умолчанию в радиобаттонах

Если выбор не очевиден, как например, в выборе пола, то стоит добавлять пункт «выбора без выбора». Так я называю радиобаттон, который служит для того, чтобы показать что выбор пока что не сделан. Но тем не менее всегда нужно помнить о том для кого мы делаем интерфейс: на сайте для будущих мам можно устанавливать женский пол полом «по умолчанию». Тогда как на новостном сайте такой выбор будет попахивать дискриминацией.

Серия статей об улучшении интерфейса:

  • Выпадающие списки. Почему их не стоит использовать. А если использовать, то как?
  • Чекбоксы. Как заставить пользователя нажимать маленькую галочку.
  • Поля ввода. Как должны работать поля ввода с разными типами данных.

Ждите следующую статью уже в новом году! Подписывайтесь на блог, чтобы не пропустить. Всем клевых праздников!

UX-дизайн Radio buttons

Radio buttons – одни из важнейших элементов форм. Они используются, когда есть список двух или более взаимоисключаемых опций, из которых пользователь должен выбрать что-то одно. Другими словами, если кликнуть на невыбранный пункт, то выделение с ранее выбранного варианта снимется.

Пример radio buttonsПример radio buttons

Radio buttons классно работают при корректном использовании – они защищают пользователей от введения ошибочных данных, так как дают выбирать только среди корректных вариантов. В них есть много интересных возможностей, таких как навигация с помощью клавиатуры, стабильный кросс-платформенный рендеринг. В этом посте мы рассмотрим практические советы по использованию radio buttons на основе тестирования юзабилити.

Как radio buttons вошли в обиход?

Radio buttons были названы в честь физических кнопок, используемых на старых автомобильных радиоприемниках для смены станций – когда нажата одна кнопка, остальные отжаты, так что только нажатая остается “активной”. Программная radio button была смоделирована по образу и подобию физических.

Нажать можно только одну кнопку за раз. Источник: TumblrНажать можно только одну кнопку за раз. Источник: Tumblr

Лучшие советы по использованию radio buttons

Используйте radio buttons только для настроек

Используйте radio buttons для замены настроек, а не как кнопки действий для выполнения команд. Также измененные настройки не должны вступать в силу, пока пользователь не нажмет командную кнопку (обозначенной как “Продолжить” или “Сохранить”, например). Если пользователь кликает кнопки Назад или Отмена, изменения, сделанные с помощью radio buttons на странице должны быть изменены, и восстановлены исходные настройки.

Если radio buttons используются только для влияния на то, как выполняется команда, часто вместо этого лучше презентовать варианты команды. Так вы позволите пользователю выбрать нужную команду в одно действие.

Кнопочный ввод позволяет сделать выбор в одно касаниеКнопочный ввод позволяет сделать выбор в одно касание. Источник: LukeW

Логический порядок опций

Вы должны располагать варианты в логическом порядке, например, от наиболее вероятного выбора до наименее вероятного, от простейших операций к самым сложным, или от меньшего риска к большему. Алфавитный порядок не рекомендуется, потому что он зависит от языка, поэтому такой порядок не локализуем.

Опции должны быть исчерпывающими и четко отличающимися друг от друга

Самые большие проблемы в юзабилити radio buttons начинаются с неопределенных, расплывчатых надписей, или описаний, которые невозможно понять среднестатистическому пользователю. Контекстные подсказки могут облегчить жизнь пользователю, но все равно лучше сначала протестировать любой важный набор опций на пользователях.

Всегда предлагайте выбор по умолчанию

Одна из 10 эвристик UI-дизайна гласит, что пользователи должны иметь возможность отменить (и повторить) свои действия. Это означает, что нужно позволять людям менять элемент управления на его первоначальное состояние. Это означает, что в  radio button всегда должен быть минимум один вариант, выбранный по умолчанию. Выберите самый безопасный (без потери данных или доступа в систему) вариант, самую безопасную опцию. Если безопасность роли не играет, выберите самую вероятную или самую удобную опцию.

Если пользователям понадобится воздержаться от выбора, вы должны предоставить радикнопку для такого варианта, например, с надписью “None.” Предложить пользователям точную, нейтральную опцию – гораздо лучше, чем неявно намекать на возможность не выбрать ни один вариант из списка.

1-XFTe3mIh5qe-b_SuKRnB2g

Старайтесь располагать ваши списки вертикально

Горизонтальные radio buttons иногда сложно сканировать и локализировать. Горизонтальное расположение radio buttons также может вызвать сложности с определениям, какая надпись какой кнопке соответствует: надпись над кнопкой или под ней. Вертикальное позиционирование безопаснее.

Постарайтесь располагать списки выборов вертикально, по одному выбору на строку. Если вам все же необходим горизонтальный макет с несколькими опциями на строку, обязательно добавьте интервалы между кнопками и надписями, чтобы было полностью понятно, какая кнопка какой надписи соответствует. Например, вы должны избегать ситуации, при которой сложно понять, на какую кнопку стоит кликнуть, чтобы выбрать вариант четыре.

Плохо: горизонтальные radio buttonsПлохо: горизонтальные radio buttons.
Используйте теги с надписями как область касания или клика

Radio buttons крошечные по своей природе, и поэтому, по закону Фиттса, их трудно кликнуть или коснуться пальцем. Чтобы увеличить область касания, позвольте пользователю выбрать опцию, кликая или касаясь не только саму кнопку, а и надпись, которая к ней привязана. Пусть пользователи смогут выбрать опцию, кликнув на саму кнопку или на ее надпись.

Огромная область клика.Слева: кликнуть можно только крошечную область кнопки. Справа: Огромная область клика.

Вы можете увидеть хороший пример горизонтальных radio buttons в приложении Duolingo: они используют классические горизонтальные radio buttons, но сделали области касания визуально отличными друг от друга, и достаточно большими для сенсорного управления.

Хорошо: горизонтальные radio buttonsХорошо: горизонтальные radio buttons
Используйте radio buttons вместо дроп-даунов.

По возможности, используйте radio buttons вместо выпадающих меню.  Radio buttons дают меньшую когнитивную нагрузку, потому что все опции находятся перед пользователем, и их легко сравнить.

Когда на выбор дается менее 7 опций, вы должны использовать radio buttons. Ваши пользователи смогут тут же просмотреть все свои варианты действий без каких-либо манипуляций.

выбор пола с помощью radio buttonsСлева: Пол в выпадающем списке. Справа: выбор пола с помощью radio buttons
Избегайте вложений

Избегайте вложенных radio buttons или чекбоксов. Вы должны располагать все опции на одном уровне, чтобы не сбивать пользователя с толку.

Использование вложенных опций добавляет ненужных сложностейИспользование вложенных опций добавляет ненужных сложностей
Используйте анимацию и визуальный отклик

Хорошо прорисованные анимации добавляют удобства интерфейсу. Элементы интерфейса, такие как radio buttons, должны выглядеть осязаемыми, даже если они находятся за слоем стекла. Визуальные подсказки немедленно подтверждают выбор и вносят ясность в действия пользователя с помощью видимой реакции.

Используйте анимациюИспользуйте анимацию
Может, лучше использовать чекбокс?

Если есть всего два варианта на выбор, лучше используйте чекбокс. Тем не менее, чекбоксы подходят только для включения/выключения единичной опции, а radio buttons можно использовать для совершенно других альтернатив.

Чекбокс. Источник: Material DesignЧекбокс. Источник: Material Design

Вы должны помнить следующее, если оба варианта возможны:

Альтернативы. Используйте radio buttons, если смысл невыбранного чекбокса не до конца понятен. В примере ниже выборы противоположны, так что лучше для этой опции использовать radio buttons.

Выберите ориентацию для документа (Ландшафтная или портретная)Выберите ориентацию для документа (Ландшафтная или портретная)

Помощник. Вы должны использовать radio buttons на страницах помощника, чтобы внести ясность в альтернативы, даже если чекбокс тоже приемлем. Дизайны с кликнутой по умолчанию radio buttons дают пользователю твердое предложение выбора. Выбор по умолчанию поможет пользователю сделать наилучший выбор, увеличив их уверенность в процессе выбора.

DropboxЕсли опция настоятельно рекомендуется, добавьте к надписи “(recommended)”. Источник: Dropbox

Простые ответы Да и Нет. Использование чекбокса имеет смысл, когда у вас есть один простой вопрос, и пользователю нужно ответить “да” или “нет”.

1-3ETGOUNaY9mHoR_WNWQdFQПростой вопрос можно задать в форме чекбокса

Заключение

Когда вы создаете radio buttons, очень важно следовать стандартам дизайна, потому что это повышает способность пользователя предугадывать, что случится после выбора той или иной опции, и как с ними работать. В то же время, неследование стандартам делает интерфейс нестабильным – как будто что-то может произойти без предупреждения.

Создавайте свои дизайны с заботой. Radio buttons легко тестировать на бумажных прототипах, так что вам не понадобится ничего реализовывать, чтобы проверить, понимают ли пользователи, как использовать ваше решение.

Спасибо!

Радиокнопки — Компоненты — Контур.Гайды

Группа радиокнопок используется для выбора одного значения из нескольких.

, document.getElementById('radio-group-react') )

Радиокнопки (от англ. radiobutton) получили свое название от кнопок в старых радиоприемниках: нажатие на кнопку включало определенную частоту, остальные кнопки отскакивали вверх. Визуально такие кнопки были больше похоже на переключатель, но, почему-то среди дизайнеров такое название не прижилось.

Тем не менее при общении с пользователями мы говорим не «радиокнопка», а «переключатель», см. Глоссарий

Когда использовать

Группу радиокнопок используют, когда вариантов выбора немного — 2–5.

Если названия вариантов короткие, вместо группы радиокнопок можно использовать переключатель, так форма будет выглядеть компактнее:

Если 25–50, то комбобокс со списком, а если больше 50, то без списка.

Описание работы

Клик по названию или по самой радиокнопке приводит к ее выбору. Повторное нажатие не снимает выбор.

В группе радиокнопок только один пункт может быть выбран. Группа радиокнопок не может состоять из 1 пункта.

Если группа радиокнопок используется для настройки параметров и показывает текущее состояние системы, одна из радиокнопок всегда выбрана. Так видно, в каком состоянии система находится по умолчанию. При желании пользователь может вернуть настройку в исходное состояние.

Выбранный по умолчанию пункт ставьте первым в списке:

Если группа радиокнопок нужна для сообщения каких-то сведений, то по умолчанию может быть не выбран ни один из пунктов:

Название группы

Название группы радиокнопок пишут с заглавной буквы и формулируют так, чтобы:

  • было понятно, что можно выбрать только 1 вариант;
  • названия радиокнопок в группе не содержали повторяющуюся часть.

Название радиокнопки

Название радиокнопки пишется с заглавной буквы, и отвечает на вопрос «Как?» или «Какой?».

Если пользователю может быть не очевидно, что произойдет при выборе, объясните это дополнительным текстом или картинкой:

Расположение

Радиокнопки располагают в строку, только если их 2 штуки. Если больше — только в столбец. Не располагайте радиокнопки из одной группы в несколько столбцов. Группы радиокнопок смешиваются, и непонятно, к какой группе относится конкретная радиокнопка:

Работа с клавиатурой

При переходе к группе радиокнопок клавишей Tab, выбранное значение получает фокус — появляется синяя рамка:

Если до получения фокуса ни одно значение не выбрано, фокус получает первая кнопка в списке.

Рамка фокуса появляется только при переходе табом с клавиатуры. При клике мышью рамка не появляется.

Если радиокнопки располагаются вертикально, переключение фокуса производится клавишами ↓ ↑, если горизонтально — клавишами ← →:

С переходом фокуса на новое значение в радиогруппе, значение которое в фокусе становится выбранным.

Следующее нажатие клавиши Tab переводит фокус на следющий контрол.

Валидация

Варианты, которые нельзя выбрать в списке радиокнопок, должны быть заблокированы. Валидация может быть только в том случае, если обязательно выбрать хотя бы один вариант.

Если заголовок группы находится слева, текст валидации располагайте под группой радиокнопок.

Если заголовок группы находится над группой радиокнопок, текст ошибки располагайте сразу под заголовком группы:

Если для валидации вы используете тултипы, поведение подсказок будет иным. Тултип отображается при наведении на группу радиокнопок. Если заголовок группы расположен слева — выводите тултип сверху.

Если заголовок сверху, выводите тултип справа.

Когда отсутствие выбора в группе радиокнопок не является ошибкой, но скорее всего пользователь пропустил этот выбор — предупреждайте пользователя об этом:

Дизайн

Выбранная радиокнопка обозначается символом  из&nbspшрифта Kontur&nbspIconic.

Название группы выравнивайте по базовой линии первого пункта.

Расстояние между пунктами больше межстрочного расстояния на 10 px. Если в группе есть вложенная группа, то от ее последнего элемента до следующего элемента первого уровня нужно увеличить отступ до 20 px:

Radiobutton и Checkbutton. Переменные Tkinter. Урок 5

В Tkinter от класса Radiobutton создаются радиокнопки, от класса Checkbutton – флажки.

Радиокнопки не создают по одной, а делают связанную группу, работающую по принципу переключателей. Когда включена одна, другие выключены.

Экземпляры Checkbutton также могут быть визуально оформлены в группу, но каждый флажок независим от остальных. Каждый может быть в состоянии "установлен" или "снят", независимо от состояний других флажков. Другими словами, в группе Checkbutton можно сделать множественный выбор, в группе Radiobutton – нет.

Radiobutton – радиокнопка

Если мы создадим две радиокнопки без соответствующих настроек, то обе они будут включены и выключить их будет невозможно:

Виджеты радиокнопок

Эти переключатели никак не связаны друг с другом. Кроме того для них не указано исходное значение, должны ли они быть в состоянии "вкл" или "выкл". По-умолчанию они включены.

Связь устанавливается через общую переменную, разные значения которой соответствуют включению разных радиокнопок группы. У всех кнопок одной группы свойство variable устанавливается в одно и то же значение – связанную с группой переменную. А свойству value присваиваются разные значения этой переменной.

В Tkinter нельзя использовать любую переменную для хранения состояний виджетов. Для этих целей предусмотрены специальные классы-переменные пакета tkinter – BooleanVar, IntVar, DoubleVar, StringVar. Первый класс позволяет принимать своим экземплярам только булевы значения (0 или 1 и True или False), второй – целые, третий – дробные, четвертый – строковые.

r_var = BooleanVar()
r_var.set(0)
r1 = Radiobutton(text='First', variable=r_var, value=0)
r2 = Radiobutton(text='Second', variable=r_var, value=1)

Здесь переменной r_var присваивается объект типа BooleanVar. С помощью метода set() он устанавливается в значение 0.

При запуске программы включенной окажется первая радиокнопка, так как значение ее опции value совпадает с текущим значением переменной r_var. Если кликнуть по второй радиокнопке, то она включится, а первая выключится. При этом значение r_var станет равным 1.

В программном коде обычно требуется "снять" данные о том, какая из двух кнопок включена. Делается это с помощью метода get() экземпляров переменных Tkinter.

from tkinter import *
 
def change():
    if var.get() == 0:
        label['bg'] = 'red'
    elif var.get() == 1:
        label['bg'] = 'green'
    elif var.get() == 2:
        label['bg'] = 'blue'
 
root = Tk()
 
var = IntVar()
var.set(0)
red = Radiobutton(text="Red", variable=var, value=0)
green = Radiobutton(text="Green", variable=var, value=1)
blue = Radiobutton(text="Blue", variable=var, value=2)
button = Button(text="Изменить", command=change)
label = Label(width=20, height=10)
red.pack()
green.pack()
blue.pack()
button.pack()
label.pack()
 
root.mainloop()

Метод get()

В функции change() в зависимости от считанного значения переменной var ход выполнения программы идет по одной из трех веток.

Checkbutton – флажок

Флажки не требуют установки между собой связи, поэтому может возникнуть вопрос, а нужны ли тут переменные Tkinter? Они нужны, чтобы снимать сведения о состоянии флажков. По значению связанной с Checkbutton переменной можно определить, установлен ли флажок или снят, что в свою очередь повлияет на ход выполнения программы.

У каждого флажка должна быть своя переменная Tkinter.

from tkinter import *
root = Tk()
 
cvar1 = BooleanVar()
cvar1.set(0)
c1 = Checkbutton(text="First", variable=cvar1, onvalue=1, offvalue=0)
c1.pack(anchor=W)
 
cvar2 = BooleanVar()
cvar2.set(0)
c2 = Checkbutton(text="Second", variable=cvar2, onvalue=1, offvalue=0)
c2.pack(anchor=W)
 
root.mainloop()

Checkbutton - флажки

С помощью опции onvalue устанавливается значение, которое принимает связанная переменная при включенном флажке. С помощью свойства offvalue – при выключенном. В данном случае оба флажка будут выключены, так как методом set() были установлены соответствующие этому значения.

С помощью методов select() и deselect() флажков можно их программно включать и выключать. То же самое относится к радиокнопкам.

Практическая работа

Виджеты Radiobatton и Checkbutton поддерживают большинство свойств оформления внешнего вида, которые есть у других элементов графического интерфейса. При этом у Radiobutton есть особое свойство indicatoron. По-умолчанию он равен единице, в этом случае радиокнопка выглядит как нормальная радиокнопка. Однако если присвоить этой опции ноль, то виджет Radiobutton становится похожим на обычную кнопку по внешнему виду. Но не по смыслу.

Напишите программу, в которой имеется несколько объединенных в группу радиокнопок, индикатор которых выключен (indicatoron=0). Если какая-нибудь кнопка включается, то в метке должна отображаться соответствующая ей информация. Обычных кнопок в окне быть не должно.

Программа с радиокнопками

Помните, что свойство command есть не только у виджетов класса Button.

Курс с примерами решений практических работ: android-приложение, pdf-версия.

Checkbox vs Radiobutton: alex_insight — LiveJournal

А разве вам не понятно различае между радио-баттоном (кружочком) и чекбоксом (квадратиком)?

Чекбоксов всегда можно выбрать несколько, даже если они относятся к одному вопросу. Т.е. выбрать один, несколько, все или даже не выбрать ни одного. Семантически чекбокс спрашивает согласны ли вы конкретно с тем что в нём написано или нет. Если да -- отмечайте галочкой.

А радиобаттон, если он относится к одному вопросу/полю, всегда можно выбрать только один. (Их может быть несколько групп, но выбрать можно только один в каждой группе.) Семантически радиобаттон спрашивает с каким из вариантом в данной группе вы согласны больше всего.

Ответьте на опрос:

Разве это было не очевидно?

Я это знал всегда!

45(73.8%)

Знаю давно, но изначально не понимал разницы

7(11.5%)

Узнал это только недавно

1(1.6%)

Для меня это было не очевидно, узнал только что!

2(3.3%)

Блиааа, а я всегда выбирал только один чекбокс в списке =(

6(9.8%)

Проверочная работа:

Чекбоксы — это хорошо!

0(0.0%)

Радиобаттоны — это хорошо!

0(0.0%)

Этот пост оказался полезным!

0(0.0%)

У меня сейчас хорошее настроение

7(11.7%)

Отправить ответ

avatar
  Подписаться  
Уведомление о