编写程序,利用画布组件在窗体中绘制如下图形python
时间: 2024-04-30 07:21:33 浏览: 17
以下是一个绘制图形的 Python 代码示例,使用了 tkinter 库中的 Canvas 组件:
```python
from tkinter import *
# 创建窗口
root = Tk()
# 创建画布
canvas = Canvas(root, width=300, height=200)
canvas.pack()
# 绘制图形
canvas.create_rectangle(50, 50, 250, 150, fill='blue')
canvas.create_oval(100, 50, 200, 150, fill='yellow')
# 进入消息循环
root.mainloop()
```
这段代码将创建一个宽度为 300,高度为 200 的窗口,并在其中创建一个画布。然后使用 `create_rectangle()` 和 `create_oval()` 方法在画布中绘制一个矩形和一个椭圆形,并设置它们的颜色为蓝色和黄色。最后使用 `mainloop()` 方法进入消息循环,等待用户的操作。
相关问题
在窗体中安排一个画布,在画布内绘制一个宽100,高80的红色填充矩形, 矩形内部绘制一个蓝色的填充椭圆. 椭圆中心位置用白色写上"你好"的文字
好的,这是一个关于编程的问题,我可以为您提供答案。
您可以使用Python中的Tkinter模块来创建窗体,并使用Canvas类来创建画布。以下是一个示例代码:
```python
import tkinter as tk
# 创建窗体
root = tk.Tk()
# 创建画布
canvas = tk.Canvas(root, width=100, height=80)
canvas.pack()
# 绘制红色填充矩形
canvas.create_rectangle(0, 0, 100, 80, fill='red')
# 绘制蓝色填充椭圆
canvas.create_oval(10, 10, 90, 70, fill='blue')
# 在椭圆中心位置写入"你好"文字
canvas.create_text(50, 40, text='你好', fill='white')
# 运行窗体
root.mainloop()
```
当您运行此代码时,将在窗体中绘制一个宽度为100,高度为80的红色填充矩形。矩形内部有一个蓝色填充椭圆,椭圆中心位置有白色的“你好”文字。
希望这可以帮助您解决问题。
1、编写一个Line Length应用程序 要求如下:在窗体上绘制一条黑色直线并计算他的长度,如图所示。该直线从按下鼠标按钮出的坐标开始,直到释放鼠标按钮的那点结束。应用程序应当在“Length = ”标签中显示直线的长度(即两个端点之间的距离)。
以下是使用Python和Tkinter库编写的Line Length应用程序代码,满足您的需求:
```
import tkinter as tk
import math
class LineLengthApp:
def __init__(self, master):
self.master = master
master.title("Line Length App")
self.start_x = None
self.start_y = None
self.end_x = None
self.end_y = None
self.canvas = tk.Canvas(master, width=400, height=400, bg="white")
self.canvas.pack()
self.canvas.bind("<Button-1>", self.on_click)
self.canvas.bind("<B1-Motion>", self.on_drag)
self.canvas.bind("<ButtonRelease-1>", self.on_release)
self.length_label = tk.Label(master, text="Length = 0")
self.length_label.pack()
def on_click(self, event):
self.start_x = event.x
self.start_y = event.y
def on_drag(self, event):
self.canvas.delete("line")
self.end_x = event.x
self.end_y = event.y
self.canvas.create_line(self.start_x, self.start_y, self.end_x, self.end_y, width=2, tag="line")
def on_release(self, event):
self.canvas.delete("line")
self.end_x = event.x
self.end_y = event.y
length = math.sqrt((self.end_x - self.start_x)**2 + (self.end_y - self.start_y)**2)
self.length_label.config(text="Length = {:.2f}".format(length))
root = tk.Tk()
app = LineLengthApp(root)
root.mainloop()
```
运行该程序后,会在窗口上显示一个白色的画布,您可以在上面按下鼠标左键并拖动,画出一条直线,直到松开鼠标左键。程序会在窗口上方显示一条标签,标识出该直线的长度。