#!/usr/bin/env python 3.6
import tkinter
from tkinter import *
import sys
state = '' #定义一个全局变量
buttons = [] #定义一个button列表
def result():
print('the sum of 2 + 2 is ', 2 + 2)
def choose(i):
global state
state = i
for btn in buttons:
btn.deselect() #去掉选择
buttons[i].select() #选中当前的
win = Frame() #指定一个边框
win.pack()
Label(win, text = 'click add to get the sum or quit to exit').pack(side= TOP) #标签
Button(win, text = 'Add', command = result).pack(side = LEFT) #按钮
Button(win, text = 'Quit', command = win.quit).pack(side = RIGHT)#按钮
#单选按钮
for i in range(4):
radio = Radiobutton(win, text = str(i), value = str(i), command = (lambda i=i: choose(i)) )
radio.pack(side = BOTTOM)
buttons.append(radio)
popupper = (len(sys.argv) > 1)
def dialog():
win2 = Toplevel() #新建一个窗口
Label(win2, text = "xxxxxxxxxxx").pack() #标签
Button(win2, text = "sfsfd", command = win2.quit).pack() #按钮
if popupper:
win2.focus_set()
win2.grab_set()
win2.wait_window()
print('you monter...')
Button(win, text='Click Me', command = dialog).pack()
win.mainloop()
一些属性的简介
border:Border设置边框宽度(如bd=1)
relief:用于确定边框样式(如relief=raised)
color:bg设置背景颜色,fg设置前景颜色,可以使用简单的颜色名称或使用十六进制颜色代码
cursor:设置光标悬浮在小组件之上时显示的形状(如cursor = cross)
font:设置字体系列,尺寸和样式(如Times、24、italic bold underline)
padding:设置一个小组件周围的空距
state:设置对象的状态(如state=DISABLED)
size:控制小组件尺寸的高度和宽度设置,允许它比Tkinter集合管理器设置的尺寸更大
一些其他的小组件类
BitMapImage 允许在其他小组件上部展现位图图像的一种小组件对象
Button 一种“可单击”的按钮
Canvas 用于显示一些图形的对象,图形包括圆形、线条、图片、文本等
Checkbutton 包含两种状态True和False的按钮
Entry 由一行文本组成的输入字段
Frame 保存其他小组件的一种容器
Label 可以在其上写文本或标签的小组件
Listbox 保存可选的数据列表框
Menu 选项集合
Menubutton 用于显示另一个选项菜单和子菜单的菜单
Message 类似一个标签,可显示多行文本
PhotoImage 与BitMapImage相同,只用于全色图象
Radiobutton 状态为True或者False的按钮,用于多选情况
Scale 向上和向下滑动的小组件,并允许用户以这种方式选择选项
Scrollbar 滚动条
Text 用于处理多行文本的一种浏览、编辑小组件
Toplevel,Tk 一个新窗口