一个更详细的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. 流程帮App风险评估

    一. 存在风险 此处罗列出了我们开发小组可能遇到8种的风险. 编号 风险名称 内容 发生概率 损失(人周) 危险度(周) 1 计划编制风险 对所要使用技术不熟悉,可能导致无法交付: 每个模块的实现一定 ...

  2. 进程间传递文件描述符——sendmsg和recvmsg函数

    先引入一个例子,该程序的目的是子进程向父进程传递文件描述符,并通过该文件描述符读取buf. #include <func.h> int main(){ int fds[2]; pipe(f ...

  3. tab$被删除恢复指南

    by 蔡建良 2019-2-25 经过长时间摸索,参考网上各类文章.今天终于让我成功恢复了oracle的sys.tab$表,并成功打开了数据库. 将此过程记录下来,与大家共享.如有疑问可联系我QQ: ...

  4. LDAP & Implentation

    LDAP: LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根据需 ...

  5. 2018/12/20 20:52:42 螺纹钢PTA豆粕

    如期向上,但是一点办法没有:没有好的入场位,不做不算错,面对诱惑不动如山也是一种修养,今晚看M5有没有3买,有的话可以看情况考虑要不要进场 PTA M30向下一笔过程中,等待M30当前一笔下跌结束,可 ...

  6. WinForm-简单21点纸牌小游戏

    纸牌游戏有很多种玩法,C#代码写的纸牌游戏,网上也能找到不少,从中也能学习到不少知识,自己动手也写一个,算是记录下学习过程吧. 纸牌21点的玩法也比较简单,就是看谁手中的所有牌相加是21点,或是离21 ...

  7. 使用Git将本地文件提交到远程仓库

    一 操作准备条件: git远程仓库已经建好了,本地文件已经存在了,现在要将本地代码推到git远程仓库保存. 解决办法如下: 1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以 ...

  8. 基础总结(01)--css清除浮动几种方法

    1.父元素添加overflow:auto/hidden; 2.父元素内加空div,添加样式clear:both; 3.父元素添加伪类; .parent:after{ content:''; displ ...

  9. JS sort() 方法

    如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较. array.s ...

  10. 啊哈算法第四章第二节解救小哈Java实现

    package corejava; public class FourTwo { static int m;//(m,n)为几行几列 static int n; static int p;//(p,q ...