*#【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

相关文章
相关标签/搜索