在一些类似的问题中,这个特定的问题要么没有通过建议的解决方案解决,要么问题已经动摇到不同的主题。因此,我不得不问这个问题:
返回的错误是:
Traceback (most recent call last):
File "learn.py", line 8, in <module>
frame = simplegui.create_frame("Home", 300, 200)
AttributeError: 'module' object has no attribute 'create_frame'
这是关于以下代码
import simplegui
message = "Welcome!"
def click():
global message
message = "Good job!"
def draw(canvas):
canvas.draw_text(message, [50,112], 48, "Red")
frame = simplegui.create_frame("Home", 300, 200)
frame.add_button("Click me", click)
frame.set_draw_handler(draw)
frame.start()
我在Ubuntu上使用pip安装了“simplegui”,但问题似乎没有根据。请提出可能的解决方案。
答案 0 :(得分:5)
您遇到的问题是有两个名为simplegui的库。 The one on pypi(给你错误的那个)与the one for codeskulptor(你有示例代码的那个)完全不同。如果你想使用codeskulptor的示例代码,你必须在codeskulptor中运行你的代码。如果要在本地计算机上运行代码,则必须放弃codeskulptor示例代码。
答案 1 :(得分:1)
可能是因为就像错误一样,该模块中没有一个名为create_frame
这是一个示例代码:
import simplegui
g = simplegui.GUI()
def buttoncallback():
g.status("Button Clicked!")
g.button("Click me!", buttoncallback)
g.button("Click me too!", buttoncallback)
def listboxcallback(text):
g.status("listbox select: '{0}'".format(text))
g.listbox(["one", "two", "three"], listboxcallback)
g.listbox(["A", "B", "C"], listboxcallback)
def scalecallback(text):
g.status("scale value: '{0}'".format(text))
g.scale("Scale me!", scalecallback)
g.run()
你不需要实际让框架只提供框架或窗口的信息然后Tk自动创建一个给定信息的窗口
抱歉,如果这令人困惑,但我希望它有所帮助
答案 2 :(得分:0)
很抱歉对于necro,但这是上述错误的最佳搜索结果,并且我已经从这里的回复中立即明白了该解决方案。
将simplegui与离线项目How to integrate SimpleGUI with Python 2.7 and 3.0 shell集成的指南建议使用codeskulptor和离线兼容性的代码:
try:
import simplegui
except ImportError:
import SimpleGUICS2Pygame.simpleguics2pygame as simplegui
如果你已经在本地安装了一个simplegui软件包,它就不会运行异常,而是加载一个如上所述的软件包与codeskulptor simplegui完全不同。
此代码允许您的项目在codeskulptor和离线中运行,如果您碰巧在本地安装了名为simplegui的软件包,而无需修改其余代码:
try:
import SimpleGUICS2Pygame.simpleguics2pygame as simplegui
except ImportError:
import simplegui
答案 3 :(得分:0)
如果仅运行第二个导入,它应该可以工作:
import SimpleGUICS2Pygame.simpleguics2pygame as simplegui
但是请不要忘记安装Pygame
和SimpleGUICS2Pygame