Pandas3D错误

2024-06-16 20:44:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个截图功能, 但每次我尝试,它都会给我一个错误:

Traceback (most recent call last):
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 61, in eventLoop
Task
    self.doEvents()
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 55, in doEvents
    processFunc(self.eventQueue.dequeueEvent())
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 122, in processE
vent
    messenger.send(eventName, paramList)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 397, in send
    self.__dispatch(acceptorDict, event, sentArgs, foundWatch)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 482, in __dispatch
    method (*(extraArgs + sentArgs))
  File "C:\Panda3D-1.8.1\direct\showbase\ShowBase.py", line 2317, in __oobeButto
n
    messenger.send(button + suffix)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 397, in send
    self.__dispatch(acceptorDict, event, sentArgs, foundWatch)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 482, in __dispatch
    method (*(extraArgs + sentArgs))
TypeError: Screenie() takes exactly 1 argument (0 given)
:task(error): Exception occurred in PythonTask eventManager
Traceback (most recent call last):
  File "Play.py", line 791, in <module>
    run()
  File "C:\Panda3D-1.8.1\direct\showbase\ShowBase.py", line 2921, in run
    self.taskMgr.run()
  File "C:\Panda3D-1.8.1\direct\task\Task.py", line 502, in run
    self.step()
  File "C:\Panda3D-1.8.1\direct\task\Task.py", line 460, in step
    self.mgr.poll()
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 61, in eventLoop
Task
    self.doEvents()
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 55, in doEvents
    processFunc(self.eventQueue.dequeueEvent())
  File "C:\Panda3D-1.8.1\direct\showbase\EventManager.py", line 122, in processE
vent
    messenger.send(eventName, paramList)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 397, in send
    self.__dispatch(acceptorDict, event, sentArgs, foundWatch)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 482, in __dispatch
    method (*(extraArgs + sentArgs))
  File "C:\Panda3D-1.8.1\direct\showbase\ShowBase.py", line 2317, in __oobeButto
n
    messenger.send(button + suffix)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 397, in send
    self.__dispatch(acceptorDict, event, sentArgs, foundWatch)
  File "C:\Panda3D-1.8.1\direct\showbase\Messenger.py", line 482, in __dispatch
    method (*(extraArgs + sentArgs))
TypeError: Screenie() takes exactly 1 argument (0 given)

下面是截图的部分

^{pr2}$

有人能告诉我它怎么了吗?我正试着修好它,但不知道该怎么办。。。在


Tags: inpyselfsendtasklinepanda3dmessenger
1条回答
网友
1楼 · 发布于 2024-06-16 20:44:46

错误很明显

TypeError: Screenie() takes exactly 1 argument (0 given)

您的Screenie函数接受一个参数(self),但是无论调用它的是什么,都没有给出任何参数(即Screenie()而不是Screenie(obj))。在

您选择self作为Screenie的参数,这使我认为它是一个类方法。那样的话,你应该有这样的东西。在

class SomeCLass(object):
    # <snip>
    def Screenie(self):
        file_name = Filename('whatever.png')
        self.win.saveScreenshot(file_name)

# Create instance
instance = SomeClass()

# Bind keypress to bound method on instance
base.accept('f9', instance.Screenie)

这可以确保Screenieself参数绑定到instance对象,并且您的代码应该可以工作。在

相关问题 更多 >