entry文本框怎么设置提示文字?
entry文本框怎么设置提示文字?例如下图账号文本框中的"手机/邮箱/用户名"
本帖最后由 qq1151985918 于 2021-6-16 09:32 编辑
from tkinter import *
root = Tk()
Label(root, text="用户名密码登录").pack()
username = Entry(root)
username.pack()
username.insert(0, "手机/邮箱/用户名")
password = Entry(root)
password.pack()
password.insert(0, "密码")
Button(root, text="登录").pack()
root.mainloop()
本帖最后由 sunrise085 于 2021-6-16 08:57 编辑
好像没有很简单的方法,不过可以通过默认文本设置来实现这一功能,就是麻烦一点。
这种效果描述一下:在没有任何输入且未获得光标的时候,显示提示语,且字的颜色为灰色,获取光标的时候,若内容为提示语,则清空;若不是提示语,则不清空。
楼上的代码能简单的实现功能,但是效果并不太好。
若想要那种效果,那么需要添加很多代码。我现在没得时间,你自己按照上面我给的思路多试试吧。
学编程就要多思考,多动手 sunrise085 发表于 2021-6-16 08:55
好像没有很简单的方法,不过可以通过默认文本设置来实现这一功能,就是麻烦一点。
这种效果描述一下:在没 ...
好的,多谢提供思路;
还以为文本框有这种输入提示的方法,网上找了半天找不到,原来没有{:5_100:} qq1151985918 发表于 2021-6-16 08:53
感谢!{:5_109:} lengyue869 发表于 2021-6-16 09:04
好的,多谢提供思路;
还以为文本框有这种输入提示的方法,网上找了半天找不到,原来没有
完全可以重写一个 Entry 也没问题的 qq1151985918 发表于 2021-6-16 09:07
完全可以重写一个 Entry 也没问题的
重写entry{:9_241:} lengyue869 发表于 2021-6-16 09:22
重写entry
是啊,重写一个。几分钟就写完了。 sunrise085 发表于 2021-6-16 08:55
好像没有很简单的方法,不过可以通过默认文本设置来实现这一功能,就是麻烦一点。
这种效果描述一下:在没 ...
你想要的是不是这样
from tkinter import *
class newEntry(Entry):
def __init__(self, master=None, placeholder="PLACEHOLDER", color="grey"):
super().__init__(master)
self.placeholder = placeholder
self.placeholder_color = color
self.default_fg_color = self["fg"]
self.bind("<FocusIn>", self.foc_in)
self.bind("<FocusOut>", self.foc_out)
self.put_placeholder()
def put_placeholder(self):
self.insert(0, self.placeholder)
self["fg"] = self.placeholder_color
def foc_in(self, *args):
if self["fg"] == self.placeholder_color:
self.delete("0", "end")
self["fg"] = self.default_fg_color
def foc_out(self, *args):
if not self.get():
self.put_placeholder()
root = Tk()
Label(root, text="用户名密码登录").pack()
username = newEntry(root, "手机/邮箱/用户名")
username.pack()
password = newEntry(root, "密码")
password.pack()
Button(root, text="登录").pack()
root.mainloop()
qq1151985918 发表于 2021-6-16 09:31
你想要的是不是这样
Nice{:5_106:} lengyue869 发表于 2021-6-16 09:42
Nice
Nice 还不最佳 qq1151985918 发表于 2021-6-16 09:31
你想要的是不是这样
不是我想要,是楼主想要~~
{:5_97:} qq1151985918 发表于 2021-6-16 09:24
是啊,重写一个。几分钟就写完了。
羡慕代码写的快的,我两行代码能磨蹭一天{:10_258:} hrpzcf 发表于 2021-6-16 10:08
羡慕代码写的快的,我两行代码能磨蹭一天
我也很羡慕这些大佬啊{:10_266:}说一些我听不懂的语言{:10_266:}一定要下定决心学好编程{:10_266:} qq1151985918 发表于 2021-6-16 09:52
Nice 还不最佳
newEntry没有继承Entry的其他属性跟方法啊?例如width,textvariable... lengyue869 发表于 2021-6-16 11:13
newEntry没有继承Entry的其他属性跟方法啊?例如width,textvariable...
有继承啊,只是用法要变一下,
username = newEntry(root, "手机/邮箱/用户名")
username["width"] = 30
username["fg"] = "red"
username.pack()
页:
[1]