我在这里遇到的问题是,当我单击中的不同文件名时Listbox
,Label
更改的值将在我当前单击的内容后面单击。
我在这里想念什么?
import Tkinter as tk
class TkTest:
def __init__(self, master):
self.fraMain = tk.Frame(master)
self.fraMain.pack()
# Set up a list box containing all the paths to choose from
self.lstPaths = tk.Listbox(self.fraMain)
paths = [
'/path/file1',
'/path/file2',
'/path/file3',
]
for path in paths:
self.lstPaths.insert(tk.END, path)
self.lstPaths.bind('<Button-1>', self.update_label)
self.lstPaths.pack()
self.currentpath = tk.StringVar()
self.lblCurrentPath = tk.Label(self.fraMain, textvariable=self.currentpath)
self.lblCurrentPath.pack()
def update_label(self, event):
print self.lstPaths.get(tk.ACTIVE),
print self.lstPaths.curselection()
self.currentpath.set(self.lstPaths.get(tk.ACTIVE))
root = tk.Tk()
app = TkTest(root)
root.mainloop()
问题与Tk的基本设计有关。简短的版本是,特定窗口小部件的绑定在窗口小部件的默认类绑定之前触发。在类绑定中,列表框的选择被更改。这正是您所观察到的-
您在当前点击之前就看到了选择。
最好的解决方案是绑定到<<ListboxSelect>>
选择更改后触发的虚拟事件。其他解决方案(对于Tk来说是独一无二的,并为其赋予了其令人难以置信的强大功能和灵活性)是修改绑定的应用顺序。这涉及将窗口小部件绑定标签移动到类绑定标签之后,或者在类绑定标签之后添加新的绑定标签并将其绑定到该绑定标签。
由于绑定到<<ListboxSelect>>
是更好的解决方案,因此我将不介绍如何修改绑定标签的详细信息,尽管它很简单,而且我认为它已被很好地记录在案。
我想在我的应用程序中添加一个时钟,它告诉你已经做了多长时间的任务。为了简化它,我包含了一个计数器,它在新线程中每秒递增一次,并用计数器号更新标签“Set Timer”。为此,我在我的.fxml文件中有一个标签fx:id=“settimer”,并将其导入到我的类中。 我试过很多方法来解决我的问题,但我还没有找到正确的方法。我对我想做什么的想法应该很清楚,如果有人能帮助我,我会很高兴的。我的问题是更新
问题内容: 我在使用Tkinter和PIL更新标签时遇到了一个“小”问题。 当我按下起 司 按钮时,它应该显示foo2,但是它只显示白色屏幕。有什么建议? 这是我的代码: 问题答案: 好吧,我认为原因是当您按下按钮时。这是因为此行: 应该: 出现这种情况,是因为,等回报。
问题内容: 每次将字符输入到窗口小部件时,我都希望获取该窗口小部件的内容,并从某个数字中减去其长度(基本上是“剩下x个字符”)。 但是,这始终是背后的事件。根据我的收集,这是因为在字符输入到“文本”小部件中之前已处理了事件。这意味着,如果我在该字段中输入3个字符,然后输入第4个字符,则该字符将被更新,但仍为3个字符长,那么当我输入第5个字符时,它将更新为4个字符。 有没有办法使两者保持一致? 这是
问题内容: 在这篇文章的给定示例中,提到如果使用默认绑定标记,则事件值在定义内部将不可见(将滞后一个)。 关于类绑定有一些解释。 我是一个初学者,所以想了解详细的原因。 能否请你解释一下为什么它在第一种情况下不起作用而在第二种情况下(修改绑定标签的顺序时)为何起作用。 问题答案: 当你对窗口小部件进行绑定时,实际上并没有绑定到窗口小部件本身。当你这样做时,实际发生的是绑定与具有与小部件相同名称的绑
我是java和javaFx的新手,我正在尝试处理一个需要在标签上显示一些实时传入数据的项目。 我将我的标签绑定到服务对象的消息,该消息不断使用传入数据更新其消息。但是,消息正在更新,但标签变为空白。 没有弹出错误,也没有捕获到异常。任何人都可以指出标签空白的原因,而不是随服务一起更新。消息以及如何修复它?提前谢谢。 下面是我正在尝试做的一个简化示例,其中数据源被随机数列表替换。 控制器类:我将sc
我有一个名为的单例。它负责在菜单中显示正确的文本。它会动态更新。 我有一个fxml文件,但是MenuText不能有对它的引用。(这将与MVVM体系结构风格相矛盾) 这是正确的做法吗?我现在有了一个MenuFactory,它也是在JavaFX方法中创建的。它设置场景的父级。 start()mehtod如下所示: 这让它变得更加复杂,我不确定这是否正确。此外,我仍然不知道如何设置fxml文件中的菜单文
问题内容: 是否可以将JavaFX Slider的Double-Value绑定到Label?我想得到这样的东西: 谢谢您的帮助。 问题答案: 假设您有一个返回a 的属性访问器方法,则可以执行 如果要使用Formatting String格式化字符串 ,请执行以下操作
我想做的是: 我有一个JavaFX窗口,我通过拖动不断改变它的宽度和高度。然后的文本具有以下格式: 例子: 我想使用绑定,而不是使用2(两)个ChangeListeners来实现这一点。 我也读过这个问题JavaFX绑定到多个属性