在tkinter和oop中使用canvas创建网格

时间:2019-06-17 15:16:17

标签: python tkinter

请原谅我的编程技巧(一位新手)。需要使用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)然后访问方法一样。

0 个答案:

没有答案