python中用tkinter编写一个程序显示20个矩形
时间: 2024-03-03 10:49:43 浏览: 90
好的,以下是一个简单的Python程序,使用tkinter库绘制20个矩形:
```python
import tkinter as tk
# 创建窗口
window = tk.Tk()
window.title("20个矩形")
window.geometry("400x400")
# 绘制20个矩形
x = 0
y = 0
for i in range(20):
# 计算矩形位置
if i % 5 == 0 and i != 0:
x = 0
y += 50
# 绘制矩形
rect = tk.Canvas(window, width=40, height=40, bg="white")
rect.place(x=x, y=y)
x += 50
# 运行窗口
window.mainloop()
```
运行这个程序,你将会看到一个窗口显示20个矩形。每个矩形的大小为40x40像素,矩形之间有10像素的间隔。
相关问题
在python中用tkinter创建一手写板并将每一个画布中的像素以0与1矩阵的形式保存在txt中
以下是一个简单的手写板程序,可以通过鼠标拖动在画布上绘制图形。在保存时,将画布上的像素以0和1的形式保存在txt文件中。
```
from tkinter import *
# 定义画布大小和像素大小
CANVAS_SIZE = 280
PIXEL_SIZE = 10
# 创建画布
root = Tk()
canvas = Canvas(root, width=CANVAS_SIZE, height=CANVAS_SIZE, bg="white")
canvas.pack()
# 定义画布上的像素矩阵
pixels = [[0] * (CANVAS_SIZE // PIXEL_SIZE) for _ in range(CANVAS_SIZE // PIXEL_SIZE)]
# 定义绘制函数
def draw(event):
x, y = event.x, event.y
x_idx, y_idx = x // PIXEL_SIZE, y // PIXEL_SIZE
pixels[y_idx][x_idx] = 1
canvas.create_rectangle(x_idx * PIXEL_SIZE, y_idx * PIXEL_SIZE,
x_idx * PIXEL_SIZE + PIXEL_SIZE, y_idx * PIXEL_SIZE + PIXEL_SIZE,
fill="black")
# 绑定鼠标拖动事件
canvas.bind("<B1-Motion>", draw)
# 定义保存函数
def save():
with open("pixels.txt", "w") as f:
for row in pixels:
f.write(" ".join(str(p) for p in row) + "\n")
print("Saved.")
# 创建保存按钮
save_btn = Button(root, text="Save", command=save)
save_btn.pack()
root.mainloop()
```
在程序中,我们首先定义了画布的大小和像素大小,然后创建了一个空的像素矩阵。在绘制函数中,当鼠标拖动时,我们根据鼠标位置计算出对应的像素坐标,并将像素矩阵中对应的值设为1,同时在画布上绘制黑色矩形表示该像素。
在保存函数中,我们将像素矩阵中的值保存到txt文件中。每一行对应一个像素行,行中的数字用空格分隔。
最后,我们创建了一个保存按钮,点击该按钮即可将像素矩阵保存到文件中。
python中用tkinter编写一个程序显示20个嵌套矩形
好的,以下是一个简单的Python程序,使用tkinter库绘制20个嵌套矩形:
```python
import tkinter as tk
# 创建窗口
window = tk.Tk()
window.title("20个嵌套矩形")
window.geometry("400x400")
# 绘制20个嵌套矩形
x = 0
y = 0
for i in range(20):
# 计算矩形位置
if i % 5 == 0 and i != 0:
x = 0
y += 50
# 绘制嵌套矩形
rect = tk.Canvas(window, width=40, height=40, bg="white")
rect.place(x=x, y=y)
for j in range(4):
# 计算内部矩形位置和大小
inner_x = j * 5 + 10
inner_y = j * 5 + 10
inner_width = 40 - j * 10
inner_height = 40 - j * 10
# 绘制内部矩形
inner_rect = tk.Canvas(rect, width=inner_width, height=inner_height, bg="black")
inner_rect.place(x=inner_x, y=inner_y)
x += 50
# 运行窗口
window.mainloop()
```
运行这个程序,你将会看到一个窗口显示20个嵌套矩形。每个矩形的大小为40x40像素,矩形之间有10像素的间隔。每个矩形内部有4个大小不同的矩形。
阅读全文