0
我正在创建一个基本上允许某人将库中的标题复制到集合列表中的setlist创建者。当我把所有内容放在网格中时,出于某种原因,即使我已经检查了行和列以确保它们不重叠,文本区域和列表框仍然奇怪地碰撞按钮和输入框。我应该使用框架还是什么?如果这与框架有关,我该怎么做?影响网格布局的列表框/文本条目tkinter
from Tkinter import *
class Application(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.grid()
self.create_widgets()
def create_widgets(self):
self.SetList_Label = Label(self, text = "Set List")
self.SetList_Label.grid(row = 0, column = 0, padx = 5, pady = 5, sticky = W)
self.SetList_Box = Text(width = 15, height = 10)
self.SetList_Box.grid(row = 1, column = 0, rowspan = 9, columnspan = 4, padx = 5, sticky = W)
self.empty = Label(self, text = " ")
self.empty.grid(row = 0, column = 1, columnspan = 4)
self.Library_Label = Label(self, text = "Library")
self.Library_Label.grid(row = 0, column = 5, padx = 5, sticky = W)
self.Library_List = Listbox(self)
self.Library_List.insert(1, "Dooley")
self.Library_List.insert(2, "Icky Wicky")
self.Library_List.insert(3, "Pig in a Pen")
self.Library_List.insert(4, "In the Highways")
self.Library_List.insert(5, "Bile 'Em Cabbage")
self.Library_List.insert(6, "I'll Fly Away")
self.Library_List.grid(row = 1, column = 5, sticky = W)
self.addto_setlist = Button(self, text = "Add To Setlist", command = self.get_title)
self.addto_setlist.grid(row = 12, column = 0, padx = 5, sticky = W)
self.addto_library = Button(self, text = "Add To Library", command = self.add_item)
self.addto_library.grid(row = 12, column = 6, sticky = W)
self.addtitle_box = Entry()
self.addtitle_box.grid(row = 12, column = 5, sticky = W)
self.delete_button = Button(self, text = "Delete Title", command = self.delete_item)
self.delete_button.grid(row = 12, column = 7, padx = 5, sticky = W)
def add_item(self):
self.Library_List.insert (END, self.addtitle_box.get())
def delete_item(self):
try:
index = self.Library_List.curselection()[0]
self.Library_List.delete(index)
except IndexError:
pass
def get_title(self):
index = self.Library_List.curselection()[0]
seltext = self.Library_List.get(index)
self.SetList_Box.insert(END, "\n" + seltext)
root = Tk()
root.title("SetList Creator")
root.geometry("500x600")
app = Application (root)
root.mainloop()
这是因为今晚,所以我感到沮丧,并转向使用包方法和框架,并运行良好。我希望我真的是他!哈哈只是一个巨大的粉丝:) – IsaacAsimov