Python的交互式界面 编写 .
from tkinter import *
# 导入tkinter模块的所有内容 root = Tk() # 创建一个文本Label对象
textLabel = Label(root, # 将内容绑定在 root 初始框上面
text="您所下载的影片含有未成年人限制内容,\n请满18岁后再点击观看!",
justify=LEFT, # 用于 指明文本的 位置
padx=10) # 限制 文本的 位置 , padx 是 x轴的意思 .
textLabel.pack(side=LEFT) # 致命 textlabel 在初识框 中的位置 # 创建一个图像Label对象
# 用PhotoImage实例化一个图片对象(支持gif格式的图片)
photo = PhotoImage(file="18.gif")
imgLabel = Label(root, image=photo) # 绑定在初始旷上面
imgLabel.pack(side=RIGHT) # 指明 图片位置 mainloop()

from tkinter import * root = Tk() photo = PhotoImage(file="bg.gif") # 声明一下图片 .
theLabel = Label(root,
text="大家好,才是真的好.", # 载入文本
justify=LEFT, # 声明文本的位置
image=photo, # 载入图片
compound=CENTER, #声明图片的位置
font=("楷体", 20), # 声明文本字体
fg="white" # 声明文本颜色 .
)
theLabel.pack() # 自动调整布局 mainloop()

from tkinter import *
# 导入tkinter模块的所有内容 def callback(): # 定义一个 改变文本的函数 .
var.set("吹吧你,我才不信呢~") root = Tk() # 初始旷的声明 . frame1 = Frame(root) # 在初始旷里面 声明两个模块 .
frame2 = Frame(root) # 创建一个文本Label对象
var = StringVar() #声明可变 变量 .
var.set("您所下载的影片含有未成年人限制内容,\n请满18岁后再点击观看!") # 设置变量 .
textLabel = Label(frame1, # 绑定到模块1
textvariable=var, # textvariable 是文本变量的意思 .
justify=LEFT) # 字体 位置
textLabel.pack(side=LEFT) # 整体位置 # 创建一个图像Label对象
# 用PhotoImage实例化一个图片对象(支持gif格式的图片)
photo = PhotoImage(file="18.gif")
imgLabel = Label(frame1, image=photo)
imgLabel.pack(side=RIGHT) # 加一个按钮
theButton = Button(frame2, text="已满18周岁", command=callback) # 按下按钮 执行 callback函数
theButton.pack() frame1.pack(padx=10, pady=10)
frame2.pack(padx=10, pady=10) mainloop()
       
from tkinter import * root = Tk()
root.title('皇上翻牌子啦!') # 添加 初识框的标题 .
GIRLS = ['西施','貂蝉','王昭君','杨玉环'] # 列表内容 .
v = [] # 用于存放变量 for girl in GIRLS:
v.append(IntVar())
print(IntVar())
b = Checkbutton(root,text=girl,variable=v[-1],padx=80,font=('楷体',22))
b.pack(anchor=W) # 文本的位置 . (东西南北的首拼 (英文)) mainloop()

from tkinter import * root = Tk()
root.title('皇上翻牌子啦!') # 添加 初识框的标题 .
GIRLS = ['西施','貂蝉','王昭君'] # 列表内容 .
v = [] # 用于存放变量 for girl in GIRLS:
v.append(IntVar()) # 声明一个 变量并且加入 v
b = Checkbutton(root,text=girl,variable=v[-1],padx=80,font=('楷体',22)) #记录下来 变量的变化
l = Label(root,textvariable=v[-1]) # 将变量表示为文本并且加入初始旷 .
l.pack(anchor=N)
b.pack(anchor=W)
b = Checkbutton(root,text='杨玉环',variable=v[1],padx=80,font=('楷体',22))
l = Label(root,textvariable=v[1])
l.pack(anchor=N)
b.pack(anchor=W)
mainloop()

让杨玉环和貂蝉同用一个tk变量 . 这样修改 貂蝉和杨玉环 任意一个另一个也会被改变的 .
from tkinter import * root = Tk() v = IntVar() Radiobutton(root,text='One',variable=v,value=1).pack(anchor=W)
Radiobutton(root,text='Two',variable=v,value=2).pack(anchor=W)
Radiobutton(root,text='Three',variable=v,value=3).pack(anchor=W) # value 的值不同 . 相同的值 在其中一个被选中之后剩余的也会自动选中 . mainloop()
     这样就实现了单选的功能 .
