【问题标题】:Why doesn't this show my canvas when i run it? [closed]为什么当我运行它时它不显示我的画布? [关闭]
【发布时间】:2018-07-29 11:49:40
【问题描述】:

所以我正在编写代码来显示我想用画布中的线条和多边形制作的徽标,在我尝试运行它之后:令人惊讶的是,画布没有出现。我做错了什么?

from tkinter import *

class Logo(Frame):
    def _init__(self):
        Frame.__init__(self)

        logo = Canvas(root, width=100, height=100)
        logo.pack(in_=self)

class App(Frame):
    def __init__(self, master = None):
        Frame.__init__(self, master)
        self.pack()
        self.showLogo()

    def showLogo(self):
        self.logo = Logo().pack(side=TOP, pady=100)

root = Tk()
root.title("K-80.1")
root.configure(background="#7E607E")
root.geometry("760x500")
app = App(master = root)
app.mainloop()

【问题讨论】:

  • 您在Logo 中有错字:_init__
  • 顺便说一句,.pack 返回None,所以self.logo = Logo().pack(side=TOP, pady=100)self.logo 设置为None。此外,在Logo 类定义中,您使用的是全局root。最好将master 作为参数传递给showLogoLogo.__init__

标签: python canvas tkinter


【解决方案1】:

如果您使用的是 Mac,我知道颜色可能存在一些问题。我不知道它是否与创建画布有关。如果这是问题所在,我知道有办法解决它,正如我所听说的那样。我只是不认识他们。我自己刚刚测试了代码(我有 Windows)并得到了这个......

Result

当更改 '_init__' 错字时,我明白了...

After Typo

这可能只与拼写错误有关,也可能不是?我不知道你在看什么。

【讨论】:

  • 该结果只是根窗口,OP 将其设置为该颜色。
  • 是的,谢谢,正是那个错字毁了我,呵呵。我有点习惯于编写那种语法,以至于我什至认为我不会犯这样的错误。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 2018-05-31
  • 1970-01-01
相关资源
最近更新 更多