Ниже приведён один из вариантов решения задачи с подробным описанием шагов.
————————————————————————————
Код...
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()
Пошаговое описание решения:
-
Импорт библиотеки CustomTkinter:
• Используем команду import customtkinter as ctk для работы с элементами графического интерфейса.
-
Создаём класс MyRadiobuttonFrame, наследуемый от ctk.CTkFrame:
• В конструкторе () создаём подпись (CTkLabel) с текстом Радиокнопки и размещаем её с помощью метода grid с заданными отступами (padx, pady) и режимом выравнивания (sticky=w).
• Создаём переменную self.radioar (типа StringVar) для объединения всех радиокнопок, чтобы у пользователя одновременно была выбрана только одна опция.
• Создаём три радиокнопки (CTkRadioButton) с подписями Кнопка 1, Кнопка 2 и Кнопка 3. Каждая радиокнопка связывается с одной и той же переменной self.radioar и имеет своё значение (value). Располагаем их ниже подписи с отступами и в одном столбце.
-
Создаём главный класс приложения App, наследуемый от ctk.CTk:
• В конструкторе задаём заголовок окна и его размеры.
• Создаём экземпляр класса MyRadiobuttonFrame, который добавляет фрейм с элементами на главное окно.
• Метод grid используется для размещения фрейма на главном окне с дополнительными отступами.
-
Запускаем приложение:
• Проверяем, является ли данный модуль главной программой, и создаём экземпляр App.
• Вызываем метод mainloop() для отображения окна и начала цикла обработки событий.
Таким образом, программа создаёт главное окно с заголовком и фрейм, в котором располагаются подпись и три радиокнопки согласно заданию.