如何使用网格在tkinter框架内使用小部件?

时间:2018-11-03 04:37:25

标签: python tkinter widget

我正在使用tkinter框架划分窗口,并且已经使用网格绑定了框架。 现在,当我使用.grid()将小部件绑定到框架内时,它会自动脱离框架并绑定到主tkinter窗口。 如果我使用.pack(),它说:_tkinter.TclError:无法在内部使用几何管理器包。已经有奴隶由网格管理

from tkinter import *
root = Tk()

myFrame = Frame(root,text="Frame1").grid(row=1,column=1)
MyLabel = Label(myFrame,text="Label inside Frame1").pack()

还有其他将小部件绑定到框架内的方法吗?

1 个答案:

答案 0 :(得分:1)

这是在与定义小部件的同一行上放置小部件的副作用。这会导致小部件默认为root。试试这个:

 window.onload = function(){
 createBoxes();
 $("myButton").observe("click", createBoxes);
 var divvy = $("container");
 var pars = divvy.getElementsByTagName("p")
 pars.onmouseover = destroyBoxes;

}
function destroyBoxes (event){
var divvy = $("container");
var pars = divvy.getElementsByTagName("p")
if (event.type == "mouseover")   {
pars.removeChild(This);
}

}



function createBoxes()
{
var colors = ["red", "green", "grey", "blue", "orange", "yellow"];
for (i=0;i<=99;i++){
var newP = document.createElement("p");
var top = Math.floor( Math.random() *400 ) + "px";
var left = Math.floor( Math.random() *400 ) + "px";
newP.style.top  = top;
newP.style.left  = left;
newP.style.backgroundColor = colors[ Math.floor( Math.random() *6 )];
$("container").appendChild(newP);
      var divvy = $("container");
      var pars = divvy.getElementsByTagName("p")
      pars.onmouseover = destroyBoxes;
    }
    }