I am making a GFC (Greatest Common Factor) calculator with GUI, but my current code only works with a return
statement, and tkinter doesn’t accept return
to fill a textbox widget.
Here is a sample of my code
JavaScript
x
13
13
1
def gproces():
2
Gnumber1 = Entry.get(GE1)
3
Gnumber2 = Entry.get(GE2)
4
Gnumber1 = int(Gnumber1)
5
Gnumber2 = int(Gnumber2)
6
7
if Gnumber1 > Gnumber2:
8
Gnumber1, Gnumber2 = Gnumber2, Gnumber1
9
10
for x in range (Gnumber1, 0, -1):
11
if Gnumber1 % x == 0 and Gnumber2 % x == 0:
12
return x
13
Here is where it’s supposed to be used: (To fill GE3)
JavaScript
1
4
1
GE3=Entry(top, bd =5)
2
GE3.grid(row=3, column=4)
3
GB=Button(top, text ="Submit", command = gproces).grid(row=4,column=4,)
4
How do I convert a return statement into something that can be used by Tkinter?
Advertisement
Answer
You can just insert the result into the text box inside gprocess()
:
JavaScript
1
17
17
1
def gproces():
2
# better cater invalid input
3
try:
4
Gnumber1 = int(GE1.get())
5
Gnumber2 = int(GE2.get())
6
7
x = min(Gnumber1, Gnumber2)
8
for x in range(x, 0, -1):
9
if Gnumber1%x == 0 and Gnumber2%x == 0:
10
break
11
12
# insert result into text box
13
GE3.delete(0, 'end')
14
GE3.insert('end', x)
15
except ValueError:
16
print('Invalid number input')
17
Note that there is math.gcd()
to find the GCF.