请原谅我的编程技巧(一位新手)。需要使用oop方法在画布框内准备一个矩形网格,仅使用一个类。但是无法确定初始化的定义和方法。
假设我有一个根作为基本窗口。我在此根目录下创建了一个画布。在此画布中,我需要有一个矩形网格,这些矩形的位置应由用户选择(已经解决了以用户定义方式创建矩形的功能,因此对此没有问题)。层次结构如下..... root-> Canvas(H1)---> Machines(M1)以后需要使用父画布来访问这些矩形(不是根,而是嵌入它们的画布-H1 )。我的问题是使用画布访问这些矩形。
import tkinter as tk
from tkinter import ttk
from tkinter import font
from tkinter import *
import time
root=tk.Tk()
root.geometry("1860x820")
h=690
w=220
class Halls():
def __init__(self,hallname,**kwarg):
self.hallname=tk.Canvas(root,height=h,width=w)
self.hallname.place(x=100,y=200)
def machinecreation(self,machinename):
self.machinename=self.hallname.create_rectangle
(20,20,40,40)
H1=Halls('H1')
H1.machinecreation('M1')
H1.M1()
root.update()
它给出了一个属性错误,霍尔没有属性机器名。它的基本错误与python有关,而不与tkinter有关。我提到的代码是基本代码。将添加许多大厅(画布)和机器(矩形)。基本上就像尝试创建Canvas对象(Hall)然后访问方法一样。