类构造函数中的位置参数问题

时间:2014-07-30 05:36:58

标签: python qt

我现在正在使用python中的Qt应用程序,我在一些位置参数方面遇到了一些问题。

我有两个类,一个名为FrameMark,另一个MarkerCursor这两个类都是同一个父类的子类。 FrameMark工作正常,但当我尝试实例化MarkerCursor时,我收到此错误:

Traceback (most recent call last):
  File "frame_controls.py", line 360, in <module>
    main()
  File "frame_controls.py", line 355, in main
    w = Window(sys.argv[1])
  File "frame_controls.py", line 62, in __init__
    self.timeline = Timeline(self.frames)
  File "frame_controls.py", line 322, in __init__
    self.markerCursor = MarkerCursor(None, self)
TypeError: MarkerCursor() takes 1 positional argument but 2 were given

__init__()函数设置如下:

    def __init__(self, frame, parent=None, scene=None):
        super(FrameMark, self).__init__(parent, scene)

    # ...

    def __init__(self, parent=None, scene=None):
        super(MarkerCursor, self).__init__(parent, scene)

这是我实例化它们的地方:

    for i in range(len(self.frames)):
        mark = FrameMark(self.frames[i], None, self)
        self.marks.append(mark)

    # Make the cursor marker
    self.markerCursor = MarkerCursor(None, self)

我不知道为什么FrameMark工作正常,但MarkerCursor给了我错误。谢谢!

1 个答案:

答案 0 :(得分:0)

问题出现了,因为我不小心放下了:

def MarkerCursor(QGrapihcsRectItem):

而不是:

class MarkerCursor(QGraphicsRectItem):

Python认为它是我正在调用的函数,而不是新的类实例。