小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Tkinter教程之Button篇

 Mq_Guo 2017-07-23

文章轉(zhuǎn)載自:http://blog.csdn.net/jcodeer/article/details/1811298


[python] view plain copy
  1. # Tkinter教程之Button篇(1)  
  2. # Button功能觸發(fā)事件  
  3. '''''1.一個(gè)簡單的Button應(yīng)用'''  
  4. from tkinter import *  
  5.   
  6.   
  7. # 定義Button的回調(diào)函數(shù)  
  8. def helloButton():  
  9.     print('hello button')  
  10.   
  11.   
  12. root = Tk()  
  13. # 通過command屬性來指定Button的回調(diào)函數(shù)  
  14. Button(root, text='Hello Button', command=helloButton).pack()  
  15. root.mainloop()  
  16.   
  17. ''''' 
  18. 執(zhí)行的結(jié)果:每次點(diǎn)擊一次,程序向標(biāo)準(zhǔn)輸出打印'hello button',以上為Button使用方法,可以 
  19. 再做一下簡化,如不設(shè)置Button的回調(diào)函數(shù),這樣也是允許的但這樣的結(jié)果與Label沒有什么太 
  20. 大的區(qū)別,只是外觀看起來有所不同罷了,失去了Button的作用。 
  21. from Tkinter import * 
  22. root = Tk() 
  23. #下面的relief = FLAT設(shè)置,就是一個(gè)Label了?。?! 
  24. Button(root,text = 'hello button',relief=FLAT).pack() 
  25. root.mainloop() 
  26. '''  

[python] view plain copy
  1. '''''2.測試Button的relief屬性'''  
  2. # 運(yùn)行下面的代碼可以看到Button的各個(gè)不同效果,均沒有回調(diào)函數(shù)。  
  3. from tkinter import *  
  4.   
  5. root = Tk()  
  6. # flat, groove, raised, ridge, solid, or sunken  
  7. Button(root, text='hello button', relief=FLAT).pack()  
  8. Button(root, text='hello button', relief=GROOVE).pack()  
  9. Button(root, text='hello button', relief=RAISED).pack()  
  10. Button(root, text='hello button', relief=RIDGE).pack()  
  11. Button(root, text='hello button', relief=SOLID).pack()  
  12. Button(root, text='hello button', relief=SUNKEN).pack()  
  13.   
  14. root.mainloop()  
  15.   
  16. ''''' 
  17. Button顯示圖像 
  18. image:可以使用gif圖像,圖像的加載方法img = PhotoImage(root,file = filepath 
  19. bitmap:使用X11 格式的bitmap,Windows的Bitmap沒法顯示的,在Windows下使用GIMP2.4將windows 
  20. Bitmap轉(zhuǎn)換為xbm文件,依舊無法使用.linux下的X11 bitmap編輯器生成的bitmap還沒有測試,但可 
  21. 以使用內(nèi)置的位圖。 
  22. (1).使用位圖文件 
  23. bp = BitmapImage(file = "c:/python2.xbm") 
  24. Button(root,bitmap = bp).pack() 
  25. (2).使用位圖數(shù)據(jù) 
  26. BITMAP = """ 
  27. #define im_width 32 
  28. #define im_height 32 
  29. static char im_bits[] = { 
  30. 0xaf,0x6d,0xeb,0xd6,0x55,0xdb,0xb6,0x2f, 
  31. 0xaf,0xaa,0x6a,0x6d,0x55,0x7b,0xd7,0x1b, 
  32. 0xad,0xd6,0xb5,0xae,0xad,0x55,0x6f,0x05, 
  33. 0xad,0xba,0xab,0xd6,0xaa,0xd5,0x5f,0x93, 
  34. 0xad,0x76,0x7d,0x67,0x5a,0xd5,0xd7,0xa3, 
  35. 0xad,0xbd,0xfe,0xea,0x5a,0xab,0x69,0xb3, 
  36. 0xad,0x55,0xde,0xd8,0x2e,0x2b,0xb5,0x6a, 
  37. 0x69,0x4b,0x3f,0xb4,0x9e,0x92,0xb5,0xed, 
  38. 0xd5,0xca,0x9c,0xb4,0x5a,0xa1,0x2a,0x6d, 
  39. 0xad,0x6c,0x5f,0xda,0x2c,0x91,0xbb,0xf6, 
  40. 0xad,0xaa,0x96,0xaa,0x5a,0xca,0x9d,0xfe, 
  41. 0x2c,0xa5,0x2a,0xd3,0x9a,0x8a,0x4f,0xfd, 
  42. 0x2c,0x25,0x4a,0x6b,0x4d,0x45,0x9f,0xba, 
  43. 0x1a,0xaa,0x7a,0xb5,0xaa,0x44,0x6b,0x5b, 
  44. 0x1a,0x55,0xfd,0x5e,0x4e,0xa2,0x6b,0x59, 
  45. 0x9a,0xa4,0xde,0x4a,0x4a,0xd2,0xf5,0xaa 
  46. }; 
  47. """ 
  48. 使用tuple數(shù)據(jù)來創(chuàng)建圖像 
  49. bmp = BitmapImage(data = BITMAP) 
  50. Button(root,bitmap = bmp) 
  51. '''  

