【问题标题】:using functions to move an object in the GUI使用函数在 GUI 中移动对象
【发布时间】:2011-09-14 18:31:46
【问题描述】:

Python 函数有问题,请返回。

from graphics import*
win = GraphWin('Me',640,160)


mylist=[]
def move_ob(ob):

    ob.move(4,0)
    return ob

def circle():
    for x in range (10,200,10):
        for y in range (10,200,10):
            c =Circle (Point(x,y),5)
            c.draw(win)
            mylist.append(c)


def main():
    circle()
    win.getMouse()
    move_ob(mylist)

    win.getMouse()
    win.close()

main()

我所做的一切都给了我这个错误

ob.move(4,0)
AttributeError: 'list' object has no attribute 'move'

PS:那个库来自 John Zelle 的书,学习 python 基础知识..

我想让我做的那些圈子动起来……

【问题讨论】:

  • 下次请选择一个更好的标题:标题中没有必要包含“Python”(或其他),因为您已经标记了它。另外,请不要在标题中加上“帮助”或类似名称,因为我们都认为您需要帮助,否则您将不会发布问题;)除了开玩笑,这种做法被社区所反对,信不信由你它会吸引更少的人来回答你的问题。如果您想编辑此标题,那就太好了,但如果不是。下次再来,谢谢!
  • thnx,对于标题,我很抱歉,我现在肯定会修复它......再次thnx!..虽然我仍然有问题! :)!
  • 看看答案中的 cmets 我认为现在应该修复它。感谢您修复标题,欢迎来到 StackOveflow!只要有空,请花一分钟时间回顾一下FAQ 好的,这是一篇简短的阅读文章,可以帮助您获得高质量的问题答案!

标签: python user-interface python-3.x


【解决方案1】:

您传入mylist,即list。列表不知道move 是什么。

我假设您想移动列表中的所有圆圈。因此,您可能希望:

for circleObject in mylist:
    move_ob(circle)

而不是move_ob(mylist)

【讨论】:

  • 那行得通(刚试过),但我会避免重新绑定圈子。
  • 感谢您的回复!... :( 现在它说的是 circle() UnboundLocalError: local variable 'circle' referenced before assignment
  • @user539075 哎呀,这可能是我重用圆圈引起的(没有意识到这个函数被称为圆圈)。您可能想要使用for circleObject in mylist 或其他名称。
  • 鸭先生?哇!我要怎么感谢你?!这几乎是一个奇迹。从没想过我会得到正确的答案..谢谢!现在我将完成其他部分,它是一个迷你 LED 屏幕,文字在移动......
猜你喜欢
  • 1970-01-01
  • 2019-05-19
  • 2021-10-28
  • 2012-05-06
  • 1970-01-01
  • 2013-01-24
  • 2021-12-31
  • 2011-05-04
  • 1970-01-01
相关资源
最近更新 更多