Tkinter是什么

python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多一个直观的功能,如何想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的。

Label(标签)&Button(按钮)

Label

import tkinter as tk

#第1步,建立窗口window
window=tk.Tk() #第2步,给窗口的可视化起名字
window.title('zhuyuanlu-jacky') #第3步,设定窗口的大小(长*宽)
window.geometry('500x300') #这里的乘是小 #第4步,在图形界面上设定标签
l=tk.Label(window,text='sum funds',bg='green',font=('Arial,12'),width=30,height=2)
#说明: bg为背景,font为字体,width为长,height为高,这里的长和高是字符的长和高,比如height=2,就是标签有2个字符这么高 #第5步,安置标签
l.pack()
#安置lable的方法有:1)l.pack();2)l.place(); #第6步,
window.mainloop

特别注意,上面部分的理解的难点在第6步,loop因为是循环的意思,window.mainloop就会让window不断的刷新,如果没有mainloop,就是一个静态的window,传入进去的值就不会有循环,mainloop就相当于一个很大的while循环,有个while,每点击一次就会更新一次,所以我们必须要有循环

所以的窗口文件都必须有类似的mainloop

mainloop是窗口文件的关键的关键的关键。



Button(按钮)

继续上面的代码,开始给window加上Button,

import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('500x300')
l=tk.Label(window,text='sum funds',bg='green',font=('Arial,12'),width=30,height=2)
l.pack()
#第7步,添加按钮
b=tk.Botton(window,text="hit me",width=15,height=2,command=hit_me)
#command参数为按钮执行的函数方程,下一步还要定义hit_me 这个函数 window.mainloop

import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('500x300')
#第9步,假设变量
var=tk.StringVar() #这是tk里字符串的变量 #第10步,因为字符串变量是在标签里显示的,所以要给改l的代码
#l=tk.Label(window,text='sum funds',bg='green',font('Arial,12'),width=30,height=2)更改成:
l=tk.Label(window.textvariable=var,bg='green',font('Arial,12'),width=30,height=2) l.pack() #第8步,定义hit_me函数
#我们要实现的功能是点击按钮,label从无内容点击后显示出 sum money
#为了点击前后sum money从无到有,我们需要一个变量来代替,所以def hit_me():我们先到第9步,在回到第8步
def hit_me(): b=tk.Botton(window,text="hit me",width=15,height=2,command=hit_me)
window.mainloop

import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('500x300')
var=tk.StringVar()
l=tk.Label(window.textvariable=var,bg='green',font('Arial,12'),width=30,height=2)
l.pack() #第11步,设定全局变量显示还是不显示
on_hit=False #第12步,回到第8步,定义hit_me函数
def hit_me():
global on_hit
if on_hit==False:
var.set('you hit me')
else:
var.set('') b=tk.Botton(window,text="hit me",width=15,height=2,command=hit_me)
window.mainloop
import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('500x300')
var=tk.StringVar()
l=tk.Label(window.textvariable=var,bg='green',font('Arial,12'),width=30,height=2)
l.pack()
on_hit=False
def hit_me():
global on_hit
if on_hit==False:
on_hit=True #第13步
var.set('you hit me')
else:
on_hit=False #第14步
var.set('')
b=tk.Botton(window,text="hit me",width=15,height=2,command=hit_me) #第15步
b.pack() #把button放在label下面的位置
window.mainloop

上面完成了一个简单的窗口

Entry(输入)&Text(文本框)

import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300') #Entry(输入)
#第1步
e=tk.Entry(window,show=None)
#比如像密码那样输入:show='*'
#第2步,把Entry放在window上面
e.pack() #第3步,定义button
def insert_point():
var=e.get()
t.insert('insert',var)
def insert_end():
var=e.get()
t.insert('end',var)
b1=tk.Button(window,text="insert point",width=15,height=2,command=insert_point)
b1.pack() #把button放在label下面的位置 b2=tk.Button(window,text="insert end",command=insert_end)
b2.pack()
#第4步,定义Text
t=tk.Text(window,height=2)
t.pack()
window.mainloop

提示:def insert_end():

var=e.get()

t.insert(1.1,var) 就是插入了一行一列上

列表控件(Listbox)

