Button按钮,直接上代码:

from tkinter import *
def gs():
global read
s=Label(read,text='昨夜西风凋敝树,堵上高楼,望尽天涯路!',background='yellow')
s.pack()
def h():
s_1=Label(read,text='痴心父母古来多,孝顺儿孙谁见了?',background='red')
s_1.pack()
read=Tk()#定义父窗口
b1=Button(read,command=gs,text='古诗导读',width=20,height=2)#定义按钮1
b2=Button(read,command=h,text='红楼梦',width=20,height=2)#定义按钮2
b1.pack()#显示按钮1
b2.pack()#显示按钮1
read.mainloop()

Button按钮用bind()方法绑定按钮和函数:

from tkinter import *
read=Tk()#定义父窗口
def gs():
#global read
s=Label(read,text='昨夜西风凋敝树,独上高楼,望尽天涯路!',background='yellow')
s.pack()
def h(event):#显示一个标签
s_1=Label(read,text='痴心父母古来多,孝顺儿孙谁见了?',background='red')#一个标签
s_1.pack()# 显示
b1=Button(read,command=gs,text='古诗导读',width=20,height=2)#定义按钮1
#b2=Button(read,command=h,text='红楼梦',width=20,height=2)#定义按钮2
b2=Button(read,text='红楼梦',width=20,height=2)#定义按钮2
b2.bind('<Button-1>',h)#注意,在用bind()方法的时候,绑定的函数h需要加一个参
#数event,不然会报错
b1.pack()#显示按钮1
b2.pack()#显示按钮1
read.mainloop()

***************pack布局*************

1.我们使用pack函数的时候,默认先使用的放到上面,然后 依次向下排,它会给我们的组件一个自认为合适的位置和大小,这是默认方式,也是我们上面一直采用的方式。

2. pack函数也可以接受几个参数,side参数指定了它停靠在哪个方向,可以为LEFT,TOP,RIGHT,BOTTOM,分别代表左,上,右,下,它的fill参数可以是X,Y,BOTH和NONE,
即在水平方向填充,竖直方向填充,水平和竖直方向填充和不填充。
3.它的expand参数可以是YES和NO,它的anchor参数可以是N,E,S,W(这里的NESW分别表示北东南西,这里分别表示上右下左)以及他们的组合或者是CENTER(表示中间)。
4.它的ipadx表示的是内边距的x方向,它的ipady表示的是内边距的y方向,padx表示的是外边距的x方向,pady表示的是外边距的y方向。

from tkinter import *
root=Tk()
Button(root,text='A').pack(side=LEFT,expand=YES,fill=Y)
Button(root,text='B').pack(side=TOP,expand=YES,fill=BOTH)
Button(root,text='C').pack(side=RIGHT,expand=YES,fill=NONE,anchor=NE)
Button(root,text='D').pack(side=LEFT,expand=NO,fill=Y)
Button(root,text='E').pack(side=TOP,expand=NO,fill=BOTH)
Button(root,text='F').pack(side=BOTTOM,expand=YES)
Button(root,text='G').pack(anchor=SE)
root.mainloop()

**************grid布局*************
1.由于我们的程序大多数都是矩形,因此特别适合于网格布局,也就是grid布局。
2.使用grid布局的时候,我们使用grid函数,在里面指定两个参数,用row表示行,用column表示列,其中值得注意的是row和column的编号都从0开始。
3.grid函数还有个sticky参数,它可以用N,E,S,W表示上右下左,它决定了这个组件是从哪个方向开始的,下面的例子可以很好的解释这一点。
4.grid布局直接用后面的行和列的数字来指定了它位于哪个位置,而不必使用其他参数。
5.grid函数也支持诸如ipadx,ipady,padx,pady,它们的意思和pack函数是一样的,默认边距是0。
6.它还支持参数比如rowspan,表示跨越的行数,columnspan表示跨越的列数。
7.它还有一些属性,可以在以后我们的demo中慢慢使用来看出其重要性。

from tkinter import *
root=Tk()
Label(root,text='账号:').grid(row=0,sticky=W)
Entry(root).grid(row=0,column=1,sticky=E)
Label(root,text='密码:').grid(row=1,sticky=W)
Entry(root).grid(row=1,column=1,sticky=E)
Button(root,text='登录').grid(row=2,column=1,sticky=E)
root.mainloop()

用Label标签模拟Button按钮,实质是用bind()函数把Label标签和其他函数绑定起来,看例子:

from tkinter import *
root=Tk()#父窗口类实例
def xianshi(event):#定义要给标签,来模拟Button 按钮
x1=Label(root,text='篷山此去无多路,青鸟殷勤为探看。',background='red')
x1.pack()
x2=Label(root,text='我就是来模拟Button的标签大神!')
x2.bind('<Button-1>',xianshi)#拿这个标签绑定xianshi()函数
x2.pack()
root.mainloop()

一个用户名密码登录的小例子:

