Python 中基本控件的用法
一
from tkinter import *
root = Tk()
root.minsize(300, 200)
text = ” I want to study PYTHON”
label = Label(root, text = text, fg = “black”, bg=”red”)
label.pack(side = LEFT)
root.mainloop()
tkinter 是Python内置的GUI工具的模块,各种控件都在其中定义。编制窗口交互的应用程序都需要导入。
root = Tk()生成一个底层窗口。然后定义Label类的对象,连个必须的参数:父空间和文字内容。定义了空间以后必须用pack()函数保证才能显示。最后一行root.mainloop()是必须的,它令根空间进入主循环,开始监听事件和执行相应的人机交互命令。
二 按钮Button
from tkinter import *
root = Tk()
root.title(“Button demo”)
root.minsize (300, 200)
Button(root, text = “禁用” ,state = DISABLED).pack(side=LEFT)
Button(root, text = “取消” ).pack(side=LEFT)
Button(root, text = “确定” ).pack(side=LEFT)
Button(root, text = “退出” , command= root.quit).pack(side=RIGHT)
root.mainloop()
要使按钮不能用,可见参数state = DISABLED,不见当然默认是可用的。
DISABLED是tkinter 值预定义的常量。state 和前面的text= 都是控件的购置函数中
的变量名, 不看任意更改,root 不是。
三 框架Frame
from tkinter import *
root = Tk()
for relief in [RAISED, SUNKEN, FLAT, RIDGE, GROOVE, SOLID]:
root.mainloop()
生成了6个框架,边框使用不同的样式,RAISED等是演示的代号。其中参数就是
指定边框样式的。每个框架放置一个标签,其文字就是相应的样式代号。
中基本控件的用法” title=”Python
四 输入框Entry
from tkinter import *
root = Tk()
root.title(“Entry demo”)
root.minsize (400, 200)
f1 = Frame(root)
f2 = Frame(root)
e1 = StringVar()
e1.set(“输入框默认内容”)
e2 = StringVar()
e2.set(“不可修改的内容”)
Label(f1, text=”标准输入框”).pack(side=LEFT, padx=5, pady=5)
Entry (f1, width = 20, textvariable = e1).pack(side=LEFT)
Label(f2, text=”禁用输入框”).pack(side=LEFT, padx=5, pady=5)
Entry(f2, width = 20, textvariable = e2, state=DISABLED).pack(side=LEFT)
f1.pack()
f2.pack()
root.mainloop()
输入框即单行文本框。Entry 有参数textvariable 是文本框中显示的字符串。
使用StringVar()函数定义一个字符串变量,类型确定但没有赋值。
五 单选按钮Radiobutton
from tkinter import *
root = Tk()
root.title(“Main wondow”)
foo = IntVar()
for text, value in [(‘red’, 1), (‘green’, 2), (‘black’, 3), (‘blue’, 4), (‘yellow’, 5)]:
foo.set(2) # 默认索引2
root.mainloop()
用foo = IntVar() 来定义一个整型变量的序列,在构造Radiobutton是为系列参数提
供可用的值。其中text, value分别是按钮上显示的文字和调用时的索引。参数
variable=foo指明了变量的来源。
六 复选框Checkbutton
from tkinter import *
root = Tk()
root.title(“RadioButton”)
root.minsize (400, 200)
list = [(“red”, 1),(“blue”,2 ),(“black”,3 ),(“green”,4 ),(“yellow”, 5 )]
for text, value in list :
foo.set(2)
root.mainloop()
七 消息框
from tkinter import *
root = Tk()
root.title(“中纪委消息”)
root.minsize (400, 200)
myword = “纵观盖如垠的履历,黑龙江、哈尔滨、大庆,这些关键词在政知圈的脑
中相继转了一遍,盖如垠的面孔渐渐清晰。他是被举报的哈尔滨市长,亦是市民
口中亲切的“老盖”;他是官员眼中疯了的上级,亦是媒体笔下有草根气的“另类”。
这名现年62岁的东北人,仕途未离东北,最后在黑龙江人大常委会任上倒了下去
。\n\n十一天前还强调“要守得住底线”\n盖如垠的落马并非没有先兆。”
m = Message (root, text = myword, bg = “ivory”, fg =”green”,
m.pack (padx = 10, pady = 10)
root.mainloop()
与Label控件的格式差不多,多了一个relief 与框架空间一样。padx = 10, pady = 10
表示行距像素。
八 列表框
from tkinter import *
root = Tk()
root.title(“Listbox demo”)
lb = Listbox(root, width=15)
lb.pack()
for item in [‘apple’, ‘orange’, ‘peach’, ‘banana’, ‘melon’]:
九 滚动条Scrollbar
from tkinter import *
root = Tk()
root.title(“Scrollbar Demo”)
lb = Listbox(root, height=6, width=15)
scroll = Scrollbar(root, command=lb.yview)
lb.configure(yscrollcommand=scroll.set)
lb.pack(side=LEFT)
scroll.pack(side=RIGHT, fill=Y)
for item in range(20):
root.mainloop()
先定义一个列表框lb,为他安装滚动条。在Scrollbar的构造中参数command=lb.yview,表示滚动条对列表框进行纵向的滚动。
lb.configure(yscrollcommand=scroll.set)语句为lb配置,告诉系统列表框安装了纵向的滚动条(croll.set)。列表框使用插入方法添加列表项。
———完 2017-12-31———