from tkinter import * root = Tk()
v = IntVar() Language = [('Python',1),
('ruby',2),
('C++',3),
('java',2)
]
for lang,num in Language:
b = Radiobutton(root,text=lang,variable=v,value=num)
l = Label(root,textvariable=v)
l.pack()
b.pack(anchor=W) mainloop()

from tkinter import * root = Tk()
v = IntVar() Language = [('Python',1),
('ruby',2),
('C++',3),
('java',2)
]
for lang,num in Language:
b = Radiobutton(root,text=lang,variable=v,value=num,indicatoron=False,padx=30,pady=3)
l = Label(root,textvariable=v)
#l.pack()
b.pack(anchor=W,fill=X) mainloop()

将其中内容分隔开 . LabelFrame
from tkinter import *
import easygui root = Tk()
root.title('编程语言大战 !')
v = IntVar()
photo = PhotoImage(file="bg.gif") # 声明一下图片 .
def callback():
easygui.msgbox('你这样让我很不爽',title='你说呢?') group=LabelFrame(root,text='最好的编程语言是 ?') # 基于root 制定一个框架 .
group.pack(padx=50) v.set(1)
Language = [('Python',1),
('ruby',2),
('C++',3),
('java',2)
]
for lang,num in Language:
b = Radiobutton(group,text=lang,variable=v,value=num,indicatoron=False,padx=30,pady=3)
l = Label(group,textvariable=v) # 将内容添加到框架当中
l.pack()
b.pack(anchor=W,fill=X) theButton=Button(root,text='就是这个了',command=callback)
theButton.pack(pady=20)
mainloop()
        
from tkinter import * root = Tk() Label(root,text='帐号 :').grid(row=0,column=0) # 对Label内容进行 表格式 布局
Label(root,text='密码 :').grid(row=1,column=0) v1=StringVar() # 设置变量 .
v2=StringVar() e1 = Entry(root,textvariable=v1) # 用于储存 输入的内容
e2 = Entry(root,textvariable=v2,show='$')
e1.grid(row=0,column=1,padx=10,pady=5) # 进行表格式布局 .
e2.grid(row=1,column=1,padx=10,pady=5)
def show():
print("帐号 :%s" % e1.get()) # get 变量内容
print("密码 :%s" % e2.get()) Button(root,text='芝麻开门',width=10,command=show).grid(row=3,column=0,sticky=W,padx=10,pady=5) # 设置 button 指定 宽度 , 并且 关联 函数 , 使用表格式布局 .
Button(root,text='退出',width=10,command=root.quit).grid(row=3,column=1,sticky=E,padx=10,pady=5) mainloop()
  
from tkinter import * master = Tk() def test():
if e1.get() == '小甲鱼':
print("正确")
return True
else:
print('错误')
e1.delete(0,END)
return False v=StringVar() e1 = Entry(master,textvariable=v,validate='focusout',validatecommand=test) # validate 用于指定什么时候检测 . validatecommand 用于指定检测的标准
e2 = Entry(master)
e1.pack(padx=10,pady=10)
e2.pack(padx=10,pady=10) mainloop()

Python中的Entry 输入检测 , validate 用于指定检测的时机 . validatecommand 用于 指定监测机制 , invlidcommand 用于指定当结果不合格的时候执行的方案 .
from tkinter import * master = Tk() v = StringVar() def test():
if e1.get() == '小甲鱼':
print("正确")
return True
else:
print('错误')
e1.delete(0,END)
return False def test1():
print('我被调用了....')
return True v=StringVar() e1 = Entry(master,textvariable=v,validate='focusout',\
validatecommand=test,invalidcommand=test1) # validate 用于指定什么时候检测 . validatecommand 用于指定检测的标准
e2 = Entry(master)
e1.pack(padx=10,pady=10)
e2.pack(padx=10,pady=10) mainloop()

