python-默认文本以及列表textvariable Entry小部件Tkinter
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-默认文本以及列表textvariable Entry小部件Tkinter,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2259字,纯文字阅读大概需要4分钟。
内容图文
![python-默认文本以及列表textvariable Entry小部件Tkinter](/upload/InfoBanner/zyjiaocheng/675/b376f9bd10a9450d8e80f20f7a3bea56.jpg)
我有以下输入框,由于获取值,我在其中输入了textvariable的列表选项.
但是我想知道是否可以在背景中放置默认文本,以显示每个框中需要的值(例如灰度文本,“值1”,“值2”等.).
self.numbers = [StringVar() for i in xrange(self.number_boxes) ] #Name available in global scope.
box=Entry(self.frame_table,bg='white',borderwidth=0, width=10, justify="center", textvariable=self.numbers[i])
我是否可以在框内单击鼠标后添加一些更改“文本变量”的内容,还是可以仅添加另一个文本变量或文本来设置默认文本?
self.box = []
for i in xrange(self.number_boxes):
self.clicked = False
self.box.append(Entry(self.frame_table,bg='white',borderwidth=0, width=10, justify="center", textvariable=self.numbers[i], fg='grey'))
self.box[i].grid(row=row_list,column=column+i, sticky='nsew', padx=1, pady=1)
self.box[i].insert(0, "Value %g" % float(i+1))
self.box[i].bind("<Button-1>", self.callback)
解决方法:
为了将默认文本放在Entry小部件中,可以使用here所述的insert()方法.
box.insert(0, "Value 1") # Set default text at cursor position 0.
现在,为了在用户在框内单击鼠标后更改框的内容,您需要将事件绑定到Entry对象.例如,以下代码在单击该框时将其删除. (您可以阅读有关事件和绑定here的信息.)在下面,我显示了一个完整的示例.
请注意,删除框中的文本可能仅对第一次单击有效(即删除默认内容时),因此我创建了一个单击的全局标志以跟踪是否已单击它.
from tkinter import Tk, Entry, END # Python3. For Python2.x, import Tkinter.
# Use this as a flag to indicate if the box was clicked.
global clicked
clicked = False
# Delete the contents of the Entry widget. Use the flag
# so that this only happens the first time.
def callback(event):
global clicked
if (clicked == False):
box[0].delete(0, END) #
box[0].config(fg = "black") # Change the colour of the text here.
clicked = True
root = Tk()
box = [] # Declare a list for the Entry widgets.
box.append(Entry(fg = "gray")) # Create an Entry box with gray text.
box[0].bind("<Button-1>", callback) # Bind a mouse-click to the callback function.
box[0].insert(0, "Value 1") # Set default text at cursor position 0.
box.append(Entry(fg = "gray")) # Make a 2nd Entry; store a reference to it in box.
box[1].insert(0, "Value 2")
box[0].pack() #
box[1].pack()
if __name__ == "__main__":
root.mainloop()
内容总结
以上是互联网集市为您收集整理的python-默认文本以及列表textvariable Entry小部件Tkinter全部内容,希望文章能够帮你解决python-默认文本以及列表textvariable Entry小部件Tkinter所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。