hveagle 发表于 2024-2-4 21:00:22

【Tk】如何让按钮在Canvas里面出现

如何让按钮在Canvas里面出现

FishC 发表于 2024-2-4 21:00:34

在Tkinter中,按钮(Button)是一种Tkinter控件,而Canvas(画布)也是一种Tkinter控件。要将按钮放置在Canvas中,可以使用Canvas的create_window()方法。

下面是一个简单的示例代码:

import tkinter as tk

# 创建窗口和Canvas
root = tk.Tk()
canvas = tk.Canvas(root, width=400, height=300)
canvas.pack()

# 在Canvas中创建按钮
button = tk.Button(canvas, text="Click Me")
button_window = canvas.create_window(200, 150, anchor=tk.CENTER, window=button)

# 运行主循环
root.mainloop()

在这个示例中,我们首先创建了一个窗口和一个Canvas。然后,我们在Canvas中创建了一个按钮,并使用create_window()方法将按钮放置在Canvas中心。最后,通过运行主循环来显示窗口。

您可以根据自己的需要调整按钮和Canvas的大小、位置和其他参数。希望对您有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

学习编程中的Ben 发表于 2024-2-4 21:39:04

帮你问了:
当你想在Tkinter的Canvas中放置一个按钮时,你可以使用Canvas.create_window()函数。这样,你就可以在Canvas上添加按钮,而不会导致Canvas自动调整大小。

以下是一个简单的示例代码,展示了如何在Canvas中放置一个按钮:
import tkinter as tk

class CanvasWithButton:
    def __init__(self, root):
      self.root = root
      self.root.title("Canvas with Button")

      # 创建Canvas
      self.canvas = tk.Canvas(root, bg='grey75')
      self.canvas.pack()

      # 创建按钮
      button = tk.Button(self.canvas, text='Hello World', command=self.button_clicked)
      button_window = self.canvas.create_window(10, 10, anchor=tk.NW, window=button)

    def button_clicked(self):
      print("Button clicked!")

if __name__ == '__main__':
    root = tk.Tk()
    app = CanvasWithButton(root)
    root.mainloop()

在这个示例中,我们创建了一个Canvas,并在Canvas上放置了一个按钮。按钮的左上角位于Canvas的坐标(10, 10),而不会改变Canvas本身的大小。你可以根据需要调整按钮的位置和样式。12
页: [1]
查看完整版本: 【Tk】如何让按钮在Canvas里面出现