from tkinter import *
import easygui master = Tk() frame = Frame(master) # 确定一个框架用于美观 frame.pack(padx = 20,pady = 20) v1 = StringVar() # 分别用于储存需要计算的数据和 结果
v2 = StringVar()
v3 = StringVar() def test(content):
return content.isdigit() # 检查是不是数字 . testCMD = frame.register(test) # 将函数 进行包装 . e1 = Entry(frame,width=10,textvariable=v1,validate='key',\
validatecommand=(test,'%p')).grid(row=0,column=0,pady=10) # %p 是输入框的最新内容 . 当输入框允许改变的时候该值有效 ,
Label(frame,text='+',padx=10).grid(row=0,column=1) e2 = Entry(frame,width=10,textvariable=v2,validate='key',\
validatecommand=(test,'%p')).grid(row=0,column=2)
Label(frame,text='=',padx=10).grid(row=0,column=3) e3 = Entry(frame,width=15,textvariable=v3,state='readonly').grid(row=0,column=4) def calc():
if v1.get()=='':
easygui.msgbox('请先输入内容 !')
return
result = int(v1.get()) + int(v2.get())
v3.set(result) Button(frame,text='计算结果',command=calc).grid(row=1,column=2,pady=5) mainloop()
    
滚动条 设置 .
为了在某个组件上面安装垂直滚动条 , 你需要做两件事 .
1 : 摄制组间的yscrollbarcommand选项作为Scorllbar组建的set()方法 .
2 : 设置Scrollbar组建的command选项为该组件的yview()方法
lb = Listbox(root,yscrollcommand=sb.set) 这一句 其中的 lb 是 Listbox的实例化 , 用于绑定root 框架 . yscrollcommand=sb(滚动条).set 用于 当 可选内容 变化的时候 , 带动滚动条的变化 .
sb.config(command=lb.yview) 滚动条 , 和 可选内容进行 关系绑定 .
from tkinter import * root = Tk() sb = Scrollbar(root)
sb.pack(side=RIGHT,fill=Y) # 需要先 将滚动条放置 到一个合适的位置 , 然后开始填充 . lb = Listbox(root,yscrollcommand=sb.set) # 内容 控制滚动条 . for i in range(111):
lb.insert(END,i) lb.pack(side=LEFT,fill=BOTH) sb.config(command=lb.yview) # 滑轮控制内容 . mainloop()

from tkinter import * root = Tk() s1 = Scale(root,from_=-10,to=10,tickinterval=5,resolution=2,length=100) # tickinterval 是设置的 标尺 多少长度有一个可读 , resolution设置的是 一次跳跃的 长度 . length 是设置长度 .
s1.pack()
s2 = Scale(root,from_=-100,to=100,orient=HORIZONTAL,tickinterval=5,length=400,resolution=2) # roient 默认的是 x 轴 , 让roient = HORIZONTAL 设置Y 轴 尺度 .
s2.pack() def Location_show():
print('X轴速度 :'+str(s1.get()))
print('Y轴速度 :'+str(s2.get())) Button(root,text='获取位置',command=Location_show).pack() mainloop()

文本框
from tkinter import * root = Tk() text = Text(root ,width=30,height=5) # 这个意思是每行三十个字符 两行 . text.pack() text.insert(INSERT,"I Love \n")# 第一个表示插入的位置 第二个是内容 其中第一个必须有 , INSERT 是光标所在位置
text.insert(END,"Fishc.com !") # END 表示 在上一次输入结束的位置继续 . mainloop()
因为文本框和listbox较为相似所以这里加入滚动条试试 .
from tkinter import * root = Tk()
# 设置 滚动条 控制
sb = Scrollbar(root) # 在 root 初始旷 上面插入一 插入一个滚动条 .
sb.pack(side=RIGHT,fill=Y) # 设置滚动条的位置 . text = Text(root ,width=30,height=10,yscrollcommand=sb.set) # 这个意思是每行三十个字符 两行 . 将滚动条 绑定在text文本上面 . 下面 txt文本会插入内容 . text.pack() text.insert(INSERT,"I Love \n")# 第一个表示插入的位置 第二个是内容 其中第一个必须有 , INSERT 是光标所在位置
text.insert(END,"Fishc.com !\n") # END 表示 在上一次输入结束的位置继续 . photo = PhotoImage(file="18.gif") # 打包一个图片 .
def show():
text.image_create(END,image=photo) # 在text 中添加一个 图片 .
button1 = Button(text,text="顶我! ",command=show) # 第一个和第二个的 text 可是不一样的,
text.window_create(INSERT,window=button1) # 除了 文字是 insert 其余的好像都是 window_create text.pack(side=LEFT,fill=BOTH)
sb.config(command=text.yview) # 滚动条绑定 text的内容 用于 拉动滑块 反转内容 . mainloop()

