Loading... ## 1、GUI是什么?## 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。 ## 2、Python中的GUI编程 Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。 wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。 Jython:Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。 ## 3、Tkinter编程 Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。 ## 4、如何来创建一个GUI程序? (1)、导入 tkinter 模块 (2)、创建窗口 (3)、创建控件 (4)、显示控件和窗口 Eg: ```python from tkinter import * #导入模块 tk_bg = Tk() #创建窗口 bm=Button() #创建按键控件 bm.pack() #显示控件(放在窗口创建的后面) tk_bg.mainloop() #显示窗口(放最下面) ``` ## 5、画一个简单的的窗口 想要在窗口显示文字,需要调用Label()控件,想要在窗口上显示按键,需要调用Button()控件。  eg: ```python from tkinter import * tk_bg = Tk() tk_bg.title("第一个GUI") #窗口名称 lb=Label() #创建一个输出框控件 lb["text"]= "Hello World!" #写入文本 lb["width"]=100 #设置该控件左右宽度 lb["height"]=10 #设置该控件上下高度 lb.pack() #显示控件 bm=Button() #创建按键控件 bm["text"]= "确定" #写入文本 bm.pack() #显示控件 tk_bg.mainloop() #显示窗口 ``` **注:TK中的窗口显示顺序默认是自上而下的,先调用pack()的控件会显示在上面,后调用的会显示在下面。** ## 6、在窗口显示图片。 想要在窗口中显示图片,只需要将输出框控件和图片关联就可以了。  eg: ```python from tkinter import * #导入模块 tk_bg = Tk() #创建窗口 tk_bg.title("毁图秀秀") #修改窗口名字 lb1=Label() #创建一个输出框控件 w =PhotoImage(file ="123.gif") #创建一个图片对象,图片只能是gif lb1["image"]=w #关联图片到控件 lb1.pack() #显示控件 tk_bg.mainloop() #显示窗口 ``` **注:图片文件要和源代码放在同一个文件夹,否则请使用绝对路径指定图片位置。** ## 7、排列控件顺序 想要在一行显示多个控件,需要使用Frame()来集中管理。  eg: ```python from tkinter import * #导入模块 tk_bg = Tk() #创建窗口 tk_bg.title("阁下的相册") #修改窗口名字 fm1 = Frame() #生成集中管理对象fm1 w1 =PhotoImage(file ="123.gif") #创建一个图片对象,图片只能是gif Label(fm1,image=w1).pack(side="left") #创建输出框控件关联fm1和w1图片,控件显示方式为最左边 w2 =PhotoImage(file ="234.gif") #创建一个图片对象,图片只能是gif Label(fm1,image=w2).pack(side="left") #创建输出框控件关联fm1和w2图片,控件显示方式为最左边 fm1.pack() #显示fm1关联的所有控件 fm2 = Frame() #生成集中管理对象fm2 Button(text="可爱",font=("楷体",20)).pack(side="bottom") #创建按键控件关联fm2,控件显示方式为最下方 Button(text="很可爱",font=("楷体",20)).pack(side="bottom") #创建按键控件关联fm2,控件显示方式为最下方 Button(text="非常可爱",font=("楷体",20)).pack(side="bottom") #创建按键控件关联fm2,控件显示方式为最下方 fm2.pack() #显示fm2关联的所有控件 tk_bg.mainloop() #显示窗口 ``` **注:主义观察控件的输出,非常可爱是在最上面的,想一想为什么(因为bottom把最前面的可爱放在了最下面)。side有四种方式 top、bottom、left、right。** ## 以下为TK的方法和属性附录 #### 1、Tkinter组件 Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。 | 控件 | 描述 | | :-: | :-: | | Button | 按钮控件;在程序中显示按钮。 | | Canvas | 画布控件;显示图形元素如线条或文本 | | Checkbutton | 多选框控件;用于在程序中提供多项选择框 | | Entry | 输入控件;用于显示简单的文本内容 | | Frame | 框架控件;在屏幕上显示一个矩形区域,多用来作为容器 | | Label | 标签控件;可以显示文本和位图 | | Listbox | 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户 | | Menubutton | 菜单按钮控件,用于显示菜单项。 | | Menu | 菜单控件;显示菜单栏,下拉菜单和弹出菜单 | | Message | 消息控件;用来显示多行文本,与label比较类似 | | Radiobutton | 单选按钮控件;显示一个单选的按钮状态 | | Scale | 范围控件;显示一个数值刻度,为输出限定范围的数字区间 | | Scrollbar | 滚动条控件,当内容超过可视化区域时使用,如列表框。. | | Text | 文本控件;用于显示多行文本 | | Toplevel | 容器控件;用来提供一个单独的对话框,和Frame比较类似 | | Spinbox | 输入控件;与Entry类似,但是可以指定输入范围值 | | PanedWindow | PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。 | | LabelFrame | labelframe 是一个简单的容器控件。常用与复杂的窗口布局。 | | tkMessageBox | 用于显示你应用程序的消息框。 | #### 2、Tkinter几何管理 Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,以下是Tkinter公开的几何管理类:包、网格、位置  #### 3、Tkinter控件属性 [https://wenku.baidu.com/view/e34287db0722192e4436f657.html](https://wenku.baidu.com/view/e34287db0722192e4436f657.html "https://wenku.baidu.com/view/e34287db0722192e4436f657.html") 最后修改:2020 年 08 月 13 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果您觉得我的文章有帮助,请随意赞赏,赞赏有助于激发博主的热情,感谢!
1 条评论
找个时间补一下这个图形化的知识,几百年没敲代码了,现在helloword都快不会敲了