import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300') var1=tk.StringVar()
l=tk.Label(window,bg='yellow',width=4,textvariable=var1)
l.pack()
#光标在listbox上,把内容显示到label上
def print_selection():
value=lb.get(lb.curselection()) #先要获得光标中我要显示的值
var1.set(value) #再把值附在label当中 b1=tk.Button(window,text="print selection",width=15,height=2,command=print_selection)
b1.pack() var2=tk.StringVar()
var2.set((11,22,jacky,haerbin))
lb=tk.Listbox(window,listvar=var2) #如何插入元素进列表
list_items=[aa,bb,cc] #先定义它是个列表
for item in list_items:
lb.insert('end',item)
lb.insert(1,'first') #也可以按照索引插入
lb.pack()
window.mainloop

Radiobutton(选择按钮)

import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300') var=tk.StringVar()
l=tk.Label(window,bg='yellow',width=20,text='empty')
l.pack() def print_selection():
l.config(text='you have selected'+var.get()) #config可以改变label的参数 #text参数为显示在选择按钮上为Option A, 当选择Option A的时候,把var赋值成value参数A,
r1=tk.Radiobutton(window,text='Option A',variable=var,value='A',command=print_selection)
r1.pack() r2=tk.Radiobutton(window,text='Option B',variable=var,value='B',command=print_selection)
r2.pack() r3=tk.Radiobutton(window,text='Option C',variable=var,value='C',command=print_selection)
r3.pack()
window.mainloop

Checkbutton(勾选项)

Checkbutton与Radiobutton区别:

  • Radiobutton只能选定所有Radiobutton中的一个值

  • Checkbutton可以选择打勾的很多值

import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300') l=tk.Label(window,bg='yellow',width=20,text='empty')
l.pack() def print_selection():
if(var1.get()==1)&(var2.get()==0):
l.config(text='fund_one month')
elif(var1.get()==0)&(var2.get()==1):
l.config(text='fund_three month')
elif(var1.get()==0)&(var2.get()==0):
l.config(text='')
else:
l.config(text='sum funds') var1=tk.IntVar()
var2=tk.IntVar() c1=tk.Checkbutton(window,text='one month',variable=var1,onvalue=1,command=print_selection)
#选定就是打开onvalue,不选定offvalue=0
c2=tk.Checkbutton(window,text='three month',variable=var2,onvalue=1,command=print_selection)
c1.pack()
c2.pack() window.mainloop



Canvas画布

import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300') #创建画布
canvas=tk.Canvas(window,bg='blue',height=100,width=200)
#加载图片的文件
image_file=tk.PhotoImage(file='***.gif') #这里特别注意,有些版本只支持gif图片
image=canvas.creat_image(0,0,anchor='nw',image_file) #图片放的点位,nw就是northwest
canvas.pack()
b=tk.Butthon(window,text='move',command=moveit).pack() window.mainloop

Menubar 菜单

import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300') l=tk.Label(window,text='',bg='yellow')
l.pack() #定义菜单栏下New的命令
counter=0
def do_job():
global counter
l.config(text='do'+str(counter))
counter+=1 #每次点击,都加1 #建立menubar
menubar=tk.Menu(window)
#创建menubar的选项
filemenu=tk.Menu(menubar,tearoff=0) #tearoff=1或0是定义menu能不能被分开
menubar.add_cascade(label='File',menu=filemenu)
filemenu.add_command(label='New',command=do_job) #file文件栏下的每一个选项就相当于一个命令
filemenu.add_command(label='Open',command=do_job)
filemenu.add_command(label='Save',command=do_job) #加进分隔线
filemenu.add_separator()
filemenu.add_command(label='Exit',command=window.quit) #创建Edit菜单栏
editmenu=tk.Menu(menubar,tearoff=0)
menubar.add_cascade(label='Edit',menu=editmenu) editmenu.add_command(label='Cut',command=do_job)
editmenu.add_command(label='Copy',command=do_job)
editmenu.add_command(label='Paste',command=do_job) #把所有的menu放在window上
window.config(menu=menubar)
window.mainloop()

放置位置

place

import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300') l=tk.Label(window,text='',bg='yellow').place(x=10,y=100,anchor='nw')
window.mainloop()

