zoukankan      html  css  js  c++  java
  • tkinter之button

    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()
    View Code

     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()
    View Code

    ***************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()
    View Code

    **************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()
    View Code

    用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()
    View Code

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

    from tkinter import *
    def reg():
        s1=E1.get()#获取输入框的内容
        s2=E2.get()#获取输入框的内容
        t1=len(s1)
        t2=len(s2)
        if s1=='111' and s2=='222': #输入框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()
    View Code
  • 相关阅读:
    解决WordPress不能发邮件,WordPress 无法发送邮件
    WordPress 显示 Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2097160 bytes)解决办法
    怎么优雅的取消重复请求ajax
    手拉手搭建一个脚手架
    数据库隔离级别RC与RR区别——MVCC、ReadView
    整理一下下一步的计划
    减肥
    EBS: Shift + F6: 当复制上行记录
    Oracle 表值函数之多表关联使用
    EBS: 序号授权 GRANT
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/9357305.html
Copyright © 2011-2022 走看看