我试图在其父框架内标记一个标签,但它显示在窗口的底部,我无处可以认为甚至与我告诉它去的地方有关。 这是我的代码:
class Window:
def __init__(self, root):
#configure the window as root
self.root = root
#create a canvas
self.canvas = Canvas(self.root, bg="white", width=500, height=300).grid(row=0, column=0, rowspan=2)
#create two frames to the right of the canvas for entering letters and displaying wrong guesses
self.wrong_guess_frame = Frame(self.root, bg="red", width=150, height=150).grid(row=0, column=1)
self.entry_frame = Frame(self.root, bg="green", width=150, height=150).grid(row=1, column=1)
#create a title label for the wrong answers and a frame in which to sit it
self.wrngguess_title_frame = Frame(self.wrong_guess_frame, bg="blue",width = 100).grid()
self.wrngguess_title = Label(self.wrong_guess_frame, text="Wrong Guesses:").grid()
最后两行是我遇到的麻烦。 self.wrngguess_title
不会显示在wrong_guess_frame
中,而是显示在窗口底部,我无法弄清楚导致该问题的原因。
任何帮助将不胜感激。 TIA
答案 0 :(得分:1)
main()
不引用任何框架;此变量实际上是self.wrong_guess_frame
,是您在创建框架后应用于框架的None
方法的返回值。 .grid()
作为任何窗口构造函数的第一个参数,被解释为对根窗口的引用。
如果你想要一个变量引用小部件,你必须将小部件创建和网格/包作为两个单独的语句:
None
答案 1 :(得分:0)
似乎根据您在问题中指定的内容,您需要做的就是将row
和column
指定为与框架相同,如下所示:
self.wrngguess_title = Label(self.wrong_guess_frame, text="Wrong Guesses:").grid(row=0, column=1)
self.wrngguess_title_frame = Frame(self.wrong_guess_frame, bg="blue",width = 100).grid(row=0, column=1)
但是如果你想稍微向下移动一行,请使用以下代码段:
self.wrngguess_title_frame = Frame(self.wrong_guess_frame, bg="blue",width = 100).grid(row=0, column=1, pady=(25,10))
希望能帮到你。这就是我从你的问题中推断出你想要的东西。