我正在使用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()
还有其他将小部件绑定到框架内的方法吗?
答案 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;
}
}