zoukankan      html  css  js  c++  java
  • GUI的最终选择 Tkinter(二):Label和Button组件

    Label组件

    Lable组件是用于界面上输出描述的标签,例如提示用户“您下载的电影含有未成年人限制内容,请满18岁以后点击观看!”,先来上结果图:

    在来看下它的代码:

    from tkinter import *
    
    root = Tk()
    #创建一个文本Label对象
    textLable = Label(root,
                      text='您所下载的影片含有未成年限制内容,
    请满18岁再查看')
    textLable.pack(side=LEFT)
    photo = PhotoImage(file='18.gif')
    imglable = Label(root,image=photo)
    imglable.pack(side=RIGHT)
    mainloop()

     显示不太好看,所以我们修改下,在字符串中使用 对显示的文本进行换行

    如果想将文字部分左对齐,并在水平位置与边框留有距离,只要设置Label的justify和padx选项即可。

     完整代码如下:

    from tkinter import *
    
    root = Tk()
    #创建一个文本Label对象
    textLable = Label(root,
                      text='您所下载的影片含有未成年限制内容,
    请满18岁再查看',
                      justify=LEFT,
                       padx=10)
    textLable.pack(side=LEFT)
    photo = PhotoImage(file='18.gif')
    imglable = Label(root,image=photo)
    imglable.pack(side=RIGHT)
    mainloop()

    这是图片和文字分开的,但是有时候需要文字显示在图片的上面,那么我们只需要设置compound选项即可。

     1 from tkinter import *
     2 
     3 root = Tk()
     4 photo = PhotoImage(file='bg.gif')
     5 thelable = Label(root,
     6                  text = 'study python',
     7                  justify=LEFT,
     8                  image= photo,
     9                  compound=CENTER,
    10                  font=('宋体',20),
    11                  fg='white')
    12 thelable.pack()
    13 mainloop()

    结果图:

    Button组件

    Button组件是用于实现一个按钮,它的绝大多数选项和Label组件是一样的,不过Button组件有一个Label组件实现不了的功能,那就是可以接收用户的信息。Button组件有一个command选项,用于指定一个函数或方法,当用户单击按钮的时候,Tkinter就会自动地调用这个函数或方法。

    来我们修改上面的Label的那个例子,增加一个按钮,在按钮被单击后Label文本发生改变。想要文本发生改变,只需要设置textvariable选项为Tkinter变量即可:

     1 #
     2 from tkinter import *
     3 
     4 def callback():
     5     var.set('我才不信了,骗子')
     6 
     7 root = Tk()
     8 frame1 = Frame(root)
     9 frame2 = Frame(root)
    10 var = StringVar()
    11 var.set('您所下载的影片含有未成年限制内容,
    请满18岁再查看')
    12 textLable = Label(frame1,
    13                   textvariable=var,
    14                   justify=LEFT)
    15 textLable.pack(side=LEFT)
    16 
    17 photo = PhotoImage(file='18.gif')  #用PhotoImage实例化一个图片对象,注:支持gif的
    18 imglable = Label(root,image=photo)  #创建一个图像Label的对象
    19 imglable.pack(side=RIGHT)
    20 
    21 theButton = Button(frame2,text='我已经满18岁',command=callback) #增加一个按钮
    22 theButton.pack()
    23 
    24 frame1.pack(padx=10,pady=10)
    25 frame2.pack(padx=10,pady=10)
    26 mainloop()

    结果如下:我这里放两张图片了

  • 相关阅读:
    小数据池,深浅拷贝以及集合
    字典
    列表,元组以及range
    整型,布尔值以及字符串详解
    while循环,格式化输出,运算符及编码初识
    Python简介以及入门
    码云以及Git的使用
    JaveScript——简介、语法
    网页练习
    HTML_css样式表 样式属性 格式布局
  • 原文地址:https://www.cnblogs.com/pinpin/p/9937426.html
Copyright © 2011-2022 走看看