此内容由EEWORLD论坛网友常见泽1原创,如需转载或用于商业用途需征得作者同意并注明出处
复习一下先,这个是最基本的,每个程式都需要
Tkinter 程序只需做三件事:
最小的 [Tkinter] 程序(基于Python3,Python2略有区别)
from tkinter import * # import the Tkinter module
root = Tk() # create a root window
root.mainloop() # create an event loop
四 输入框Entry
输入框Entry是经常见到的界面控件之一,例如输入登陆账户密码、比如串口助手输入要发送的数据等等情况都需要用到,所以我们来看看这个控件
语法
语法格式如下:
w = Entry( master, option, ... )
option主要用到的一般有:
bg, font, show等等
实例:
- from tkinter import * # import the Tkinter module
- root = Tk() # create a root window
- L1 = Label(root,text="请输入")
- L1.pack(side = LEFT)
- E1 = Entry(root,bd =5)
- E1.pack(side = RIGHT)
- root.mainloop()
运行效果:
五、文本框Text
文本框Text也是非常常用的一个控件
比如在大家经常用到的串口助手里,Text经常被用来作为显示串口接收的数据,
当串口接收到数据时,text将接收到的数据显示到界面中,so让我们来学习吧!!
Text 控件可以显示网页链接, 图片, HTML页面, 甚至 CSS 样式表.
应用方法:
1.设置python Tkinter Text控件文本的方法
text.insert(index,string) index = x.y的形式,x表示行,y表示列
向第一行插入数据,text.insert(1.0,'hello world')
2.清空python Tkinter Text控件文本的方法
#思路:从第一行清除到最后一行
text.delete(1.0,Tkinter.END)
实例:
- from tkinter import * # import the Tkinter module
-
-
-
- root = Tk() # create a root window
- text = Text(root, width=50, height=10) #30的意思是30个平均字符的宽度,height设置为两行
- text.pack()
-
- text.insert(INSERT, '0x55 ') #INSERT表示输入光标所在的位置,初始化后的输入光标默认在左上角
- text.insert(INSERT, '0x66 ')
- text.insert(INSERT, '0x77 ')
- text.insert(INSERT, '0x88 ')
- text.insert(INSERT, '0x99 ')
- text.insert(INSERT, '0xAA ')
- text.insert(INSERT, '0xBB ')
- text.insert(INSERT, '0xCC ')
- text.insert(INSERT, '0xDD ')
-
- text.insert(END, 'show is over')
-
- root.mainloop()
运行效果:
六、布局控件
几个最主要的控件已经都基本学习了一下,主要想模仿做个简单的界面
下面就开始看一些页面控件布局了
tkinter 共有三种几何布局管理器,分别是:pack布局,grid布局,place布局
Pack布局前面几节都有用到,复杂的应用暂时没用
主要看下grid布局
grid布局又被称作网格布局,是最被推荐使用的布局。程序大多数都是矩形的界面,我们可以很容易把它划分为一个几行几列的网格,然后根据行号和列号,将组件放置于网格之中。使用grid 布局时,需要在里面指定两个参数,分别用row 表示行,column 表示列。需要注意的是 row 和 column 的序号都从0 开始。
实例:
如果创建两个Label,直接用pack,两个Label如下图所示
但是如果我想指定两个label 在同一行
这时候grid就可以上场了
- from tkinter import * # import the Tkinter module
-
- root = Tk() # create a root window
- root.title('title')
- root.geometry('300x200')
- label1 = Label(root, text = 'i am label1')
- label1.grid(row=0)
- label2 = Label(root, text = 'i am label2')
- label2.grid(row=0, column=1)
- root.mainloop()
当然这只是简单的例子
在多个控件时,使用表格1里的option参数即可以完成复杂的界面布局
本帖最后由 常见泽1 于 2019-2-20 13:23 编辑