我遇到了TkInter界面的问题,我无法通过滚动条将其自身附加到Listbox元素 - 请参阅此图片:Problem interface
以下是创建和定位列表框和列表的代码。滚动条:
lblpd3 = ttk.Label(mainframe,text='',font=("Helvetica", 5))
lblpd3.grid(column=0, row=12, sticky=NW)
scltrn = Scrollbar(mainframe, orient=VERTICAL)
lbltrn = ttk.Label(mainframe,text='Select Transformation',font=("Helvetica", 11, "bold"))
lbltrn.grid(column=0, row=13, sticky=NW)
self.lsttrn = Listbox(mainframe,selectmode=SINGLE,exportselection=0,width=62,height=4,yscrollcommand=scltrn.set,activestyle='none',selectbackground='#4A6984',selectborderwidth=3,highlightcolor='#4A6984',highlightthickness=1)
scltrn.config(command=self.lsttrn.yview)
scltrn.grid(column=0, row=14, sticky=(N,S,E))
for item in self.coord:
self.lsttrn.insert(END, item)
self.lsttrn.grid(column=0, row=14, padx=0, sticky=NW)
self.lsttrn.select_set(0)
是否有一个简单的黑客可以用来将滚动条向左推几个像素 - 文档似乎表明没有填充元素?
答案 0 :(得分:0)
至少部分问题源于您将滚动条和列表框放在同一列中。他们需要在不同的列中。
一个非常简单的解决方案是使用仅包含 列表框和滚动条的框架。由于您没有水平滚动条,因此您可以使用pack
将列表框和滚动条放在框架中,只需几行代码即可。然后,您可以将该框架放在其父框架中的单个列中。
答案 1 :(得分:0)
您可以将url
窗口小部件和Scrollbar
窗口小部件添加到他们自己的Listbox
中。
然后将其添加为单个'。
虽然我不知道你的整个程序,但这里修复背后的逻辑应该大致如下:
Frame
这不应该是复制+粘贴修复,但希望您了解创建# Declare a new Frame to hold your Listbox and Scroll wheel
myFrame = Frame.__init__(self, parent)
# Make sure your Scrollbar is a part of our newly created Frame "myFrame"
scltrn = Scrollbar(myframe, orient=VERTICAL)
# Make sure your Listbox is a part of our newly created Frame "myFrame"
self.lsttrn = Listbox(myFrame,selectmode=SINGLE,exportselection=0,width=62,height=4,yscrollcommand=scltrn.set,activestyle='none',selectbackground='#4A6984',selectborderwidth=3,highlightcolor='#4A6984',highlightthickness=1)
...
#pack the Scrollbar and Listbox together in our Frame IN THIS ORDER
self.lsttrn.pack()
scltrn.pack()
....
# Now grid our Frame containing both the Scrollwheel and Listbox to your GUI
myFrame.grid(column=xxx,row=xxx,padx=xxx,sticky=xxx)
来保存滚动条和列表框,然后将那个格式化,而不是单独的逻辑背后的逻辑
希望这有帮助! 〜枪手