Python图形用户界面-Tkinter的更多相关文章

  1. python---基础知识回顾(九)图形用户界面-------Tkinter

    前戏:老牌python GUI程序(Tkinter) import tkinter.messagebox as messagebox class Application(Frame): def __i ...

  2. Python图形用户界面

    1.使用Tkinter创建图形用户界面的步骤 (1)导入Tkinter模块,使用import Tkinter或from Tkinter import * (2)创建顶层窗口对象容器,使用top = T ...

  3. python学习笔记(十 一)、GUI图形用户界面

    python图形用户界面就是包含按钮.输入框.选择框等组件的窗口.主要依赖与工具包进行代码编写.python GUI工具包并发互斥的,你可以选择多个工具包进行安装,有极大选择空间.每个工具包都有不同用 ...

  4. 折腾Python中的Tkinter

    折腾Python中的Tkinter 从oschina看到了关于Python的Tkinter简介: Tk图形用户界面 Tkinter 又从Python官网文档: Tkinter — Python int ...

  5. 以Tkinter模块来学习Python实现GUI(图形用户界面)编程

    tk是什么:它是一个图形库,支持多个操作系统,使用tcl语言开发的.tkinter是Python内置的模块, 与tk类似的第三方图形库(GUI库)还有很多,比如:Qt,GTK,wxWidget,wxP ...

  6. Python学习笔记007_图形用户界面[EasyGui][Tkinter]

    EasyGui官网:http://easygui.sourceforge.net/ EasyGui最新版:easygui-0.97.rar 小甲鱼根据官网文档翻译之后的中文文档地址: http://b ...

  7. python基础课程_2学习笔记3:图形用户界面

    图形用户界面 丰富的平台 写作Python GUI程序前,须要决定使用哪个GUI平台. 简单来说,平台是图形组件的一个特定集合.能够通过叫做GUI工具包的给定Python模块进行訪问. 工具包 描写叙 ...

  8. Python - GUI(Graphical User Interface,图形用户界面)

    Tkinter https://docs.python.org/3/library/tkinter.html Python自带的标准GUI库,可用于快速创建GUI应用程序,能够满足基本的GUI程序要求 ...

  9. R python在无图形用户界面时保存图片

    在用python的matplotlib,和R中自带的作图,如果想保存图片时,当你有图形用户界面时是没有问题的,但是当没有图形用户界面时,会报错: 在R中,解决办法: https://blog.csdn ...

随机推荐

  1. k8s-secret用法

    创建username和password文件: $ echo -n "admin" > ./username $ echo -n "1f2d1e2e67df" ...

  2. mac 下 vscode配置SFTP连接

    VScode中使用SFTP插件连接远程服务器进行文件修改 下载SFTP插件后,使用Ctrl+Shift+P.输入SFTP,选择第一个将会生成简短的默认配置文件 然后把sftp.json文件内内容换成以 ...

  3. 函数——箭头函数&自执行函数(二)

    一.箭头函数是在es6中添加的一种规范,它相当于匿名函数,简化了函数的定义. 1.语法 a.function用var,let,cost来表示: b.参数要写在第一个等号后面:   参数有多个,需要加一 ...

  4. SpEL表达式总结

    前言SpEL(Spring Expression Language),即Spring表达式语言,是比JSP的EL更强大的一种表达式语言.为什么要总结SpEL,因为它可以在运行时查询和操作数据,尤其是数 ...

  5. 关于百度Tongji Api的文档补充

    百度统计的Tongji Api好像没有人维护了,文档缺胳膊少腿也没人理. 今天在这里指出其中一点,因为这一点花时间也没有傻思考的乐趣的. 引用自百度Tongji API文档 这个文档缺了很多东西,其中 ...

  6. IntelliJ IDEA安装及破解

    百度搜索IntelliJ IDEA,进入官网. 下载完成后进入安装界面 根据自己的情况选择安装路径 等待下载和安装完成. 安装完成 接下来我们运行IntelliJ IDEA 之后这里就要我们进行激活了 ...

  7. CentOS 7 系统初始化

    0.安装系统基础依赖工具包 yum install net-tools gcc-c++ wget lrzsz vim ntpdate cronolog make psmisc 1.修改主机名 cent ...

  8. Django 语法笔记

    Django 语法 创建项目框架 django-admin startproject 项目名 创建子app 业务分化,可以优化团队合作,可以明确找锅 python manage.py startapp ...

  9. 构建之法第二次作业【使用git和Vs实现四则运算】

    [相关信息] Q A GIT地址 git地址 GIT用户名 Lin-000 学号后五位 62501 博客地址 博客地址 作业链接 此次作业链接 1.项目需求 程序接收一个命令行参数 n,然后随机产生 ...

  10. 团队项目-Beta版本发布

    这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求链接 团队名称 众志陈成 这个作业的目标 通过团队协作了解软件开发的大致流程,并在这个过程中体会调整与优化程序的方法,为以后真实的软件开发奠 ...