1. Главная
  2. Библиотека
  3. Программирование
  4. Свои радиокнопки 2.0 imagedescription Создав класс MyRadiobuttonFrame...
Решение задачи

Свои радиокнопки 2.0 imagedescription Создав класс MyRadiobuttonFrame в предыдущем задании, Дима решил его протестировать, добавив класс App для отображения главного окна приложения. На главном окне должна располагаться подпись «Радиокнопки» и ниже 3

  • Программирование

Условие:

Свои радиокнопки 2.0 imagedescription

Создав класс MyRadiobuttonFrame в предыдущем задании, Дима решил его протестировать, добавив класс App для отображения главного окна приложения. На главном окне должна располагаться подпись «Радиокнопки» и ниже 3 радиокнопки с подписями «Кнопка 1», «Кнопка 2» и «Кнопка 3».

Напишите программу, задуманную Димой, используя библиотеку CustomTkinter. Графический интерфейс программы должен состоять из следующих компонентов:

- Главное окно, на котором располагаются все виджеты (класс CTk)

- Фрейм, где будут располагаться радиокнопки и подписи (класс MyRadiobuttonFrame)

Внутри фрейма должны находиться следующие элементы:

- Подпись с однострочным текстом «Радиокнопки» (класс CTkLabel)

- Три радиокнопки с подписями «Кнопка 1», «Кнопка 2» и «Кнопка 3» (класс CTkRadioButton)

Примечание 1: размеры и расположение виджетов указывайте по своему усмотрению

Примечание 2: реализацию класса MyRadiobuttonFrame можете взять из предыдущего задания

Примечание 3: для расположения объектов используйте метод grid(), не забывайте про атрибуты padx, pady и sticky

Решение:

Ниже приведён один из вариантов решения задачи с подробным описанием шагов. ———————————————————————————— Код...

class MyRadiobuttonFrame(ctk.CTkFrame): def (self, master, kwargs) # Создаём подпись Радиокнопки self.label = ctk.CTkLabel(self, text=Радиокнопки) # Располагаем подпись. Здесь используем grid с отступами. self.label.grid(row=0, column=0, padx=10, pady=10, sticky=w) # Переменная для связывания радиокнопок self.radioar = ctk.StringVar(value=Кнопка 1) # Устанавливаем значение по умолчанию # Создаём первую радиокнопку с текстом Кнопка 1 self.radio1 = ctk.CTkRadioButton(self, text=Кнопка 1, variable=self.radioar, value=Кнопка 1) self.radio1.grid(row=1, column=0, padx=10, pady=5, sticky=w) # Создаём вторую радиокнопку с текстом Кнопка 2 self.radio2 = ctk.CTkRadioButton(self, text=Кнопка 2, variable=self.radioar, value=Кнопка 2) self.radio2.grid(row=2, column=0, padx=10, pady=5, sticky=w) # Создаём третью радиокнопку с текстом Кнопка 3 self.radio3 = ctk.CTkRadioButton(self, text=Кнопка 3, variable=self.radioar, value=Кнопка 3) self.radio3.grid(row=3, column=0, padx=10, pady=5, sticky=w) class App(ctk.CTk): def (self): super().() self.title(Радиокнопки 2.0) self.geometry(300x250) # Создаём экземпляр фрейма с радиокнопками self.radiorame = MyRadiobuttonFrame(self) # Размещаем фрейм на главном окне, используя grid self.radiorame.grid(row=0, column=0, padx=20, pady=20) if == : app = App() app.mainloop() ------------------------------------------------ Пошаговое описание решения: 1. Импорт библиотеки CustomTkinter: • Используем команду import customtkinter as ctk для работы с элементами графического интерфейса. 2. Создаём класс MyRadiobuttonFrame, наследуемый от ctk.CTkFrame: • В конструкторе () создаём подпись (CTkLabel) с текстом Радиокнопки и размещаем её с помощью метода grid с заданными отступами (padx, pady) и режимом выравнивания (sticky=w). • Создаём переменную self.radioar (типа StringVar) для объединения всех радиокнопок, чтобы у пользователя одновременно была выбрана только одна опция. • Создаём три радиокнопки (CTkRadioButton) с подписями Кнопка 1, Кнопка 2 и Кнопка 3. Каждая радиокнопка связывается с одной и той же переменной self.radioar и имеет своё значение (value). Располагаем их ниже подписи с отступами и в одном столбце. 3. Создаём главный класс приложения App, наследуемый от ctk.CTk: • В конструкторе задаём заголовок окна и его размеры. • Создаём экземпляр класса MyRadiobuttonFrame, который добавляет фрейм с элементами на главное окно. • Метод grid используется для размещения фрейма на главном окне с дополнительными отступами. 4. Запускаем приложение: • Проверяем, является ли данный модуль главной программой, и создаём экземпляр App. • Вызываем метод mainloop() для отображения окна и начала цикла обработки событий. Таким образом, программа создаёт главное окно с заголовком и фрейм, в котором располагаются подпись и три радиокнопки согласно заданию.

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет