*#【Python】【基礎知識】【模塊】【tkinter】【學用tkinter畫圖/製做窗口】

Python 提供了多個圖形開發界面的庫,幾個經常使用 Python GUI 庫以下:html

Tkinter: python

  Tkinter 模塊(Tk 接口)是 Python 的標準 Tk GUI 工具包的接口 .程序員

  Tk 和 Tkinter 能夠在大多數的 Unix 平臺下使用,一樣能夠應用在 Windows 和 Macintosh 系統裏。編程

  Tk8.0 的後續版本能夠實現本地窗口風格,並良好地運行在絕大多數平臺中。canvas

wxPython:api

  wxPython 是一款開源軟件  app

  是 Python 語言的一套優秀的 GUI 圖形庫,容許 Python 程序員很方便的建立完整的、功能健全的 GUI 用戶界面。函數

Jython:工具

  Jython 程序能夠和 Java 無縫集成。oop

  除了一些標準模塊,Jython 使用 Java 的模塊。

  Jython 幾乎擁有標準的Python 中不依賴於 C 語言的所有模塊。

    好比,Jython 的用戶界面將使用 Swing,AWT或者 SWT。

  Jython 能夠被動態或靜態地編譯成 Java 字節碼。

 

------本專題只介紹tkinter------

須要注意的是:

一、tkinter是每一個python版本都內置的一個圖形庫

二、在使用turtle庫的時候turtle這個庫是會調用tkinter這個庫的

三、這個庫在py2和py3裏的名字是不同的python2叫Tkinter,python3叫tkinter

 

使用tkinter畫圖:

一、畫圓形

二、畫直線

三、畫方形

四、製做Windows窗口

五、tkinter中各屬性及方法的使用介紹:

 

 

 

 1、畫圓形

原題:

使用tkinter庫畫圓形。

原題給出的代碼:

#!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 -*-

# 畫圖,學用circle畫圓形。
if __name__ == '__main__': from tkinter import * canvas = Canvas(width=800, height=600, bg='yellow') canvas.pack(expand=YES, fill=BOTH) k = 1 j = 1
    for i in range(0,26): canvas.create_oval(310 - k,250 - k,310 + k,250 + k, width=1) k += j j += 0.3 mainloop()

 

輸出結果:

  

 

 2、畫直線

 原題:畫圖,學用line畫直線

原題給出的代碼:

#!/usr/bin/python # -*- coding: UTF-8 -*-
 
if __name__ == '__main__': from tkinter import * canvas = Canvas(width=300, height=300, bg='green') canvas.pack(expand=YES, fill=BOTH) x0 = 263 y0 = 263 y1 = 275 x1 = 275
    for i in range(19): canvas.create_line(x0,y0,x0,y1, width=1, fill='red') x0 = x0 - 5 y0 = y0 - 5 x1 = x1 + 5 y1 = y1 + 5 x0 = 263 y1 = 275 y0 = 263
    for i in range(21): canvas.create_line(x0,y0,x0,y1,fill = 'red') x0 += 5 y0 += 5 y1 += 5 mainloop()

 

輸出效果:

 

 3、畫方形

原題:

畫圖,學用rectangle畫方形。

程序分析:

rectangle(int left, int top, int right, int bottom)

 參數說明:(left ,top )爲矩形的左上座標,(right,bottom)爲矩形的右下座標,二者可肯定一個矩形的大小

 

原題給出的代碼:

#!/usr/bin/python # -*- coding: UTF-8 -*-
 
if __name__ == '__main__': from tkinter import * root = Tk() root.title('Canvas') canvas = Canvas(root,width = 400,height = 400,bg = 'yellow') x0 = 263 y0 = 263 y1 = 275 x1 = 275
    for i in range(19): canvas.create_rectangle(x0,y0,x1,y1) x0 -= 5 y0 -= 5 x1 += 5 y1 += 5 canvas.pack() root.mainloop()

 

輸出結果:

 

 4、使用tkinter製做Windows窗口:

源碼:

#!/usr/bin/python # -*- coding: GBK -*-
 
import tkinter #import tkMessageBox #Py2.0中
import tkinter.messagebox #Py3.0中
top = tkinter.Tk() def helloCallBack(): tkinter.messagebox.showinfo( "Hello Python", "Hello Runoob") B = tkinter.Button(top, text ="sss", command = helloCallBack) B.pack() # 進入消息循環
top.mainloop()

 

效果:

 

 

點擊按鈕,出現:

 

 

 

 

 

其中Tkinter庫的使用還需深刻學習!

 5、tkinter庫的使用介紹:(上述代碼中已使用的)

    tkinter包含的方法:

    

>>> dir(tkinter) ['ACTIVE', 'ALL', 'ANCHOR', 'ARC', 'BASELINE', 'BEVEL', 'BOTH', 'BOTTOM', 'BROWSE', 'BUTT', 'BaseWidget', 'BitmapImage', 'BooleanVar', 'Button', 'CASCADE', 'CENTER', 'CHAR', 'CHECKBUTTON', 'CHORD', 'COMMAND', 'CURRENT', 'CallWrapper', 'Canvas', 'Checkbutton', 'DISABLED', 'DOTBOX', 'DoubleVar', 'E', 'END', 'EW', 'EXCEPTION', 'EXTENDED', 'Entry', 'Event', 'EventType', 'FALSE', 'FIRST', 'FLAT', 'Frame', 'GROOVE', 'Grid', 'HIDDEN', 'HORIZONTAL', 'INSERT', 'INSIDE', 'Image', 'IntVar', 'LAST', 'LEFT', 'Label', 'LabelFrame', 'Listbox', 'MITER', 'MOVETO', 'MULTIPLE', 'Menu', 'Menubutton', 'Message', 'Misc', 'N', 'NE', 'NO', 'NONE', 'NORMAL', 'NS', 'NSEW', 'NUMERIC', 'NW', 'NoDefaultRoot', 'OFF', 'ON', 'OUTSIDE', 'OptionMenu', 'PAGES', 'PIESLICE', 'PROJECTING', 'Pack', 'PanedWindow', 'PhotoImage', 'Place', 'RADIOBUTTON', 'RAISED', 'READABLE', 'RIDGE', 'RIGHT', 'ROUND', 'Radiobutton', 'S', 'SCROLL', 'SE', 'SEL', 'SEL_FIRST', 'SEL_LAST', 'SEPARATOR', 'SINGLE', 'SOLID', 'SUNKEN', 'SW', 'Scale', 'Scrollbar', 'Spinbox', 'StringVar', 'TOP', 'TRUE', 'Tcl', 'TclError', 'TclVersion', 'Text', 'Tk', 'TkVersion', 'Toplevel', 'UNDERLINE', 'UNITS', 'VERTICAL', 'Variable', 'W', 'WORD', 'WRITABLE', 'Widget', 'Wm', 'X', 'XView', 'Y', 'YES', 'YView', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_cnfmerge', '_default_root', '_exit', '_flatten', '_join', '_magic_re', '_setit', '_space_re', '_splitdict', '_stringify', '_support_default_root', '_test', '_tkerror', '_tkinter', '_varnum', 'commondialog', 'constants', 'enum', 'getboolean', 'getdouble', 'getint', 'image_names', 'image_types', 'mainloop', 'messagebox', 're', 'simpledialog', 'sys', 'wantobjects'] >>>

 

tkinter爲module類型

tkinter.ACTIVE 爲str類型

tkinter.ACTIVE.capitalize  爲內置方法/函數

>>> type(tkinter) <class 'module'> >>> type(tkinter.ACTIVE) <class 'str'> >>> type(tkinter.ACTIVE.capitalize) <class 'builtin_function_or_method'> >>> 

 

一、tkinter.messagebox

 

二、tkinter.Button

 

三、tkinter.Tk

 

 

 

 

 

 

 

 

 


————————(我是分割線)————————

參考:

1. RUNOOB.COM:

https://www.runoob.com/python/python-exercise-example56.html  / 畫圓

https://www.runoob.com/python/python-gui-tkinter.html  / Python GUI編程(Tkinter)

 

https://www.runoob.com/python/python-tk-button.html    /製做窗口

https://www.runoob.com/python/python-exercise-example57.html  / 畫直線

https://www.runoob.com/python/python-exercise-example58.html  / 畫方形

二、https://zhidao.baidu.com/question/432270397607348804.html 

 

 

備註:

初次編輯時間:2019年10月6日21:42:39

第一次修改時間:2019年10月7日10:31:36 / 除畫圓外,增長了其餘功能模塊;

第二次修改時間:2019年10月7日15:45:12 / 以模塊知識點命名,逐步深刻學習該模塊的使用方法和經典案例。

環境:Windows 7   / Python 3.7.2

相關文章
相關標籤/搜索