Я довольно новичок в TKinter и пытаюсь преобразовать свой обычный код Python в графический интерфейс (код TKinter)! Я работаю над этим кодом, и до сих пор у меня был базовый макет, но у меня проблемы с кнопками кодирования и с использованием записей. Скорее всего, вы найдете много ошибок в моем коде, поэтому будьте предупреждены! : DКак назначить функцию кнопке в Python/TKinter?
У меня есть запись в верхней части окна, и я хочу, чтобы пользователь вводил число в запись, а затем я хочу использовать текст, введенный в записи в некотором коде (btn1()
). Я также хочу, чтобы пользователь нажал кнопку, а затем кнопку, чтобы запустить код с метками внизу, где кнопки показывают результаты кода (метки в функции btn1()
).
Во-первых, я хочу, чтобы пользователь вводил число в запись. Затем я хочу, чтобы пользователь нажал кнопку, расположенную под этой записью. Наконец, я хочу, чтобы результаты кода за кнопкой отображались под кнопками (в ярлыках!).
Вот мой код:
from tkinter import *
class window_design:
def __init__(self):
root=Tk()
root.title("Bag Weight")
root.geometry("500x700")
root.wm_iconbitmap('favicon.ico')
image=PhotoImage(file="Weight Program.png")
imagelabel=Label(root,image=image)
imagelabel.pack()
weightentrylabel=Label(root,text="Enter Weight!")
weightentrylabel.pack()
self.string=StringVar()
weightentry=Entry(root,textvariable=self.string)
weightentry.pack()
menutext=Label(root,text="What coin are you using?")
menutext.pack(side=LEFT)
values=['1p','2p','5p','10p','20p','50p','£1','£2','Exit']
def btn1(self,btn1code):
p1=3.56
p1should=356
if (self.string.get()) > p1should:
weightdif=(self.string.get())-p1should
coins=weightdif/p1
labeldif=Label(text=weightdif)
labelcoins=Label(text=coins)
elif (self.string.get()) < p1should:
weightdif=p1should-(self.string.get())
coins=weightdif/p1
labeldif=Label(text=weightdif)
labelcoins=Label(text=coins)
button1=Button(root,text="1p",command=btn1)
button1.pack(side=LEFT)
root.mainloop()
window_design()
В настоящее время я получаю эту ошибку:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\cjay2\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1549, in __call__
return self.func(*args)
TypeError: btn1() missing 2 required positional arguments: 'self' and 'btn1code'