【问题标题】:How to init a Tkinter canvas dependent on a main Tkinter window如何根据 Tkinter 主窗口初始化 Tkinter 画布
【发布时间】:2018-11-23 12:20:54
【问题描述】:

我是编程新手,目前正在尝试使用 Tkinter python 库为仿射函数(f(x)=ax+b 形式的函数)绘制图形。我正在做一个名为 graph 的类,但是当我想初始化画布对象时,它必须依赖于一个框架。如何在类中初始化主框架和画布对象?代码如下:

class Graph:
    def __init__(self, a="", b="", dimensions=None, graduation=None, graph=tkinter.Tk(), graphing_area=tkinter.Canvas(graph, height=500, width=500)):
        self.a = a
        self.b = b
        self.dimensions = dimensions
        self.graduation = graduation
        self.graph = graph
        self.graphing_area = graphing_area

【问题讨论】:

  • 确保您只调用一次tkinter.Tk()。这不仅创建了根窗口,还创建了一个控制 GUI 的 Tcl 解释器实例。

标签: python class tkinter


【解决方案1】:

在参数部分之外启动 graph 和 graphing_area 的值。如果您想要将图形设置为函数参数的选项,则默认将graph 参数设置为None,并将self.graph 设置为graph,仅当值与None 不同时。

class Graph:
    def __init__(self, a="", b="", dimensions=None, graduation=None, graph=None):
        self.a = a
        self.b = b
        self.dimensions = dimensions
        self.graduation = graduation
        if not graph:
            self.graph = tkinter.Tk()
        else:
            self.graph = graph
        self.graphing_area = tkinter.Canvas(self.graph, height=500, width=500)

【讨论】:

    猜你喜欢
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 2023-01-08
    • 2013-01-03
    • 2011-12-10
    • 1970-01-01
    • 2021-03-14
    相关资源
    最近更新 更多