tkinterpython3
发布时间: 2023-06-10 08:35:46
‘壹’ 如何使用python3自带的tkinter生成气泡提示
可以参考这个:
fromtkinterimport*
fromtimeimporttime,localtime,strftime
classToolTip(Toplevel):
"""
.
,simplypassthewidgettothe
ToolTipconstructor
"""
def__init__(self,wdgt,msg=None,msgFunc=None,delay=1,follow=True):
"""
InitializetheToolTip
Arguments:
wdgt:
msg:
msgFunc:
delay:(maybefloat)
follow:IfTrue,theToolTipfollowsmotion,otherwisehides
"""
self.wdgt=wdgt
self.parent=self.wdgt.master#
Toplevel.__init__(self,self.parent,bg='black',padx=1,pady=1)#InitalisetheToplevel
self.withdraw()#Hideinitially
self.overrideredirect(True)#
self.msgVar=StringVar()#
ifmsg==None:
self.msgVar.set('Nomessageprovided')
else:
self.msgVar.set(msg)
self.msgFunc=msgFunc
self.delay=delay
self.follow=follow
self.visible=0
self.lastMotion=0
Message(self,textvariable=self.msgVar,bg='#FFFFDD',
aspect=1000).grid()#
self.wdgt.bind('<Enter>',self.spawn,'+')#Addbindingstothewidget.
self.wdgt.bind('<Leave>',self.hide,'+')
self.wdgt.bind('<Motion>',self.move,'+')
defspawn(self,event=None):
"""
SpawntheToolTip..
Arguments:
event:
"""
self.visible=1
self.after(int(self.delay*1000),self.show)#
defshow(self):
"""
"""
ifself.visible==1andtime()-self.lastMotion>self.delay:
self.visible=2
ifself.visible==2:
self.deiconify()
defmove(self,event):
"""
.
Arguments:
event:
"""
self.lastMotion=time()
ifself.follow==False:#Ifthefollowflagisnotset,
self.withdraw()
self.visible=1
self.geometry('+%i+%i'%(event.x_root+10,event.y_root+10))#
try:
self.msgVar.set(self.msgFunc())#Trytocallthemessagefunction.ails
except:
pass
self.after(int(self.delay*1000),self.show)
defhide(self,event=None):
"""
HidestheToolTip.
Arguments:
event:
"""
self.visible=0
self.withdraw()
defxrange2d(n,m):
"""
Arguments:
n:Thenumberofrowsinthe2drange
m:
Returns:
Ageneratorofvaluesina2drange
"""
return((i,j)foriinxrange(n)forjinxrange(m))
defrange2d(n,m):
"""
Arguments:
n:Thenumberofrowsinthe2drange
m:
Returns:
Alistofvaluesina2drange
"""
return[(i,j)foriinrange(n)forjinrange(m)]
defprint_time():
"""
:
HH:MM:SS.00
"""
t=time()
timeString='time='
timeString+=strftime('%H:%M:',localtime(t))
timeString+='%.2f'%(t%60,)
returntimeString
defmain():
root=Tk()
btnList=[]
for(i,j)inrange2d(6,4):
text='delay=%i '%i
delay=i
ifj>=2:
follow=True
text+='+follow '
else:
follow=False
text+='-follow '
ifj%2==0:
msg=None
msgFunc=print_time
text+='MessageFunction'
else:
msg='Buttonat%s'%str((i,j))
msgFunc=None
text+='StaticMessage'
btnList.append(Button(root,text=text))
ToolTip(btnList[-1],msg=msg,msgFunc=msgFunc,follow=follow,delay=delay)
btnList[-1].grid(row=i,column=j,sticky=N+S+E+W)
root.mainloop()
if__name__=='__main__':
main()
‘贰’ Python3 tkinter,怎么在Label/Canvas中插入图片
tkinter基于tcl/tk,只支持gif、png和bitmap位图,其余图片格式需要通过第三方库PIL(pillow)提供的ImageTk转化为tcl/tk能够接受的图片数据。
‘叁’ python3的tkinter代码,为什么会报错
1、可能是数据类型错误,int()接收到一个字符型。或是接收到的是一个浮点型。浮点型需要先转换。
比如int(10.0)需要改成int(float(10.0))。
2、可能是代码写错了,比如少打了个引号
热点内容