一直在简单看看python,这次项目需要做个界面,最好是要跨平台的,之前考虑QT,但是树莓派上QT跨平台编译一直装这有问题,后来发现Python不就可以么?
于是决定用python做个界面,但是做界面貌似不如QT图形化界面那么简单。最后发现了Python带的Tinker界面编程,很多控件都可以通过语言进行创建,还不是很习惯。分享下我的简单学习控件心得。
TK 简要描述
TK 是与 TCL 语言关系最密切、且被广泛使用的图形库,TCL 语言和 TK 都由 John Ousterhout 开发。虽然 TK 于 1991 年作为 X11 库出现,但实际上它从那时起就被移植到每一种流行的 GUI。(它与 Python 逐渐拥有“标准”GUI 的情形相似。)现在,大多数流行语言和很多小型语言都有 TK 绑定(Tkinter 模块)。
学习基本知识
实际上,Tkinter 程序只需做三件事:
from tkinter import * # importthe Tkinter module
root = Tk() # create a rootwindow
root.mainloop() # create an eventloop
一 按钮
Tkinter 按钮组件用于在 Python 应用程序中添加按钮,按钮上可以放上文本或图像,按钮可用于监听用户行为,能够与一个 Python 函数关联,当按钮被按下时,自动调用该函数。
应用的方式:w = Button ( master, option=value, ... )
master: 按钮的父容器。
options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。
实例:
- from tkinter import * # import the Tkinter module
- def pressOk():
- def pressCancle():
- root = Tk() # create a root window
- button1 = Button(root,text="打开",fg="black",command=pressOk)
- button1.pack()
- root.mainloop() # create an event loop
复制代码
运行结果:
二 Combobox
Combobox是一个下拉列表选择框,在界面很多场景都会用到。
例如串口助手选择串口的COM口,选择波特率的数值,选择数据的位数、选择奇偶校验等等,再例如网络调试助手选择TCP UDP等等模式。应用简单且广泛。
To create a ttk.Combobox widget as the child of a given parent widget:
实例:
- import tkinter
- win=tkinter.Tk() #构造窗体
- comvalue=tkinter.StringVar()#窗体自带的文本,新建一个值
- comboxlist=ttk.Combobox(win,textvariable=comvalue) #初始化
- comboxlist["values"]=("1","2","3","4")
- comboxlist.pack()
- win.mainloop()
复制代码
运行结果:
下拉框里分别是1,2,3,4
LABEL用途也很广泛,以前用QT C#等图形化
编程的时候,都是直接拖拽控件,然后输入要输入的字符就行了,可直接联系客服QQ交代需求:953586085TK得自己找到方法创建LABEL,输入的内容也得自己在语言里搞定,暂时不是很习惯!
属性
运行结果: