一个更详细的Tkinter笔记:

首先是最重要基础的,如何

创建一个窗口

窗口代码:

#coding:utf8
import Tkinter
show = Tkinter.Tk()
show.title("我的窗口")
show.geometry('150x150')
show.resizable(width=True,height=False)
# 进入消息循环
#print show.keys()
show.mainloop()

如图:

创建窗口的常用属性:

  • title: 设置窗口标题
  • geometry: 设置窗口大小
  • resizable():设置窗口是否可以变化长、宽

代码中的print show.keys()输出窗口的基本属性:

['bd', 'borderwidth', 'class', 'menu', 'relief', 'screen', 'use',
'background', 'bg', 'colormap', 'container', 'cursor', 'height',
'highlightbackground', 'highlightcolor', 'highlightthickness', 'padx',
'pady', 'takefocus', 'visual', 'width']

可以像这样设置这些属性:

show['bg']='lightblue'
show['height']=100

Tkinter的其他控件:

Button

Label

Entry

Text

Checkbutton

Radiobutton

每个控件都要加上pack()才能显示!

Button

def say_hi():
print 'hello' b=tk.Button(text='hello',command=say_hi)
b.pack()
b1=tk.Button(text='quit',command=quit)
b1.pack()

如图:

第一个按钮,输出'hello'

第二个按钮关闭窗口

可以在代码中 print b.keys()查看Button的相关属性,并使用b['xxx']=xxx设置相关属性。

['activebackground', 'activeforeground', 'anchor', 'background', 'bd', 'bg', 'bitmap', 'borderwidth', 'command', 'compound', 'cursor', 'default', 'disabledforeground', 'fg', 'font', 'foreground', 'height', 'highlightbackground', 'highlightcolor', 'highlightthickness', 'image', 'justify', 'overrelief', 'padx', 'pady', 'relief', 'repeatdelay', 'repeatinterval', 'state', 'takefocus', 'text', 'textvariable', 'underline', 'width', 'wraplength']

Label&&Text

label:标签控件;可以显示文本和位图。

Text:文本控件;用于显示多行文本。

l=tk.Label(text='hello')
l['bg']='red'
l['foreground']='blue'
l['font']=15
l.pack()
t=tk.Text(width=100,height=100)
t.insert(1.0,'insert into text')
t.pack()

text中还可以插入按钮,插入图片,示例:

#coding:utf8
from Tkinter import * show = Tk()
text = Text(show,width=30,height=15)
#text插入按钮
b1 = Button(text,text='click me',command=quit)
text.window_create(INSERT,window=b1)
#text插入图片
img = PhotoImage(file='beauty.gif')
text.image_create(END,image=img)
text.pack()
mainloop()

这里想说一下,img = PhotoImage(file='beauty.gif')中只能是gif,jpg图片不行,会报错。

(但是你gif运行出来也不会动啊喂!)

Entry

Entry     文本输入框

还是老样子

e=tk.Entry()
e.insert(1,'哈哈哈哈嚯')#插入数据
e.pack()

怎么获得文本框的值:

按Enter键,输出Entry的值。

#coding:utf8
from Tkinter import *
def show(event=None):
print (e.get())
root = Tk()
u=StringVar()
e=Entry(root,textvariable=u)
e.pack()
e.bind('<Button>',show)
root.mainloop()

Radiobutton单选框&&Checkbox多选框

直接贴代码:

单选框点击选择哪个选项,那么就在上方label显示你的选项。

多选框点击选择哪个选项,那么就在下方label显示你的选项。

#coding:utf8
from Tkinter import *
import tkMessageBox
def show(event=None):
str="you select "+u.get()
#l['text']=str label没有set方法,可以这样设置内容
l.config(text=str)
def show1(event=None):
list=["like"]
if a.get()==True:
list.append("bird")
elif "bird" in list:
list.remove("bird")
if b.get()==True:
list.append("rabbit")
elif "rabbit" in list:
list.remove("rabbit")
if c.get()==True:
list.append("tiger")
elif "tiger" in list:
list.remove("tiger")
print list
clabel['text']=list
root = Tk()
#单选框
l=Label(root,text="you select read book")
l.pack()
u=StringVar()
u.set("no")
rb1=Radiobutton(root,text='book',variable=u,value="read book",command=show)
rb2=Radiobutton(root,text='movie',variable=u,value="watch movie",command=show)
rb3=Radiobutton(root,text='game',variable=u,value="play games",command=show)
rb1.select() #不写这句的话,默认初始状态三个都被勾选
rb1.pack()
rb2.pack()
rb3.pack()
a=BooleanVar()
b=BooleanVar()
c=BooleanVar()
#复选框
cb1=Checkbutton(root,text="bird",variable=a,command=show1)
cb2=Checkbutton(root,text="rabbit",variable=b,command=show1)
cb3=Checkbutton(root,text="tiger",variable=c,command=show1)
cb1.pack()
cb2.pack()
cb3.pack()
clabel=Label(root,text="")
clabel.pack()
root.mainloop()

贴图:

python_Tkinter1的更多相关文章

随机推荐

  1. Ubuntu14.04安装 ROS 安装步骤和问题总结

    参考: 1.http://wiki.ros.org/indigo/Installation/Ubuntu 2.安装出现依赖库问题: https://answers.ros.org/question/3 ...

  2. win10家庭版,双击bat文件无法运行(double click bat file does not execute)

    win10家庭版,双击bat文件无法运行,弹出文件打开方式选择框. 在网上搜索处理办法,试了以下方法1-5都没有成功,用方法6规避. 方法1:打开一个驱动器,点“工具-文件夹选项→文件类型→新建→扩展 ...

  3. 微软 workflow 工作流总结

    1.状态机工作流 (1)状态机工作流从state1 流转到 state2 到stateN (2) state中有执行状态和退出状态 (3) 在进入下一个步骤(state1 到 state2)前,首先会 ...

  4. Oracle问题处理

    一,如果在Oracle中执行for update操作时,出现一致卡顿现象,此时可能是有其它的进程阻塞了. 处理的方法就是查找出阻塞的进程,然后强制杀死 先查询出阻塞进程: select object_ ...

  5. Preloading Your ASP.NET Applications

    You may have noticed that the first request to an ASP.NET Web site takes longer than subsequent requ ...

  6. CUDA编程模型——组织并行线程2 (1D grid 1D block)

    在”组织并行编程1“中,通过组织并行线程为”2D grid 2D block“对矩阵求和,在本文中通过组织为 1D grid 1D block进行矩阵求和.一维网格和一维线程块的结构如下图: 其中,n ...

  7. 微信公众号openid处理的一些笔记

    每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同.如果公司有多个公众号,可以通过开放平台关联,这样同一用户,对同一个微信开放平台下的不同应用,unionid是相同 ...

  8. gflags 学习

    一.下载 https://github.com/gflags/gflags 二.可以将gflags编译成lib 三.在需要的工程的workspace下面引入编译好的gflags动态库,在库里面写好BU ...

  9. django后台admin csv 格式表格导出

    1.在app下新建一个.py文件  此例commen.py commen.py (内容)(具体怎么导出的也不知道这么写就对了) import csv from django.http import H ...

  10. MySQL创建数据库时指定编码utf8mb4和添加用户

    CREATE DATABASE `wordpress` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE `wor ...