美文网首页python收藏
内置GUI模块:Tkinter

内置GUI模块:Tkinter

作者: Subtle_emo | 来源:发表于2016-05-27 18:37 被阅读183次

        Tkinter 是 python 内置的快速 GUI 开发模块,可用来在短时间内开发出 UI 界面,且是跨平台的,使用的都是所在操作系统的组件,缺点是可能有点丑。。。

        我们开始吧,这里我把自己学到的东西记下,所以不一定全面,学到新东西会持续更新。

        首先,学GUI要先想好要干嘛,因为这涉及到一个布置的问题,容易不知如何下手。

    一般情况下,你要建一个窗口,然后在这个窗口里加一些东西,比如按钮,滚动条,等等

    现在以一个实际情况来学习:

    首先 导入 自带包 Tkinter

    现在你要创建一个窗口,python里则是建立一个窗口对象: window = Tk()

    在这个窗口上加标题:window.title('This is a title')

    设置窗口大小:window.geometry('400x200')    #注意中间的符号是字母 x,长和高

    在这个窗口中加个按钮,首先要见一个按钮对象:button = Button(window,text = 'This is a button',command = a_function)

    第一个参数:要放置的地方;第二个:按钮上的文字;第三个:触法按钮后要执行的函数

    还可以接受背景颜色:bg;字体颜色:fg等参数

    现在设置按钮在这个窗口中的摆放位置:button.pack(side = BOTTOM)  #这里是个设置好的 BOTTOM 表示底部,TOP, BOTTOM, LEFT, RIGHT四个参数,分别指代上下左右。

    pack()是Tkinter中一个简单的布局管理器,WidgetObject.pack(option, …),一般选项有,expand,side,fill

    就是这么简单。

        好了,到这,对如何使用有了一个大致了解,接下来介绍各种组件:

    Label():

    建立一个标签,参数和Button差不多,注意像这种东西使用时都必须 pack() 了之后才有,

           就像你买了东西放在那里别人才看到

            可接受参数 bitmap 显示一些特定的图标有:

     * error

    * hourglass

    * info

    * questhead

    * question

    * warning

    * gray12

    * gray25

    * gray50

    * gray75

                bitmap = 'error' 即可,据说还可以显示些自己的图标,格式为: bitmap="@/path /bitmapname"

                 可接受参数 fg,bg 改变前景色与背景色,支持颜色单词如'red'  还有 #RRGGBB

                 可接受参数  width,height,调整label的宽度和高度

                可接受参数 compound  指定文本(text)与图像(bitmap/image)是如何在 Label 上示,                    缺省为 None.  记住总是图像相对于文字的位置,只有其一不影响   

    可以使用的值:

    left:      图像居左

    right:      图像居右

    top:      图像居上

    bottom:图像居下

    center:文字覆盖在图像上

    可接受参数:

    wraplength:  指定多少单位后开始换行

    justify:            指定多行的对齐方式 (left,right)

    ahchor:        指定文本(text)或图像(bitmap/image)在 Label 中的显示位置

    其中 ahchor 接受如下位置:

    nw          n              ne

    w        center            e

    sw          s              se

    Button :

    主要要了解的就是参数:

    接受参数 command 一个函数,事件处理

    接受参数 relief 来设置 button 的外观 可选的有: FLAT,GROOVE ,RAISED ,RIDGE ,SOLID ,SUNKEN不用字符串

    效果自己试一下就知道

    同样接受 bitmap,compound,width,height,anchor,fg,bg,relief

    接受参数 state 指定状态,:normal,active,disabled

    接受参数 textvariable :使button与变量绑定,绑定之后 Button 上就会显示这个变量的文本

    Entry:

    没有 text 这一属性

    接受参数 textvariable ,与变量绑定,在框中显示,比如字符串,但 这里必须是对象型的:s = StringVar(),然后用set()方法设置字符串内容

    还有,StringVar() 是在 Tkinter 包内的,而且必须 已存在一个 Tk() 对象,才可声明成功,类似的还有:IntVar() 等

    接受参数 state 设置状态,如只读:'readonly' 还有 normal/active/disabled等

    另外说一下:设置这些属性,都可以与字典一样设置 : entry['state'] = 'readonly',不一定要初始化设置

    接受参数 show 设置输入显示均为所设置字符,类似于密码输入框,可以设置为任意字符,超过一个以第一个为准

    接受validate 限制输入的内容,暂时不知怎么用

    还有其他的属性 fg/bg/relief/justify/state 使用方法与 Button 相同

    要注意的是没有 width,height 属性


    相关文章

      网友评论

      本文标题:内置GUI模块:Tkinter

      本文链接:https://www.haomeiwen.com/subject/yrlfdttx.html