前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python-GUI|生成菜单,封装自己的控件

Python-GUI|生成菜单,封装自己的控件

作者头像
double
发布2018-04-02 16:58:10
1K0
发布2018-04-02 16:58:10
举报
文章被收录于专栏:算法channel算法channel

01

创建菜单

Tk中菜单控件封装在Menu类中。

menubar = Menu(parent)

上面代码指定menbar为Menu,且父控件为parent

xmenu = Menu(menubar)

menu系列按照树结构组织,结构如下:

menubar

|

xmenu

接下来为xmenu增加两个命令项:

xmenu.add_command(label='打开',command=fun) xmenu.add_command(label='关闭',command=fun)

接着,将menubar增加下拉菜单,并指向子菜单 xmenu:

menubar.add_cascade(label='文件',menu=xmenu)

实现的效果如下所示:

02

封装自己的控件

Label和Entry组合为一个新的控件

如下,内部创建Label,Entry,通过grid布局控件。

class LabEnt(object): def __init__(self,parent,cnf={}): """ label and entry combination :param cnf: 1. parent 2. label config: labtxt 3. row 5. column """ if parent is None: raise Exception('must give parent widget') labtxt='label' if 'labtxt' in cnf.keys(): labtxt = cnf['labtxt'] irow=0 if 'row' in cnf.keys(): irow=cnf['row'] icolumn=0 if 'column' in cnf.keys(): icolumn=cnf['column'] lab = Label(parent, text=labtxt) self.ent = Entry(parent) lab.grid(row=int(irow),column=int(icolumn),padx=10,pady=10) self.ent.grid(row=int(irow),column=int(icolumn)+1,padx=10,pady=10) def get(self): return self.ent.get()

使用LabEnt控件,

le_sku = LabEnt(frame, cnf={'labtxt':'sku编号','row':'0','column':'0'}) le_ord = LabEnt(frame, cnf={'labtxt': '订单编号', 'row': '0', 'column': '2'})

效果如下:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档