مقدار عددی در tk

سوال

چگونه در tk مقدار عددی از کاربر دریافت کنیم که مستقیم قابل انجام عملیات باشه

من از spinbox استفاده میکنم نمی شود spinbox را به عنوان متغییر در فرمول گذاشت و این ارور را میدهد:

TypeError: unsupported operand type(s) for ** or pow(): ‘Spinbox’ and ‘Spinbox’

لطفا راهنماییم کنید

 

اینم کد برنامم:

 

from tkinter import *
window = Tk()
window.title(‘برنامه محاسبات دستگاه مختصات’)

Label(window,text=’طول چهار ضلعی’).pack()
spin1 = Spinbox(window,from_=1,to=9)
spin1.pack()

Label(window,text=”).pack()

Label(window,text=’عرض چهار ضلعی’).pack()
spin2 = Spinbox(window,from_=1,to=9)
spin2.pack()

Label(window,text=”).pack()

def ghotr_4zelee():
ghotr=(spin1**spin2+4**2)**(1/2)
print(ghotr)
lab1.config(text=’قطر چهار ضلعی : {}’.format(ghotr))
Button(window,text=’محاسبه’,command=ghotr_4zelee).pack()
lab1 = Label(window,text=’قطر چهار ضلعی : ‘)
lab1.pack()

window.mainloop()

 

در حال بررسی 0
sdfsdfs 1 سال 1 پاسخ 251 دیده شده 0

پاسخ ( ۱ )

  1. سلام

    برای دسترسی به مقدار spinbox باید از متد get استفاده کنی

    spinbox1.get()

    البته خروجی به صورت str خواهد بود که باید اون رو به int تبدیلش کنی

    int(spinbox1.get())

    به این ترتیب کد تابع قطر ۴ضلعی به شکل زیر اصلاح میشه

    def ghotr_4zelee():
        width = int(spin1.get())
        height = int(spin2.get())
        ghotr = ((width ** 2) + (height ** 2)) ** (1/2)
        print(ghotr)
        lab1 = Label(window,text=’قطر چهار ضلعی :’)
        lab1.config(text=’قطر چهار ضلعی : {}’.format(ghotr))
        lab1.pack()

ارسال یک پاسخ