最近开发一个带界面的小工具,介于之前使用wxGlade开发的工具对运行环境的要求,可移植性不好,这次就选择了Python内置模块Tkinter 进行开发,虽然界面设计过程没有wxGlade方便,但也能满足基本需求了。Python2与Python3在Tkinter 使用上差距很大,网上很多资料都是关于Python3上的使用,现总结Python2中Tkinter 的基本使用方法。
一、导入方式
from Tkinter import *
二、窗体生成
root = Tk()
root.title('test')
root.geometry('1000x810') #窗体大小
root.resizable(width=True, height=True) # 窗体横向纵向是否允许拉伸设置,True为可拉伸,False为不可拉伸
。。。#控件相关命令
mainloop() #窗体显示
三、控件使用
每个控件最后要加上.pack()否则控件是无法显示的
1、label
l = Label(root, text="show", bg="green", font=("Arial", 12), width=5, height=2).pack()
2、OptionMenu
Python2中没有下拉框的控件,Python3中有combobox,因此选取OptionMenu实现下拉框功能。
variablep = StringVar(root) # 变量存储菜单栏当前显示的内容,可采取get()方法取当前值
variablep.set(proj_name_list[0]) #设置默认显示的值,list为下拉显示的全部内容
w=OptionMenu(root,variablep,*proj_name_list).pack()
w = apply(OptionMenu, (root, variablep) + tuple(proj_name_list)).pack()
3、button
button = Button(root, text="btn_add", command=button_add).pack() #button_add为button click触发事件
4、Entry
vars=StringVar()
text_input=Entry(root,textvariable =vars,width=100).pack()
5、listbox
var = StringVar()
l = Listbox(self.root, listvariable = varmilestone)
list=['one','two','three']
for item in list:l.pack(side=TOP)
l.delete(0,END) #清空列表框
四、布局
共有三种几何布局管理器,分别是:pack布局,grid布局,place布局。
以下链接对于布局讲解很详细
https://blog.csdn.net/junjun5156/article/details/72510927