TypeError: playMovVideos() takes exactly 2 arument but 3 to given的解决方法

来源:互联网 发布:淘宝手机端全屏怎么做 编辑:程序博客网 时间:2024/06/09 17:55
自己再类里定义了个函数,用来播放视频
def playMovVideos(self, mov):        import os        os.system('start "rv.exe" "%s"'%mov)

在将这个函数个QtCore链接起来的时候就老报题目的这个错,自己苦想很久不得其解,最后在网上反倒一篇文章,才解开我的疑惑。

self.connect(self._videoNameActon, QtCore.SIGNAL('triggered(bool)'), functools.partial(self.playMovVideos, item))
用functools偏函数,将item传进去函数里,表面上看是传入一个参数,和函数定义的时候是一致的,但在做链接的时候实际上还传进去一个event参数,就是时间参数了,

所有就会报题目的那个错,需要修改下函数才行

<pre name="code" class="python">def playMovVideos(self, mov, event):    import os    os.system('start "rv.exe" "%s"'%mov)

改成这样就好了,形参和实参想统一了,这里还有个注意点就是,“mov”和“event”这两个参数也不能位置互换,互换仍然出错。
最后这样问题就成功解决了。

0 0
原创粉丝点击