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、可能是代碼寫錯了,比如少打了個引號
熱點內容