Code: Alles auswählen
button = tk.Button(root, text = "test", command=g(1))
g() ist
Code: Alles auswählen
g = lambda x: x + 1
Code: Alles auswählen
button = tk.Button(root, text = "test", command=g(1))
Code: Alles auswählen
g = lambda x: x + 1
Code: Alles auswählen
>>> g = lambda x: x + 1
>>> g(1)
2
>>> g
<function <lambda> at 0x1207230>
Code: Alles auswählen
>>> lambda: g(1)
<function <lambda> at 0x13f71b8>
>>> (lambda: g(1))()
2
>>> from functools import partial
>>> f = partial(g, 1)
>>> f
<functools.partial object at 0x13765d0>
>>> f()
2
Code: Alles auswählen
import Tkinter as tk
from functools import partial
class CounterFrame(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
self.value = 0
self.value_label = tk.Label(self)
self.value_label.pack()
button_frame = tk.Frame(self)
for i in xrange(1, 6):
tk.Button(
button_frame, text=str(i), command=partial(self.increase, i)
).pack(side=tk.LEFT)
button_frame.pack()
self._update_value_display()
def _update_value_display(self):
self.value_label['text'] = str(self.value)
def increase(self, amount):
self.value += amount
self._update_value_display()
def main():
root = tk.Tk()
counter = CounterFrame(root)
counter.pack()
root.mainloop()
if __name__ == '__main__':
main()
Code: Alles auswählen
from tkinter import *
import tkinter as tk
x = 0
def GUI():
while x == 0:
root = Tk()
w = Canvas(root, width=500, height=500)
w.pack()
button = Button(root, text = "b1", command=b1())
button.place(x=100,y=100)
button = Button(root, text = "b2", command=b2())
button.place(x=150,y=100)
button = Button(root, text = "b3", command=b3())
button.place(x=200,y=100)
button = Button(root, text = "b4", command=b4())
button.place(x=100,y=150)
button = Button(root, text = "b5", command=b5())
button.place(x=150,y=150)
button = Button(root, text = "b6", command=b6())
button.place(x=200,y=150)
button = Button(root, text = "b7", command=b7())
button.place(x=100,y=200)
button = Button(root, text = "b8", command=b8())
button.place(x=150,y=200)
button = Button(root, text = "b9", command=b9())
button.place(x=200,y=200)
return x
def b1():
global x
x += 1
def b2():
global x
x += 2
def b3():
global x
x += 3
def b4():
global x
x += 4
def b5():
global x
x += 5
def b6():
global x
x += 6
def b7():
global x
x += 7
def b8():
global x
x += 8
def b9():
global x
x += 9
print(GUI())
Dann ist doch alles gut, oder?HardwareManager hat geschrieben:und so soll es in etwa am Ende auch aussehen
Das weiß wahrscheinlich niemand...HardwareManager hat geschrieben:aber ich weis nicht wie ich 2 befehle in einen Button packe.
Dann solltest Du vielleicht doch von Deinem Code Abschied nehmen und Dir BlackJack's Beispiel anschauen und verstehen...HardwareManager hat geschrieben:Und ein anderes Problem ist Wenn ich auf einen Button klicke verändert sich die zahl nicht die Zahl bleibt immer auf 45 was die summe von allem ist.