Не могу взять значение из RadioButton Python

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

OchkoVar = IntVar()

def Zapla():
    global Goldi
    def zaplata():
        Hour = OchkoVar.get()
        Dayint = int(Day)
        zarplata = x*Dayint*Hour
        print(zarplata)
        lbl = ttk.Label(Window1, text = zarplata)
    def Hours():
        global radio
        global Day
        Day = DayEnty.get()
        print(Day)
        lbl = ttk.Label(Window1, text = "Сколько часов в день работаете?").pack()
        radio = ttk.Radiobutton(Window1, text = "8 часов",variable=OchkoVar, value = 8, command = zaplata)
        radio.pack()
        radio = ttk.Radiobutton(Window1, text="4 часa",variable=OchkoVar, value = 4, command=zaplata)
        radio.pack()

Возвращает значение OchkoVar =0, не меняя его значение. В одном ответе я увидела вариант объявления класса OchkoVar, как

OchkoVar = tkiner.IntVar()

И даже в таком случае не работает.


Ответы (1 шт):

Автор решения: Amgarak

Если верно уловил ваш вопрос:

import tkinter as tk
from tkinter import ttk

def salary():
    hour = radio_work_hours_var.get()
    day_int = int(day_entry.get())
    pay = rate * day_int * hour
    result_label.config(text=f"Зарплата: {pay}")

def hours():
    label_hours.config(text="Сколько часов в день работаете?")
    salary()
    radio_8_hours.pack()
    radio_4_hours.pack()

# Создание главного окна
window = tk.Tk()
window.title("Расчёт заработной платы")
# --!!! 

# Переменные для хранения данных
radio_work_hours_var = tk.IntVar(value=8) 
rate = 1000  # Ставка за час 
# --!!! 

# !!!-- Виджеты интерфейса
day_label = ttk.Label(window, text="Введите количество рабочих дней:")
day_label.pack()

day_entry = ttk.Entry(window)
day_entry.pack()

label_hours = ttk.Label(window, text="")
label_hours.pack()

radio_8_hours = ttk.Radiobutton(window, text="8 часов", variable=radio_work_hours_var, value=8, command=salary)
radio_4_hours = ttk.Radiobutton(window, text="4 часа", variable=radio_work_hours_var, value=4, command=salary)

calculate_button = ttk.Button(window, text="Рассчитать", command=hours)
calculate_button.pack()

result_label = ttk.Label(window, text="")
result_label.pack()
# Виджеты интерфейса --!!! 

window.mainloop()

введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения

→ Ссылка