Tkinter控件
1.顶层(Toplevel)
Toplevel为其他控件提供单独的容器。共有四种类型
(1)主顶层,作为根被应用,应该就是root
(2)子顶层,依赖于根,根破坏,子顶层也被破坏
(3)临时顶层,画在父顶层顶部,父顶层最小化,他们也被隐藏
(4)未被视窗管理者创建的顶层通过设置overrideredirect标志位非零值来创建,该窗口不能缩放或拖动。
from tkinter import * root=Tk()
Label(root,text="This is the main(default) Toplevel").pack(pady=10) t1=Toplevel(root)
Label(t1,text="This is a child of root").pack(pady=10,padx=10) t2=Toplevel(root)
Label(t2,text="This is a transient window of root").pack(padx=10,pady=10)
t2.transient(root) t3=Toplevel(root)
Label(t3,text="No wm decorations").pack(padx=10,pady=10)
t3.overrideredirect(1)

2.框架(Frame)
Frame为其他组件提供容器
例1
from tkinter import * root=Tk() for relief in(RAISED,SUNKEN,FLAT,RIDGE,GROOVE,SOLID):
f=Frame(root,borderwidth=2,relief=relief)
Label(f,text=relief,width=10).pack()
f.pack(side=LEFT,padx=5,pady=5)

例2
from tkinter import * root=Tk() of=[None]*5
for bdw in range(5):
of[bdw]=Frame(root,borderwidth=0)
Label(of[bdw],text="borderwidth=%d"%bdw).pack(side=LEFT)
for relief in(RAISED,SUNKEN,FLAT,RIDGE,GROOVE,SOLID):
f=Frame(of[bdw],borderwidth=bdw,relief=relief)
Label(f,width=10,text=relief).pack()
f.pack(side=LEFT,padx=7-bdw,pady=5+bdw)
of[bdw].pack()

例3:
from tkinter import * root=Tk() f=Frame(root,width=245,height=110) xf=Frame(f,relief=GROOVE,borderwidth=2) Label(xf,text="You shot him!").pack(pady=10)
Button(xf,text="He's dead!",state=DISABLED).pack(side=LEFT,padx=5,pady=8)
Button(xf,text="He's completely dead!").pack(side=RIGHT,padx=5,pady=8)
xf.place(relx=0.01,rely=0.125,anchor=NW)
Label(f,text="Self-defence against fruit").place(relx=.06,rely=0.125,anchor=W)
f.pack()
root.mainloop()

3.标签(Label)
Label用于显示文本或图像
from tkinter import * root=Tk() f=Frame(root) Label(f,text="May I be strenuous, energetic and persevering !May I be patient! May I be able to bear and forbear the wrongs of others! May I ever keep a promise given!",wraplength=300,justify=LEFT).pack(pady=10) Label(f,bitmap="@woman",relief=GROOVE).pack(side=RIGHT,padx=5,pady=5)
f.pack()

4.按钮
按钮是对鼠标和键盘事件起反应的标签
from tkinter import * class GUI:
def __init__(self):
self.root=Tk()
of=[None]*5
for bdw in range(5):
of[bdw]=Frame(self.root,borderwidth=0)
Label(of[bdw],text="borderwidth=%d"%bdw).pack(side=LEFT)
for relief in(RAISED,SUNKEN,FLAT,RIDGE,GROOVE,SOLID):
Button(of[bdw],text=relief,borderwidth=bdw,relief=relief,command=lambda s=self,r=relief,b=bdw:s.prt(r,b)).pack(side=LEFT,padx=7-bdw,pady=5)
of[bdw].pack()
def prt(self,relief,border):
print("%s:%d"%(relief,border)) myGUI=GUI()

5.输入(Entry)
用于收集用户输入
from tkinter import * root=Tk()
Label(root,text="Anagrom:").pack(side=LEFT)
e=StringVar()
Entry(root,textvariable=e,width=40).pack(side=LEFT) e.set("A shroe!A shroe!MY dingkom for a shroe!")

