Tkinter中我要实现一个点击一下Button,Button上显示内容改变怎么做?

fromTkinterimport*defcounter():globalcounta=counti=int(a)i+=1a=str(i)count=awindow=Tk... from Tkinter import *

def counter():

global count

a = count

i=int(a)

i+=1

a=str(i)

count = a

window = Tk()

frame = Frame(window)

frame.pack()

#global count

count = StringVar()

count = '0'

botton = Button(frame,text = count ,command = counter)

print(count)

botton.pack()

window.mainloop()

这是我写的程序,挺naive的,求在这的基础上该,谢谢!
展开
 我来答
PsyCracker
2014-10-04 · TA获得超过120个赞
知道答主
回答量:19
采纳率:0%
帮助的人:20.3万
展开全部
#-*- coding: utf-8 -*-
# 你好,改的地方我都注释了。
# 如果有不对的地方请高手指点。

from Tkinter import *

def counter(btn): #增加一个参数把button对象传入,用来更改它的文字

    global count

    a = count

    i=int(a)

    i+=1

    a=str(i)

    count = a

    btn.config(text = a) #增加了这一句,更新button上的文本内容


window = Tk()

frame = Frame(window)

frame.pack()

#global count

count = StringVar()

count = '0'

botton = Button(frame,text = count ,command = lambda:counter(botton)) #因为事件触发的函数(callback)需要有参数传进入,所以用lambda表达式
# 可以参考下这里:http://blog.sina.com.cn/s/blog_ac9fdc0b0101n9u6.html
# 其实用bind也可以进行事件触发的绑定。
print(count)

botton.pack()

window.mainloop()
何人我知己
推荐于2018-03-01 · TA获得超过379个赞
知道小有建树答主
回答量:258
采纳率:50%
帮助的人:188万
展开全部
def counter():

global count

a = count

i=int(a)

i+=1

a=str(i)

count = a

botton['text']=count ###加一句就行
更多追问追答
追问
一。为什么加这一句就行?
二、Button中的text和textvariable是什么区别啊?我改成textvariable后,用count.set()/count.get()就行了,但是原理是什么就不清楚了
追答
一、你单击Button时,botton = Button(frame,text = count ,command = counter),系统回调couter()这个函数,botton['text']=count 一执行,button的名字就改了。
二、执行couter()这个函数时,count.set()/count.get()是直接操作botton = Button(frame,text = count ,command = counter)里面的count,方法有异曲同工之妙。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式