Python的交互式界面 编写 .的更多相关文章
- Mininet python代码创建拓扑、交互式界面创建主机、交换机
		
python代码创建拓扑: from mininet.net importMininet net =Mininet() # Creating nodes in the network. c ...
 - PySide——Python图形化界面入门教程(二)
		
PySide——Python图形化界面入门教程(二) ——交互Widget和布局容器 ——Interactive Widgets and Layout Containers 翻译自:http://py ...
 - PySide——Python图形化界面入门教程(一)
		
PySide——Python图形化界面入门教程(一) ——基本部件和HelloWorld 翻译自:http://pythoncentral.io/intro-to-pysidepyqt-basic-w ...
 - ipython, 一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数
		
一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数. 若用的是fish s ...
 - PySide——Python图形化界面
		
PySide——Python图形化界面 PySide——Python图形化界面入门教程(四) PySide——Python图形化界面入门教程(四) ——创建自己的信号槽 ——Creating Your ...
 - Xamarin iOS教程之编辑界面编写代码
		
Xamarin iOS教程之编辑界面编写代码 Xamarin iOS的Interface Builder Interface Builder被称为编辑界面.它是一个虚拟的图形化设计工具,用来为iOS应 ...
 - ipython是python的交互式shell工具
		
ipython: 是python的交互式shell工具,比默认的python shell工具要好用.支持变了自动补全,自动缩进,内置了很多的功能和函数 启动:可以通过cmd来启动该工具 自动补全: I ...
 - python的单元测试代码编写流程
		
单元测试: 单元测试是对单独的代码块分别进行测试, 以确保它们的正确性, 单元测试主要还是由开发人员来做, 其余的集成测试和系统测试由专业的测试人员来做. python的单元测试代码编写主要记住以下几 ...
 - PySide——Python图形化界面入门教程(四)
		
PySide——Python图形化界面入门教程(四) ——创建自己的信号槽 ——Creating Your Own Signals and Slots 翻译自:http://pythoncentral ...
 
随机推荐
- [redis] windwos下安装和使用redis
			
一篇很好的入门学习文章:Redis学习 Redis是一种nosql数据库,在开发中常用做缓存. 1.下载地址: 低版本下载地址:https://github.com/dmajkic/redis/dow ...
 - python中read、readline和readlines
			
f = file('test.txt' , 'r') all_data = f.read() # 字符串类型 f.read(8) #读取固定大小的 ...
 - SVMshow
			
SVMshow % http://www.peteryu.ca/tutorials/matlab/visualize_decision_boundaries % load RankData % Num ...
 - 关于for循环条件性能问题
			
昨天看一博客写到一条 尽量使用 for(int i=0,ct=list.Count();i<ct;i++){} 这样的格式,因为我平时一般都是用for(int i=0;i<list.Cou ...
 - 使用cnblogs.com的用户体验和提出来的建议
			
1.是否提供良好的体验给用户(同时提供价值)? 我是很久以前就有CN的账号了的,因为这个网站有很多有用的信息,和比较活跃的论坛.很多不懂的问题可以求助上面的大神.但是,我第一次登陆主页面的时候我是懵逼 ...
 - js刷新页面和跳转
			
javascript返回上一页: 1.返回上一页 history.go(-1); 返回上两个页面 history.go(-2); <a href="javascript:history ...
 - J2EE面试题
			
J2EE面试题 J2EE相关基础知识 1.面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只 ...
 - ext afteredit
			
ext afteredit详解 grid.on("afteredit",afterEidt,grid); function(obj) { obj.row;;//修改过的行从0开始 ...
 - 本地电脑localhost指向127.0.0.1的配置
			
windows系统电脑,我们如果想访问本机部署的项目,通常使用的是localhost来指向本机,但是有时候发现不行,我们不妨打开资源管理器,C:\Windows\System32\drivers\et ...
 - 四种java代码静态检查工具
			
[转载]常用 Java 静态代码分析工具的分析与比较 转载自 开源中国社区 http://www.oschina.net/question/129540_23043 1月16日厦门 OSC ...