6.单选按钮(Radiobutton)
from tkinter import * root=Tk()
var=IntVar() for text,value in[('Passion fruit', 1), ('Loganberries', 2), ('Mangoes in syrup', 3),
('Oranges', 4), ('Apples', 5), ('Grapefruit', 10)]:
Radiobutton(root,text=text,value=value,variable=var).pack(anchor=W) var.set(10)

7.复选按钮(Checkbutton)
from tkinter import * root = Tk() '''
var=[0]*6
for i in range(6):
var[i]=IntVar()
i=0
'''
class Dummy:pass
var=Dummy() var2=IntVar()
for castmember, row, col, status in [
('John Cleese', 0,0,NORMAL), ('Eric Idle', 0,1,NORMAL),
('Graham Chapman', 1,0,DISABLED), ('Terry Jones', 1,1,NORMAL),
('Michael Palin',2,0,NORMAL), ('Terry Gilliam', 2,1,NORMAL)]:
'''
Checkbutton(root, text=castmember, state=status,variable=var[i]).grid(row=row, column=col,sticky=W)
i+=1
'''
setattr(var,castmember,IntVar)
Checkbutton(root, text=castmember, state=status,variable=getattr(var,castmember)).grid(row=row, column=col,sticky=W)
root.mainloop()

8.菜单(Menu)
from tkinter import * def makeCascadeMenu():
casBtn=Menubutton(mBar,text="Sascading Menus",underline=0)
casBtn.pack(side=LEFT,padx="2m")
casBtn.menu=Menu(casBtn)
casBtn.menu.choices=Menu(casBtn.menu)
casBtn.menu.choices.wieerdones1=Menu(casBtn.menu.choices) casBtn.menu.choices.wieerdones1.add_command(label="Stockbroker")
casBtn.menu.choices.add_command(label="Wooden Leg") casBtn.menu.choices.add_cascade(label="Is it a...",menu=casBtn.menu.choices.wieerdones1)
casBtn.menu.add_cascade(label="Script",menu=casBtn.menu.choices) casBtn["menu"]=casBtn.menu if __name__=="__main__":
root=Tk()
mBar=Frame(root,relief=RAISED,borderwidth=2)
mBar.pack(fill=X)
makeCascadeMenu()
root.geometry("400x400")
root.mainloop()

9.列表框(Listbox)
from tkinter import * root=Tk()
list=Listbox(root ,width=15)
list.pack()
for item in range(10):
list.insert(END,item)

10.滚动条(Scrollbar)
from tkinter import * root=Tk()
list=Listbox(root,height=6,width=15)
scroll=Scrollbar(root,command=list.yview)
list.configure(yscrollcommand=scroll.set)
list.pack(side=LEFT) scroll.pack(side=RIGHT,fill=Y) for item in range(30):
list.insert(END,item)

11.文本(Text)
from tkinter import * root=Tk()
text=Text(root,width=50,height=26)
scroll=Scrollbar(root,command=text.yview)
text.configure(yscrollcommand=scroll.set) text.tag_configure("bold_italics",font=("Verdana",12,"bold","italic"))
text.tag_configure("color",foreground="blue",font=("黑体",14))
text.tag_bind("bite","<1>",lambda e, t=text:t.insert(END,"I'll bite your legs off!")) text.insert(END,"Four hours to bury a cat?\n","bold_italics")
text.insert(END,'Can I call you "Frank "\n',"color")
text.insert(END,'I dare you to click on this "\n',"bite") button=Button(text,text="I do live at 46 Horton terrace")
text.window_create(END,window=button) #photo=PhotoImage(file="")
#text.image_create(END,image=photo) text.pack(side=LEFT)
scroll.pack(side=RIGHT,fill=Y)

12.画布
from tkinter import * root=Tk()
canvas=Canvas(root,width=400,height=400)
canvas.create_oval(10,10,100,100,fill="gray90")
canvas.create_line(105,10,200,105)
canvas.create_rectangle(205,10,300,105,outline="white",fill="gray50") xy=(10,105,100,200)
canvas.create_arc((10,105,100,200),start=0,extent=270,fill="gray60")
canvas.create_arc(xy,start=270,extent=5,fill="gray70")
canvas.create_arc(xy,start=275,extent=35,fill="gray80")
canvas.create_arc(xy,start=310,extent=49,fill="gray90") canvas.create_polygon(205,105,285,125,166,177,210,199,205,105,fill="white") canvas.pack()

