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

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

  • 相关阅读:
    IDEA-各模块间引用出现问题的解决方法
    【MyBatis学习06】_parameter:解决There is no getter for property named in class java.lang.String
    《转载》JVM垃圾回收机制
    java面试复习题四
    Java中excel转换为jpg/png图片 采用aspose-cells-18.6.jar
    POI导出复杂的excel;excel公共样式类;excel拼接定制类;数据科学计数法转为普通值
    java发送邮件无法显示图片 图裂 的解决办法
    pom.xml文件最详细的讲解
    Tomcat启动报Error listenerStart错误 Context [] startup failed due to previous errors
    ora-01031:insufficient privileges解决方法
  • 原文地址:https://www.cnblogs.com/pinpin/p/9937426.html
Copyright © 2011-2022 走看看