[python] view plain copy
  1. '''''3.與Label一樣,Button也可以同時(shí)顯示文本與圖像,使用屬性compound'''  
  2. from tkinter import *  
  3.   
  4. root = Tk()  
  5. # 圖像居下,居上,居右,居左,文字位于圖像之上  
  6. Button(root, text='botton', compound='bottom', bitmap='error').pack()  
  7. Button(root, text='top', compound='top', bitmap='error').pack()  
  8. Button(root, text='right', compound='right', bitmap='error').pack()  
  9. Button(root, text='left', compound='left', bitmap='error').pack()  
  10. Button(root, text='center', compound='center', bitmap='error').pack()  
  11. # 消息循環(huán)  
  12. root.mainloop()  

[python] view plain copy
  1. '''''4.控件焦點(diǎn)問題 
  2. 創(chuàng)建三個(gè)Button,各自對(duì)應(yīng)回調(diào)函數(shù);將第二個(gè)Button設(shè)置焦點(diǎn),程序運(yùn)行是按“Enter”,判斷 
  3. 程序的打印結(jié)果 
  4. '''  
  5. from tkinter import *  
  6.   
  7.   
  8. def cb1():  
  9.     print('button1 clicked')  
  10.   
  11.   
  12. def printEventInfo(event):  
  13.     print('event.time = ', event.time)  
  14.     print('event.type = ', event.type)  
  15.     print('event.WidgetId = ', event.widget)  
  16.     print('event.KeySymbol = ', event.keysym)  
  17.   
  18.   
  19. def cb3():  
  20.     print('button3 clicked')  
  21.   
  22.   
  23. root = Tk()  
  24.   
  25. b1 = Button(root, text='Button1', command=cb1)  
  26. b2 = Button(root, text='Button2')  
  27. b2.bind("<Enter>", printEventInfo)  
  28. b3 = Button(root, text='Button3', command=cb3)  
  29. b1.pack()  
  30. b2.pack()  
  31. b3.pack()  
  32.   
  33. b2.focus_set()  
  34. root.mainloop()  
  35. ''''' 
  36. 上例中使用了bind方法,它建立事件與回調(diào)函數(shù)(響應(yīng)函數(shù))之間的關(guān)系,每當(dāng)產(chǎn)生<Enter>事件 
  37. 后,程序便自動(dòng)的調(diào)用cb2,與cb1,cb3不同的是,它本身還帶有一個(gè)參數(shù)----event,這個(gè)參數(shù)傳遞 
  38. 響應(yīng)事件的信息。 
  39. '''  

[python] view plain copy
  1. '''''5.指定Button的寬度與高度 
  2. width:    寬度 
  3. heigth:    高度 
  4. 使用三種方式: 
  5. 1.創(chuàng)建Button對(duì)象時(shí),指定寬度與高度 
  6. 2.使用屬性width和height來指定寬度與高度 
  7. 3.使用configure方法來指定寬度與高度 
  8. '''  
  9. from tkinter import *  
  10.   
  11. root = Tk()  
  12. b1 = Button(root, text='30X1', width=30, height=2)  
  13. b1.pack()  
  14.   
  15. b2 = Button(root, text='30X2')  
  16. b2['width'] = 30  
  17. b2['height'] = 3  
  18. b2.pack()  
  19.   
  20. b3 = Button(root, text='30X3')  
  21. b3.configure(width=30, height=3)  
  22. b3.pack()  
  23.   
  24. root.mainloop()  
  25. # 上述的三種方法同樣也適合其他的控件  