John E Grayson Python与Tkinter编程
Tkinter控件的更多相关文章
- Tkinter 控件详细介绍
Tkinter 控件详细介绍 1.Button 按钮.类似标签,但提供额外的功能,例如鼠标掠过.按下.释放以及键盘操作/事件 2.Canvas 画布.提供绘图功能(直线.椭圆.多边形.矩形) ;可以包 ...
- python之Tkinter控件学习
转载自 http://www.cnblogs.com/kaituorensheng/p/3287652.html#_label0 阅读目录 1. 产品介绍 2. 设计规划 3. 相关知识 4. 源码 ...
- Python tkinter 控件更新信息
下面几个例子关于tkinter界面更新的,简单易懂,分享一下. 例子_1: 代码_1: from tkinter import Tk, Checkbutton, Label from tkinter ...
- Tkinter控件Canvas
网上关于tkinter的canvas组件系统的中文教程很少,英文教程未知.要么是专业的参考文档,没有丰富的实例,要么在不同的论坛,博客平台零零散散存在一些canvas的例子,这给学习canvas带来了 ...
- Tkinter 控件
文章更新于:2020-02-19 待翻译跟进 In this part of the Tkinter tutorial, we will cover some basic Tkinter widget ...
- Tkinter控件(python GUI)
- Pmw大控件(二)
Pmw大控件英文名Pmw Python megawidgets 官方参考文档:Pmw 1.3 Python megawidgets 一,如何使用Pmw大控件 下面以创建一个计数器(Counter)为例 ...
- Pmw大控件
Python大控件——Pmw——是合成的控件,以Tkinter控件为基类,是完全在Python内写的.它们可以很方便地增加功能性的应用,而不必写一堆代码.特别是,组合框和内部确认计划的输入字段放在一起 ...
- tkinter中menu菜单控件(十二)
menu菜单控件 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("300x200 ...
随机推荐
- 064-PHP函数中局部变量在函数外不可使用
<?php function print_num(){ //定义函数 $x=6; //在函数中定义变量 } print_num(); //调用函数 echo $x; ?>
- 实验吧-隐写术-九连环(steghide)
下载图片: 拿到kali里binwalk发现有压缩文件,然后foremost分解出来,将分出的压缩文件打开,发现已经被加密. 到这里就有几个思路了:1)暴力破解 2)伪加密 3)继续从图片中寻找信息 ...
- Ctrl + c 强制退出
linux 使用cat 命令进入一个很大的文件,一直在不停地显示内容,让它停止的方法,可以用Ctrl + c 强制退出
- python --- 对于需要关联的接口处理方法
1.unittest对于需要关联的请求,怎么处理(如购物接口,需要先登录) a)把登录请求写到测试用例类的setUP函数中,这样每次调用测试用例,都会先执行setUP函数 b)全局变量的形式声明. c ...
- Android 为控件添加点击涟漪效果
Android在5.0版为Button默认添加了点击时的涟漪效果,而且在其他的控件上也可以轻松的实现这种炫酷的效果.涟漪效果可以分为两种,一种时有边界的涟漪,另一种时无边界的涟漪.所谓的有边界,即涟漪 ...
- POJ 2443:Set Operation 经典位运算好题
Set Operation Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 2965 Accepted: 1196 Des ...
- C++基础--随机数
C/C++要产生随机数的方法一般是采用rand()函数核srand()函数来实现的. rand()函数返回的是一个伪随机数,这个函数内部采用线性同余法来实现伪随机数,而这个伪随机数是在一定范围内可以看 ...
- linux文件编辑VI命令详解
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring DI(依赖注入)的实现方式属性注入和构造注入
依赖注入(Dependency Injection,DI)和控制反转含义相同,它们是从两个角度描述的同一个概念. 当某个 Java 实例需要另一个 Java 实例时,传统的方法是由调用者创建被调用者的 ...
- JavaEE--JNDI(上,简介)
参考:https://blog.csdn.net/yan372397390/article/details/50450332 https://www.landui.com/help/show-6158 ...