我当前正在开发一个程序,需要更改小部件的位置。
这是我的代码:
root = Tk()
frame = Frame(root, bg="black")
label1 = Label(frame, text="not important")
label.grid(row=1, column=1)
#some stuff happens
x = aFunctionThatReturnsXCoordinate #not actual name
y = aFunctionThatReturnsYCoordinate
现在我想将label1
的位置更改为新坐标。
我尝试过:
label1.forget_grid()
label1.grid(rows=x, columns=y)
#Ive tried label1/frame.update after this code but it didnt do anything
我也尝试过不使用grid_forget。
我没有忘记frame.pack
和root.mainloop
。
有改变位置的功能吗?
答案 0 :(得分:0)
这里是一个将标签的位置从第0列切换到第1列的示例:
您必须记住,.stage{
width:400px;
height:300px;
position:relative;
}
video{
-moz-transform:scale(1.5);
-webkit-transform:scale(1.5);
-o-transform:scale(1.5);
-ms-transform:scale(1.5);
transform:scale(1.5);
}
几何管理器将未占用的行或列的大小设置为零像素。
按下按钮会使第1行中的标签从第0列交换到第1列,反之亦然。
@Component({
selector: 'app-video',
templateUrl: './video.component.html',
styleUrls: ['./video.component.scss']
})
export class VideoComponent implements OnInit {
v: number = 0;
h: number = 0;
constructor() {
}
ngOnInit() {
}
left(){
this.v -= 5;
}
right(){
this.v +=5;
}
up(){
this.h -=5;
}
down(){
this.h +=5;
}
}
答案 1 :(得分:0)
我编写了一个包含标签和按钮的代码。当按下按钮时,标签的行从0更改为1,再次按下时,行从1更改为0,依此类推。为了使框架和根之间有所不同,我将框架的颜色设置为sky blue
,将根的颜色设置为pink
。
from tkinter import *
global rw;rw = 0
def changed():
global rw;rw += 1;
if rw == 2:rw=0
label.grid(row=rw,column=0)
root = Tk()
root.config(bg="pink")
frame = Frame(root, bg="sky blue")
frame.pack()
label = Label(frame,text="Hello")
label.grid(row=0,column=0)
b = Button(frame, text='Press me!', command=changed)
b.grid(row=0, column=1)
root.mainloop()
好吧,上面的代码有点复杂,所以,如果您想要一种更简单的方法来做同样的事情:
from tkinter import *
def changed():
size = label.grid_info().get("row") #getting current row
if size == 0:size = 1
elif size == 1:size = 0
label.grid(row=size,column=0)
root = Tk()
root.config(bg="pink")
frame = Frame(root, bg="sky blue")
frame.pack()
label = Label(frame,text="Hello")
label.grid(row=0,column=0)
b = Button(frame, text='Press me!', command=changed)
b.grid(row=0, column=1)
root.mainloop()