[python] view plain copy
  1. '''''6.設(shè)置Button文本在控件上的顯示位置 
  2. anchor: 
  3. 使用的值為:n(north),s(south),w(west),e(east)和ne,nw,se,sw,就是地圖上的標(biāo)識(shí)位置了,使用 
  4. width和height屬性是為了顯示各個(gè)屬性的不同。 
  5. '''  
  6. from tkinter import *  
  7.   
  8. root = Tk()  
  9.   
  10. # 簡單就是美!  
  11. for a in ['n''s''e''w''ne''nw''se''sw']:  
  12.     Button(root,  
  13.            text='anchor',  
  14.            anchor=a,  
  15.            width=30,  
  16.            height=4).pack()  
  17. # 如果看的不習(xí)慣,就使用下面的代碼。  
  18. # Button(root,text = 'anchor',width = 30,height =4).pack()  
  19. # Button(root,text = 'anchor',anchor = 'center',width = 30,height =4).pack()  
  20. # Button(root,text = 'anchor',anchor = 'n',width = 30,height = 4).pack()  
  21. # Button(root,text = 'anchor',anchor = 's',width = 30,height = 4).pack()  
  22. # Button(root,text = 'anchor',anchor = 'e',width = 30,height = 4).pack()  
  23. # Button(root,text = 'anchor',anchor = 'w',width = 30,height = 4).pack()  
  24. # Button(root,text = 'anchor',anchor = 'ne',width = 30,height = 4).pack()  
  25. # Button(root,text = 'anchor',anchor = 'nw',width = 30,height = 4).pack()  
  26. # Button(root,text = 'anchor',anchor = 'se',width = 30,height = 4).pack()  
  27. # Button(root,text = 'anchor',anchor = 'sw',width = 30,height = 4).pack()  
  28.   
  29. root.mainloop()  

[python] view plain copy
  1. '''''7.改變Button的前景色與背景色 
  2. fg:    前景色 
  3. bg:背景色 
  4. '''  
  5. from tkinter import *  
  6.   
  7. root = Tk()  
  8. bfg = Button(root, text='change foreground', fg='red')  
  9. bfg.pack()  
  10.   
  11. bbg = Button(root, text='change backgroud', bg='blue')  
  12. bbg.pack()  
  13.   
  14. '''''8.設(shè)置Button的邊框 
  15. bd(bordwidth):缺省為1或2個(gè)像素 
  16. '''  
  17. # 創(chuàng)建5個(gè)Button邊框?qū)挾纫来螢椋?,2,4,6,8  
  18. for b in [01234]:  
  19.     Button(root,  
  20.            text=str(b),  
  21.            bd=b).pack()  
  22. '''''9.設(shè)置Button的風(fēng)格 
  23. relief/raised/sunken/groove/ridge 
  24. '''  
  25. for r in ['raised','sunken','groove','ridge']:  
  26.     Button(root,  
  27.     text = r,  
  28.     relief = r,  
  29.     width = 30).pack()  
  30.   
  31.   
  32. '''''10.設(shè)置Button狀態(tài) 
  33. normal/active/disabled 
  34. '''  
  35. def statePrint():  
  36.     print('state')  
  37. for r in ['normal','active','disabled']:  
  38.     Button(root,  
  39.     text = r,  
  40.     state = r,  
  41.     width = 30,  
  42.     command = statePrint).pack()  
  43.   
  44. #例子中將三個(gè)Button在回調(diào)函數(shù)都設(shè)置為statePrint,運(yùn)行程序只有normal和active激活了回調(diào)函數(shù),而disable按鈕則沒有,對(duì)于暫時(shí)不  
  45. #需要按鈕起作用時(shí),可以將它的state設(shè)置為disabled屬性  
  46. root.mainloop()  

[python] view plain copy
  1. '''''11.綁定Button與變量 
  2. 設(shè)置Button在textvariable屬性 
  3. '''  
  4. from tkinter import *  
  5.   
  6. root = Tk()  
  7.   
  8.   
  9. def changeText():  
  10.     if b['text'] == 'text':  
  11.         v.set('change')  
  12.         print('change')  
  13.     else:  
  14.         v.set('text')  
  15.         print('text')  
  16.   
  17.   
  18. v = StringVar()  
  19. b = Button(root, textvariable=v, command=changeText)  
  20. v.set('text')  
  21. b.pack()  
  22. root.mainloop()  
  23.   
  24. ''''' 
  25. 將變量v與Button綁定,當(dāng)v值變化時(shí),Button顯示的文本也隨之變化 
  26. '''  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多