from tkinter import * # get widget classes from tkinter.messagebox import askokcancel # get canned std dialog class Quitter(Frame): # subclass our GUI def __init__(self, parent=None): # constructor method Frame.__init__(self, parent) self.pack() widget = Button(self, text=‘Quit‘, command=self.quit) widget.pack(side=LEFT, expand=YES, fill=BOTH) def quit(self): ans = askokcancel(‘Verify exit‘, "Really quit?") if ans: Frame.quit(self) if __name__ == ‘__main__‘: Quitter().mainloop()
选择窗口颜色
from tkinter import * from tkinter.colorchooser import askcolor def setBgColor(): (triple, hexstr) = askcolor() if hexstr: print(hexstr) print(triple) push.config(bg=hexstr) root = Tk() push = Button(root, text=‘Set Background Color‘, command=setBgColor) push.config(height=3, font=(‘times‘, 20, ‘bold‘)) push.pack(expand=YES, fill=BOTH) root.mainloop()
绑定事件
from tkinter import * def showPosEvent(event): print(‘Widget=%s X=%s Y=%s‘ % (event.widget, event.x, event.y)) def showAllEvent(event): print(event) for attr in dir(event): if not attr.startswith(‘__‘): print(attr, ‘=>‘, getattr(event, attr)) def onKeyPress(event): print(‘Got key press:‘, event.char) def onArrowKey(event): print(‘Got up arrow key press‘) def onReturnKey(event): print(‘Got return key press‘) def onLeftClick(event): print(‘Got left mouse button click:‘, end=‘ ‘) showPosEvent(event) def onRightClick(event): print(‘Got right mouse button click:‘, end=‘ ‘) showPosEvent(event) def onMiddleClick(event): print(‘Got middle mouse button click:‘, end=‘ ‘) showPosEvent(event) showAllEvent(event) def onLeftDrag(event): print(‘Got left mouse button drag:‘, end=‘ ‘) showPosEvent(event) def onDoubleLeftClick(event): print(‘Got double left mouse click‘, end=‘ ‘) showPosEvent(event) tkroot.quit() tkroot = Tk() labelfont = (‘courier‘, 20, ‘bold‘) # family, size, style widget = Label(tkroot, text=‘Hello bind world‘) widget.config(bg=‘red‘, font=labelfont) # red background, large font widget.config(height=5, width=20) # initial size: lines,chars widget.pack(expand=YES, fill=BOTH) widget.bind(‘<Button-1>‘, onLeftClick) # mouse button clicks widget.bind(‘<Button-3>‘, onRightClick) widget.bind(‘<Button-2>‘, onMiddleClick) # middle=both on some mice widget.bind(‘<Double-1>‘, onDoubleLeftClick) # click left twice widget.bind(‘<B1-Motion>‘, onLeftDrag) # click left and move widget.bind(‘<KeyPress>‘, onKeyPress) # all keyboard presses widget.bind(‘<Up>‘, onArrowKey) # arrow button pressed widget.bind(‘<Return>‘, onReturnKey) # return/enter key pressed widget.focus() # or bind keypress to tkroot tkroot.title(‘Click Me‘) tkroot.mainloop()
时间: 2024-10-11 01:54:15