python实现button点击后灰显

本文介绍了如何在Tkinter应用程序中,通过增加自定义计数器功能,实现点击按钮后生成文件并防止重复点击导致内容混乱。当文件生成一次后,按钮会自动变为灰色不可点击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自己在开发过程中,有个需求是点击按钮后,生成一个文件,但是发现如果重复点击,就会重复在文件中插入内容,导致内容混乱。因此希望在对话框中,增加个限制,在点击生成按钮后生成一个文件后,按钮就灰显,防止重复点击导致文档内容混乱。

思路是:增加个自定义函数计数器,当点击数达到1次后,将按钮置为灰显(disable)、具体代码如下:

from tkinter import *
import tkinter as tk
import sys
import docx
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH,WD_PARAGRAPH_ALIGNMENT 
from docx.shared import Cm,RGBColor,Pt,Inches


root = tk.Tk()     #创建一个窗口
root.title("文件生成工具")   #窗口标题
root.geometry('500x500+700+200')  #窗口位置及尺寸

def creat_doc1():    #第一个函数,生成一个文件,里边只有一个标题
	doc = Document()
	HEAD=doc.add_heading('',level = 0)
	HEAD.alignment = WD_ALIGN_PARAGRAPH.CENTER
	run=HEAD.add_run('第一句话')
	run.font.name=u'华文中宋'
	run.font.color.rgb = RGBColor(0,0,0)
	doc.save('测试.docx')

counter = 0
def DIS(cd,button):       #DIS函数,计数器,嵌套调用cd、button
	cd = cd()        
	global counter
	counter +=1
	if counter == 1:
		button.config(stat='disabled')    #当点击次数为1时,按钮状态变为disabled,不可点击

button_2 = Button(root, text='生成文件', command = lambda:DIS(creat_doc1,button_2))        #点击按钮,调用creat_doc1,当生成一次日报后,按钮灰显
button_2.place(relx=0.35, rely=0.38, relwidth=0.3, relheight=0.1) #button_2的位置参数

root.mainloop()


 

运行效果:

点击按钮后

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值