解释这行代码s = self.canvas.coords(self.rect)
时间: 2024-05-24 11:10:08 浏览: 20
这行代码是在一个类的方法中使用的,其中self代表当前的实例对象。canvas是实例对象的一个属性,表示一个画布对象。self.rect是实例对象的另一个属性,表示一个矩形对象。canvas.coords()是画布对象的一个方法,用于获取矩形对象的四个坐标值,返回一个元组。s是一个变量名,用于存储获取到的四个坐标值的元组,可以在后续的代码中使用。
相关问题
import tkinter as tk class Three_layout(): def __init__(self, top): self.top = top self.frame = tk.Frame(self.top, bg='Gold', width=1100, height=234, highlightthickness=2, highlightbackground='Black') self.frame.place(x=0, y=670) self.canvas = tk.Canvas(self.frame, width=1077, height=226, bg='Gold') self.canvas.pack(side='left', fill='both', expand=True) self.scrollbar = tk.Scrollbar(self.frame, command=self.canvas.yview, orient=tk.VERTICAL) self.scrollbar.pack(side='right', fill='y') self.canvas.configure(yscrollcommand=self.scrollbar.set) self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) self.button_frame = tk.Frame(self.canvas, bg='Yellow') self.canvas.create_window((0, 0), window=self.button_frame, anchor="nw") self.Content() self.Text_Add() def Content(self): self.text = tk.Text(self.button_frame, width=1077) self.text.pack(side='left', fill='both', expand=True) self.text.insert('end', f'\n') self.text.config(state='disabled') self.button_frame.update_idletasks() self.canvas.configure(scrollregion=self.canvas.bbox("all")) def Text_Add(self): self.text.insert('end', "Hello, world!")为什么没有显示hello,world
在你的代码中,你在`Text_Add()`方法中调用了`insert()`方法,但是你没有将`state`设置为`normal`,这会导致你无法在`Text`控件中插入文本。所以你需要在调用`insert()`方法之前,将`state`设置为`normal`,插入完文本之后再将`state`设置为`disabled`,以保持`Text`控件的只读状态。修改后的代码如下:
```
import tkinter as tk
class Three_layout():
def __init__(self, top):
self.top = top
self.frame = tk.Frame(self.top, bg='Gold', width=1100,
height=234, highlightthickness=2, highlightbackground='Black')
self.frame.place(x=0, y=670)
self.canvas = tk.Canvas(self.frame, width=1077, height=226, bg='Gold')
self.canvas.pack(side='left', fill='both', expand=True)
self.scrollbar = tk.Scrollbar(self.frame, command=self.canvas.yview, orient=tk.VERTICAL)
self.scrollbar.pack(side='right', fill='y')
self.canvas.configure(yscrollcommand=self.scrollbar.set)
self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
self.button_frame = tk.Frame(self.canvas, bg='Yellow')
self.canvas.create_window((0, 0), window=self.button_frame, anchor="nw")
self.Content()
self.Text_Add()
def Content(self):
self.text = tk.Text(self.button_frame, width=1077)
self.text.pack(side='left', fill='both', expand=True)
self.text.insert('end', f'\n')
self.text.config(state='disabled')
self.button_frame.update_idletasks()
self.canvas.configure(scrollregion=self.canvas.bbox("all"))
def Text_Add(self):
self.text.config(state='normal')
self.text.insert('end', "Hello, world!")
self.text.config(state='disabled')
root = tk.Tk()
app = Three_layout(root)
root.mainloop()
```
在修改后的代码中,我将`Text_Add()`方法中的`self.text.config(state='normal')`添加了进去,以便在调用`insert()`方法之前将`state`设置为正常状态。
[x1, y1, x2, y2] = self.canvas.coords(self.oval)的作用
这段代码是用于获取画布上一个椭圆形的坐标信息的。具体解释如下:
- `self.canvas` 是画布对象,表示在哪个画布上进行操作;
- `self.oval` 是椭圆形对象,表示要获取哪个椭圆形的坐标信息;
- `self.canvas.coords()` 是画布对象的方法,用于获取指定对象的坐标信息;
- `[x1, y1, x2, y2]` 是一个包含四个元素的列表,分别表示椭圆形对象的左上角和右下角两个点的坐标值,即 `[左上角横坐标, 左上角纵坐标, 右下角横坐标, 右下角纵坐标]`。
这段代码的作用是获取椭圆形对象的坐标信息,并将其存储在 `[x1, y1, x2, y2]` 中。可以根据获取到的坐标信息,实现对椭圆形对象的移动、缩放等功能。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)