[Tutor] how to change the command "string" on a tkinter Button?
Chris Roy-Smith
chris_roysmith at internode.on.net
Fri Jun 29 22:55:16 EDT 2018
Hi,
OS is Linux,
Python version is 3.6.5
I am trying to change the command of a tkinter Button in my program.
Eventually I want to be able to do this to many buttons.
My attempt at code brings up no error messages, but the button appears
to do nothing.
I really have no idea how to do this, but this is what I wrote.
====================================
#!/usr/bin/python3
from tkinter import *
class form(object):
def __init__(self, x, reply, master, z,bu):
self.x=x
self.reply=reply
self.master=master
self.z=z
self.bu=bu
def change(x, reply, z, b):
#f contains the alternative command (as a string)
f=["lambda x=vars, txt=reply,fu=0 bu=b1 :form.change(x, txt,
fu, bu)", "lambda x=vars, txt=first, fu=1 bu=b1: form.change(x, txt, fu,
bu)"]
for i in range(4):
x[i].set(reply[i])
#attempt to change command clause
set.button(f[z])
def draw(master):
vars = []
label = []
button = StringVar
for i in range(4):
var = StringVar()
vars.append(var)
label.append("")
label[i] = Label( master, textvariable=var, relief=RAISED
).grid(row=i, column=0)
vars[i].set(first[i])
b1=Button(master, text="change", command=button).grid(row=i+1,
column=0)
reply=["now I don't know", "Happy birthday", "Many happy returns", "Next
it's my turn",1]
first=["What's your name?", "My name is Fred", "I have just had my
birthday", "your's is next!",2]
master=Tk()
form.draw(master)
master.mainloop()
=================================
How should I do this, I had worked around the problem by destroying the
window and building it again, but it was pointed out that I have an
unusual coding style doing this.
All hints appreciated!
Regards, Chris Roy-Smith
More information about the Tutor
mailing list