*#【Python】【基础知识】【模块】【tkinter】【学用tkinter画图/制作窗口】

Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下:

Tkinter:

  Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .

  Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。

  Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

wxPython:

  wxPython 是一款开源软件  

  是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。

Jython:

  Jython 程序可以和 Java 无缝集成。

  除了一些标准模块,Jython 使用 Java 的模块。

  Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。

    比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。

  Jython 可以被动态或静态地编译成 Java 字节码。

 

------本专题只介绍tkinter------

需要注意的是:

1、tkinter是每个python版本都内置的一个图形库

2、在使用turtle库的时候turtle这个库是会调用tkinter这个库的

3、这个库在py2和py3里的名字是不一样的python2叫Tkinter,python3叫tkinter

 

使用tkinter画图:

1、画圆形

2、画直线

3、画方形

4、制作Windows窗口

5、tkinter中各属性及方法的使用介绍:

 

 

 

 一、画圆形

原题:

使用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()

 

输出结果:

  *#【Python】【基础知识】【模块】【tkinter】【学用tkinter画图/制作窗口】_第1张图片

 

 二、画直线

 原题:画图,学用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()

 

输出效果:

*#【Python】【基础知识】【模块】【tkinter】【学用tkinter画图/制作窗口】_第2张图片

 

 三、画方形

原题:

画图,学用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()

 

输出结果:

*#【Python】【基础知识】【模块】【tkinter】【学用tkinter画图/制作窗口】_第3张图片

 

 四、使用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()

 

效果:

 

 

点击按钮,出现:

*#【Python】【基础知识】【模块】【tkinter】【学用tkinter画图/制作窗口】_第4张图片

 

 

 

 

 

其中Tkinter库的使用还需深入学习!

 五、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)

>>> type(tkinter.ACTIVE)

>>> type(tkinter.ACTIVE.capitalize)

>>> 

 

1、tkinter.messagebox

 

2、tkinter.Button

 

3、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  / 画方形

2、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

 

你可能感兴趣的:(*#【Python】【基础知识】【模块】【tkinter】【学用tkinter画图/制作窗口】)