python的tkinter按钮移动_python-如何使用tkinter将按钮移出其父项?

小部件存在于层次结构中,并且每个小部件都将通过其父级在视觉上剪切.由于您希望窗口小部件在不同的时间出现在不同的框架中,因此它根本不能成为任何一个框架的子代.相反,使其成为框架父级的子代.然后,您可以通过使用in_参数使用place(或pack或grid)将小部件放置在任一框架中.

这是一个例子.它不使用拖放来保持代码紧凑,但是说明了原理.单击按钮将其从一帧移动到另一帧.

import tkinter as tk

class Example:

def __init__(self):

self.root = tk.Tk()

self.lf1 = tk.LabelFrame(self.root, text="Choose me!", width=200, height=200)

self.lf2 = tk.LabelFrame(self.root, text="No! Choose me!", width=200, height=200)

self.lf1.pack(side="left", fill="both", expand=True)

self.lf2.pack(side="right", fill="both", expand=True)

self.button = tk.Button(self.root, text="Click me", command=self.on_click)

self.button.place(in_=self.lf1, x=20, y=20)

def start(self):

self.root.mainloop()

def on_click(self):

current_frame = self.button.place_info().get("in")

new_frame = self.lf1 if current_frame == self.lf2 else self.lf2

self.button.place(in_=new_frame, x=20, y=20)

Example().start()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值