from tkinter import *
def reg():
s1=E1.get()#获取输入框的内容
s2=E2.get()#获取输入框的内容
t1=len(s1)
t2=len(s2)
if s1=='' and s2=='': #输入框s1的内容和输入框s2的内容均输正确的情况下
c['text']='登录成功!'#提示'登陆成功'
else:
c['text']='登录失败,用户名或密码错误!'
E1.delete(0,t1)#否则,不但提示'登陆失败',还要把输入框内的字符串清除干净
E2.delete(0,t2)#否则,不但提示'登陆失败',还要把输入框内的字符串清除干净
root=Tk()
l=Label(root,text='用户名:')
l.grid(row=0,column=0,sticky=W)
E1=Entry(root)
E1.grid(row=0,column=1,sticky=E) l2=Label(root,text='密码')
l2.grid(row=1,column=0,sticky=W)
E2=Entry(root)
E2['show']='*' #输入框(转)-->密码框,用输入框的'show'属性
E2.grid(row=1,column=1,sticky=E) b=Button(root,text='登录',command=reg,background='blue')
b.grid(row=2,column=1,sticky=E) c=Label(root,text='')
c.grid(row=3)
root.mainloop()

tkinter之button的更多相关文章

  1. tkinter中button按钮控件(三)

    button控件 简单的实现: import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry(" ...

  2. Python3 tkinter基础 Button command 单击按钮 在console中打印文本

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  3. Python3 tkinter基础 Button text,fg 按钮上显示的文字 文字的颜色

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  4. Python3 tkinter基础 Button bg 按钮的背景颜色

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. Tkinter按钮(Button)

    Python - Tkinter Button按钮组件是用来添加一个Python应用程序中的按钮.这些按钮可以显示文字或图像,表达按钮的目的.当你按一下按钮时,您可以附加到一个按钮的函数或方法,该方法 ...

  6. python Tkinter之Button

    Button小部件是一个标准的Tkinter的部件,用于实现各种按钮.按钮可以包含文本或图像,您可以调用Python函数或方法用于每个按钮. Tkinter的按钮被按下时,会自动调用该函数或方法. 该 ...

  7. GUI篇 tkinter (Label,Button)之一

    import tkinterfrom tkinter import * # tkinter._test() # 实例化一个窗口对象base = tkinter.Tk()# 修改窗口的标题base.wm ...

  8. Tkinter 之Button标签

    一.参数说明 语法 作用 Button(root,text='xxxx') 按钮图标显示内容 Button(root,text='xxxx',height=2) 组件的高度(所占行数) Button( ...

  9. Python+Tkinter 密保小工具

    上图 代码 核心 编解码方面 Tkinter界面更新 总结 昨天被一同学告知,网上的一个QQ密码库中有我的一条记录,当时我就震惊了,赶紧换了密码.当然了,这件事也给了我一个警示,那就是定期的更换自己的 ...

随机推荐

  1. es6 - foreach

    foreach ... // es5 - foreach arr.forEach(function(value, index, arr) { console.log(value, index, arr ...

  2. 【MVC2】发布到IIS7.5上后Session为null

    MVC2代码「Session.IsNewSession」在VS中可以正常执行,发布到IIS7.5上之后Session为null导致出错. if (Session.IsNewSession) { ... ...

  3. 统一建模语言(UML,Unified Modeling Language)

    Something about UML: 统一建模语言(UML,英语:Unified Modeling Language)是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明.可视化.构建 ...

  4. 重装系统后恢复wubi安装的Ubuntu(未实测)

     wubi安装成功,但是后来windows系统重装了,如何修复ubuntu系统的引导?[另外完全可以复制别人的wubi安装的ubuntu,但是要放在同一个盘符下]  将X:/ubuntu/winboo ...

  5. 阿里云官方教程 Linux 系统挂载数据盘

    适用系统:Linux(Redhat , CentOS,Debian,Ubuntu) *  Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作. 下面的操作将会把数据盘划 ...

  6. Ruby on Rails 路由解析

    为了更好的阅读体验.欢迎訪问 作者博客原文 Route是什么 Rails中URL的约定严格基于RESTful风格的.client的请求事实上是在操作一些资源.同一资源的不同的请求动作(GET, POS ...

  7. POJ 1698 Alice&#39;s Chance(最大流+拆点)

    POJ 1698 Alice's Chance 题目链接 题意:拍n部电影.每部电影要在前w星期完毕,而且一周仅仅有一些天是能够拍的,每部电影有个须要的总时间,问能否拍完电影 思路:源点向每部电影连边 ...

  8. ubuntu16.04----jdk---install----config

    1.下载jdk. 2.验证java是否安装,使用java -version命令,如下图所示说明没有安装: 3.在usr目录中创建一个jdk-8目录,如下图所示: 4.配置系统环境变量,编辑/etc/p ...

  9. PythonCookBook笔记——函数

    函数 可接受任意数量参数的函数 接受任意数量的位置参数,使用*参数. 接受任意数量的关键字参数,使用**参数. 只接受关键字参数的函数 强制关键字参数放在某个参数后或直接单个之后. 给函数参数增加元信 ...

  10. 模式识别之基础---mqdf分类器==MQDF改进的二次分类器

    QDF假设样本符合高斯分布,通过估计均值与协方差矩阵,训练分类器.但是由于特征维数较高,时空复杂度较高.(协方差矩阵的维数为 特征维数*特征维数).而且协方差矩阵往往存在不满秩无法求逆的情况(样本数& ...