限制进入 tk 小部件 [英] Limiting entry on a tk widget

查看:43
本文介绍了限制进入 tk 小部件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我很难找到一种方法来限制条目小部件的条目长度,我想将其限制为 20 个字符,即当我单击一个序列或另一个时,我希望能够对其进行编辑但留在20 个字符的限制.为了或为了保持代码简洁,我应该使用正则表达式、循环还是使用事件检查条目?

I have trouble finding a way to limit the entry length of entry widgets, I would like to limit it to 20 characters, i.e. when I click on a sequence or the other I would like to be able to edit it but stay in the 20 characters limit. In or order to keep the code light , should I use a regex , a loop or check the entry with an event ?

这是我的代码:

import Tkinter
from Tkinter import *
import tkFileDialog

root = Tkinter.Tk()

edit1    =StringVar()
edit2    =StringVar()
s = StringVar()


s = "GATACACGCGCGCGTATATATTACGCGCGCGATACA"



lb01=Label(root,text="sequence1")
lb01v=Entry(root,textvariable=edit1,width=20)
lb01v.delete(0, END)
lb01v.insert(0, s[6:20])

lb01.grid(sticky=W,row=1,column=1)
lb01v.grid(row=1,column=2)


lb02=Label(root,text="sequence2")
lb02v=Entry(root,textvariable=edit2,width=20)
lb02v.delete(0, END)
lb02v.insert(0, s[0:6])

lb02.grid(sticky=W,row=2,column=1)
lb02v.grid(row=2,column=2)

root.mainloop()

推荐答案

我知道现在再添加任何答案为时已晚,只是找到了一种更简单的方法来表示 Wabara 的回答.如果您需要多个条目限制并且每个条目限制为用户定义的长度限制,这将有所帮助.这是在 Python 3.6.5 上运行的代码:

I know its too late to add any answers to this, just found a simpler way to represent what Wabara had answered. This will help if you need multiple entry limits and each to a user-defined length limit. Here's a code working on Python 3.6.5:

def main():
    pass

if __name__ == '__main__':
    main()

from tkinter import *

def limit_entry(str_var,length):
    def callback(str_var):
        c = str_var.get()[0:length]
        str_var.set(c)
    str_var.trace("w", lambda name, index, mode, str_var=str_var: callback(str_var))

root = Tk()

abc = StringVar()
xyz = StringVar()

limit_entry(abc,3)
limit_entry(xyz,5)

e1 = Entry(root, textvariable=abc)
e2 = Entry(root, textvariable=xyz)

e1.pack()
e2.pack()
root.mainloop()

这篇关于限制进入 tk 小部件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