zoukankan      html  css  js  c++  java
  • 图形界面

    #!/usr/bin/env python3

    # -*- coding:utf-8 -*-

    #图形界面

    #Tkinter封装了访问TK的接口;

    #TK是一个图形库,支持多个操作系统,使用Tcl语言开发;

    #Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。

    from tkinter import *

    import tkinter.messagebox as messagebox

    #从frame派生一个application类,这是所有Widget的父容器,Frame就是屏幕上的一块矩形区域,多用作容器来布局窗体:

    class Application(Frame):

        def __init__(self,master=None):

            Frame.__init__(self,master)  #表示运行Frame.__init__()函数,入参是self和master,self指向的是创建的实例本身,并且调用时,不用传递该参数

            self.pack()   #表示运行pack()方法 ,pack是一种布局方法

            self.createWidgets()  #表示运行createWidgets()方法 

        def createWidgets(self):

            self.nameInput=Entry(self)  #表示属性nameInput是一个文本框

            self.nameInput.pack()       #运行属性的方法pack()

            self.alertButton=Button(self,text='Hello',command=self.hello)  #text显示文本内容,command指定Button的事件处理函数

            self.alertButton.pack()

                            '''self.helloLabel=Label(self,text='Hello,world!')

            self.helloLabel.pack()

            self.quitButton=Button(self,text='Quit',command=self.quit)

            self.quitButton.pack()'''

                def hello(self):

            name=self.nameInput.get() or 'world'

            messagebox.showinfo('Message','Hello,%s' % name)

            #在GUI中,每个Button、Label、输入框等,都是一个widget 。 Frame则是可以容纳其他widget的widget,所有的widget组合起来就是一棵树。

    #pack()方法把widget加入到父容器中,并实现布局。pack()是最简单的布局,grid()可以实现复杂的布局。

    #在createWidgets()方法中,我们创建一个Label和一个Button,当Button被点击时,触发self.quit()使程序退出。

    #第三步,实例化Application,并启动消息循环:

    app=Application()

    #设置窗口标题

    app.master.title('Hello World')

    #主消息循环:

    app.mainloop()

    #GUI程序的主线程负责监听来自操作系统的消息,并依次处理每一条消息。因此,如果消息处理非常耗时,就需要在新线程中处理。

    #输入文本

    #加入文本框,让用户可以输入文本,然后点击按钮,弹出消息对话框。

    #当用户点击按钮时,触发hello(),通过self.nameInput.get()获得用户输入的文本后,使用thMessageBox.showinfo(),可以弹出消息对话框。

    #创建一个GUI程序

    '''

    1.导入Tkinter模块

    2、创建控件

    3、指定这个控件的master,即这个控件属于哪一个

    4、告诉GM(geometry manager) 有一个控件产生了

    '''

    #Tkinter提供各种控件,如按钮、标签和文本框,这些控件通常被称为控件或部件。

    '''

    Button  按钮控件,在程序中显示按钮

    Canvas  画布控件,显示图形元素如线条或文本

    Checkbutton 多选框控件,用于在程序中提供多项选择框

    Entry   输入控件,用于显示简单的文本内容

    Frame   框架控件,在屏幕上显示一个矩形区域,多用作容器

    Label   标签控件,可以显示文本和位图

    Listbox 列表框控件,在Listbox窗口小部件是用来显示一个字符串列表给用户

    Menubutton  菜单按钮控件,用于显示菜单项。

    Menu    菜单控件,显示菜单栏、下拉菜单和弹出菜单

    Message 消息控件,用来显示多行文本,与label比较类似。

    Radiobutton  单选按钮控件,显示一个单选的按钮状态。

    Scale   范围控件,显示一个数值刻度,为输出限定范围的数字区间

    Scrollbar  滚动条控件,当内容超过可视化区域时使用,如列表框。

    Text    文本控件,用于显示多行文本。

    Toplevel  容器控件,用来提供一个单独的对话框,和Frame比较类似

    Spinbox   输入控件,与Entry类似,但是可以指定输入范围值

    PanedWindow  窗口布局管理的插件,可以包含一个或多个子控件。

    LabelFrame  简单的容器控件。常用于复杂的窗口布局

    tkMessageBox 用于显示迷你应用程序的消息框。

    '''

    #标准属性,也就是所有控件的共同属性,如大小,字体和颜色等等。

    '''

    Dimension  控件大小

    Color  控件颜色

    Font   控件字体

    Anchor 锚点

    Relief 控件样式

    Bitmap 位图

    Cursor 光标

    '''

    #几何管理

    #Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,

    '''

    pack()   包装

    grid()   网格

    place()  位置

    '''

  • 相关阅读:
    C#各自定义控件的网址链接
    给应用程序加装“看门狗”
    CRT detected that the application wrote to memory after after the end of heap buffer(这个经常忘掉)
    关于C#中的Delegate的一些知识
    实行项目管理信息化的好处
    C#连接池的详细分析(转)
    .Net Remoting和Web Service大比拼(转)
    使用SqlDataSource调用带参数存储过程插入数据
    156转换为byte时为什么会变成100的解释
    站在“组织者”这个角色上
  • 原文地址:https://www.cnblogs.com/Ting-light/p/9548169.html
Copyright © 2011-2022 走看看