当我使用以下代码增加字体大小时,它也会增加小部件的大小。是否可以通过保持文本小部件的大小不变来增加字体大小?谢谢你
A11 = tkinter.Text(top, height=28, width=70,background = "#02e0a1")
labelfont = ('times', 20, 'bold')
A11.config(font = labelfont)
Run Code Online (Sandbox Code Playgroud) 有没有办法让 Tkinter 列表框的项目成为条目小部件?结果是您可以动态修改列表框条目中的文本。如果您的列表框看起来像:
--------
| Apples |
| Pears |
| Oranges |
---------
Run Code Online (Sandbox Code Playgroud)
那么您可能希望能够点击苹果并编写一些任意文本 - 然后您可以绑定 Enter 键,例如,根据新文本触发功能。
我有一个窗口,提示用户输入其日志文件的目录。但是,我的标签似乎贴在输入框的顶部。关于如何将它们并排包装的任何想法吗?
labelText=StringVar()
labelText.set("Enter directory of log files")
labelDir=Label(app,textvariable=labelText,height=4)
labelDir.pack()
directory=StringVar(None)
dirname=Entry(app,textvariable=directory,width=50)
dirname.pack()
Run Code Online (Sandbox Code Playgroud) 这是我的代码:
def ask(what,why):
root=Tk()
root.title(why)
label=Label(root,text=what)
label.pack()
entry=Entry(root)
entry.pack()
button=Button(root,text='OK',command=root.destroy)
button.pack()
root.mainloop()
return entry.get()
Run Code Online (Sandbox Code Playgroud)
当我调用代码时:
print(ask('Name:','Hello!'))
Run Code Online (Sandbox Code Playgroud)
我得到:
Traceback (most recent call last):
File "C:\gui.py", line 16, in <module>
ask('Name:','Hello!')
File "C:\gui.py", line 15, in ask
return entry.get()
File "C:\Python34\lib\tkinter\__init__.py", line 2520, in get
return self.tk.call(self._w, 'get')
_tkinter.TclError: invalid command name ".48148176"
Run Code Online (Sandbox Code Playgroud)
我在32位Windows 7上使用Python 3.4.3。
我试过
textEntry = Entry(root, width=115, textvariable=text, height=12)
Run Code Online (Sandbox Code Playgroud)
但我在高度方面遇到了错误。
然后我尝试使用Text小部件:
textEntry = Text(root, width=115, textvariable=text, height=12)
Run Code Online (Sandbox Code Playgroud)
但我遇到了一个错误textvariable=text
有什么方法可以调整 的高度Entry或 的变量Text吗?
我正在开发一个脚本,它将在阅读 python 脚本后自动构建 GUI。我在获取我构建的 Entry 对象以接受默认值时遇到问题。
我向我的方法传递一个字典(arg),其中包含默认值和变量名。
def create_entry(self,
arg):
if 'default' in arg.keys():
var = StringVar(value=arg['default'])
else:
var = StringVar()
box = ttk.Entry(self.mainframe, textvariable=var)
box.grid(column=1, row=self.num, columnspan=2, sticky=(W, E))
label= ttk.Label(self.mainframe, text=arg['name']).grid(column=0, row=self.num, sticky=E)
return box, label
Run Code Online (Sandbox Code Playgroud)
我无法解释的是,类似的查找目录的方法效果很好......
def create_askdirectory(self,
arg):
if 'default' in arg.keys():
var = StringVar(value=arg['default'])
else:
var = StringVar()
box = ttk.Entry(self.mainframe, textvariable=var)
box.grid(column=1, row=self.num, columnspan=2, sticky=(W, E))
def askdirectory():
dirname = filedialog.askdirectory()
if dirname:
var.set(dirname)
button = ttk.Button(self.mainframe, text='directory', command=askdirectory).grid(column=0, row=self.num)
return box, button
Run Code Online (Sandbox Code Playgroud) 我怎样才能填充入口小部件,使其不会在小部件的边界处开始书写?在视觉上,与入口小部件边框有一点空间。
我的进度:
entry_widget.bind('<FocusIn>', lambda f: entry_widget.insert(0, ' '))
Run Code Online (Sandbox Code Playgroud)
当用户单击小部件时,这会添加一个空白空间,但此解决方案存在多个问题:
当点击退出并重新点击时,它会在空白区域或用户填写的任何文本的顶部添加另一个空间。我考虑过清除条目小部件,FocusOut但这也会清除用户可能编写的所有文本。
用户可以删除插入的空间
获取内容时,开头有额外的空间。虽然这是一个小问题,可以通过删除内容的第一个字符来解决。
可能还有更多我没有考虑的问题。
我认为我的代码前进的方式很糟糕,因此我问是否有人知道如何“正确”填充条目小部件?
我的 gui 中有一些 tk.Entry() 。条目内的文本始终右对齐。但一旦文本大于框,文本就会左对齐。
示例代码:
import tkinter as tk
root = tk.Tk()
small_text = "abc"
big_text = "abcdefghijklmnopqrstuvwxyz"
small_entry = tk.Entry(root, width=10, justify="right")
big_entry = tk.Entry(root, width=10, justify="right")
small_entry.insert(0, small_text)
big_entry.insert(0, big_text)
small_entry.pack()
big_entry.pack()
# what i want to see for big_entry:
wanna_see_text = "qrstuvwxyz"
wanna_see_entry = tk.Entry(root, width=10, justify="right")
wanna_see_entry.insert(0, wanna_see_text)
wanna_see_entry.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
结果:
第一个盒子就完美了 第二个框包含整个字母表,但它是左对齐的。我希望第二个盒子看起来像第三个盒子,即使它包含整个字母表,
感谢您的帮助 :)
noob 尝试使用 tkinter 创建一个简单的条目,因此预先输入的文本“在此处输入您的名字”被突出显示。然后用户只需输入他们的名字(或点击删除来删除内容...)是否有任何简单的参数/方法可以与 ENTRY 一起使用?
from tkinter import *
root = Tk()
lbl1 = Label ( root, text = "Let's Play together")
lbl2 = Label ( root, text = "What's your Name ? ")
lbl1.grid( row=0, column=0)
lbl2.grid (row=1, column=0)
nameplayer = Entry(root, width=25, )
nameplayer.insert(0,"Enter your name here ")
nameplayer.grid(row=2, column=0)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
谢谢 !!
我正在使用 Python3 和 tkinter 8.6 开发一个应用程序。其中一部分是一个相当复杂的对话框,它使用深色背景。随附的代码仅使用几个小部件来显示我无法工作的区域。除此之外,我的对话框使具有键盘焦点的小部件变得明显(通过突出显示的背景颜色,只需选项卡)。我已经尝试了所有可能的搜索字符串来寻找解决方案,但无济于事。事实证明 'insertwidth': '4' 确实有效。我想要的就是更改 ttkEntry 小部件插入点光标的颜色。我发现的建议答案似乎都不是解决方案。提前致谢。
#!/usr/bin/env python3
import tkinter as tk
import tkinter.ttk as ttk # ttk widgets use styles
import tkinter.font as tkfont
def app_exit():
root.destroy()
root = tk.Tk()
root.geometry('400x50+400+100')
bg = '#2C2B3B' # dark blue
hlbg = '#3F3D5C' # dark blue a shade lighter
fg = 'white'
ebg = 'pink' # Entry inserts
root.configure(background=bg) # fills in around labels and entries
font14 = tkfont.Font(size=14)
font10 = tkfont.Font(size=10)
root.option_add('*TEntry*Font', font14)
ttstyle = ttk.Style() …Run Code Online (Sandbox Code Playgroud) tkinter ×10
tkinter-entry ×10
python ×9
python-3.x ×2
color-scheme ×1
default ×1
height ×1
insertion ×1
label ×1
listbox ×1
pack ×1
pad ×1