self.Frame = Frame(image)TypeError:Frame():参数与任何重载调用都不匹配:重载1:参数太多重载2:参数1具有意外类型'图像'
import wx
class Frame(wx.Frame):
def __init__(self,image,parent = None, id=-1,pos=wx.DefaultPosition, title='Hello, wxPytho!'):
temp = image.ConvertToBitmap()
size = temp.GetWidth(), temp.GetHeight()
wx.Frame.__init__(self, parent, id, title, pos, size)
self.bmp = wx.StaticBitmap(parent=self, bitmap=temp)
class App(wx.App):
def OnInit(self):
image = wx.Image('wxPython.jpg', wx.BITMAP_TYPE_JPEG)
self.Frame = Frame(image)
self.Frame.Show()
self.SetTopWindow(self.Frame)
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()
答案 0 :(得分:0)
{1}}方法在非1(__init__
)之前和之后有2个下划线,这就是你如何定义它的两次但你对_init_
的说法是正确的。
__main__
也应为self.SetTopWindow(self.frame)
开始使用时,请尝试使用不会模仿关键字的名称,或者至少在self.SetTopWindow(self.Frame)
这样的名称中粘贴一些内容,以便明确它是您的名字而不是关键字。< / p>
对于您的信息,缩进在python和我使用过的大多数其他编程语言中都非常重要。
代码应为:
myFrame
实现类似事情的一种不太复杂的方式就像这样
import wx
class Frame(wx.Frame):
def __init__(self,image,parent = None, id=-1,pos=wx.DefaultPosition,title='Hello, wxPytho!'):
temp = image.ConvertToBitmap()
size = temp.GetWidth(), temp.GetHeight()
wx.Frame.__init__(self, parent, id, title, pos, size)
self.bmp = wx.StaticBitmap(parent=self, bitmap=temp)
class App(wx.App):
def OnInit(self):
image = wx.Image('wxPython.jpg', wx.BITMAP_TYPE_JPEG)
self.Frame = Frame(image)
self.Frame.Show()
self.SetTopWindow(self.Frame)
return True
def main():
app = App()
app.MainLoop()
if __name__ == '__main__':
main()
答案 1 :(得分:0)
尝试了萨克森的@Rolf的上层修订版。使用Python 3.6(Winpython发行版)。
尝试使用Python 3.5,它仍然有wxPython-Phoenix 3.0.3的东西。匹配重载显示相同的异常。解决方案:
pip uninstall wxPython-Phoenix
pip install wxPython
在Python 3.5上也可以正常工作。
收回downvote。