tkiner主窗口输入数量和长宽,子窗口根据数量生成矩形
时间: 2023-07-19 19:39:17 浏览: 87
一种获取tkinter子窗口返回值的方法
好的,我可以为您提供一个简单的示例,演示如何使用tkinter创建一个主窗口和一个子窗口,并在子窗口中根据用户输入的数量生成相应数量的矩形。
```python
import tkinter as tk
class MainWindow(tk.Tk):
def __init__(self):
super().__init__()
self.title("主窗口")
self.geometry("300x200")
self.label1 = tk.Label(self, text="请输入矩形数量:")
self.label1.pack()
self.entry1 = tk.Entry(self)
self.entry1.pack()
self.label2 = tk.Label(self, text="请输入矩形宽度:")
self.label2.pack()
self.entry2 = tk.Entry(self)
self.entry2.pack()
self.label3 = tk.Label(self, text="请输入矩形高度:")
self.label3.pack()
self.entry3 = tk.Entry(self)
self.entry3.pack()
self.button = tk.Button(self, text="生成矩形", command=self.create_rectangles)
self.button.pack()
def create_rectangles(self):
num_rectangles = int(self.entry1.get())
width = int(self.entry2.get())
height = int(self.entry3.get())
ChildWindow(num_rectangles, width, height)
class ChildWindow(tk.Toplevel):
def __init__(self, num_rectangles, width, height):
super().__init__()
self.title("子窗口")
self.geometry("{}x{}".format(num_rectangles * width, height))
for i in range(num_rectangles):
x1 = i * width
y1 = 0
x2 = x1 + width
y2 = height
self.canvas = tk.Canvas(self, width=width, height=height)
self.canvas.create_rectangle(x1, y1, x2, y2, fill="blue")
self.canvas.pack(side=tk.LEFT)
if __name__ == "__main__":
app = MainWindow()
app.mainloop()
```
在这个示例中,我们创建了一个名为`MainWindow`的主窗口,其中包含三个用于输入矩形数量、宽度和高度的标签和文本框,以及一个用于生成矩形的按钮。当用户单击按钮时,`create_rectangles`方法将从文本框中获取输入的值,并将它们传递给名为`ChildWindow`的子窗口。在`ChildWindow`中,我们使用循环生成相应数量的矩形,并将它们显示在画布上。
希望这个示例能够帮助您实现您的需求。如果您有任何问题或需要进一步的帮助,请随时告诉我。
阅读全文