Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wxPython错误消息-单击按钮使小图像显示在我的框架内的画布上_Python_User Interface_Button_Wxpython - Fatal编程技术网

wxPython错误消息-单击按钮使小图像显示在我的框架内的画布上

wxPython错误消息-单击按钮使小图像显示在我的框架内的画布上,python,user-interface,button,wxpython,Python,User Interface,Button,Wxpython,好的,我几乎完成了我的项目计划,但我不能得到一个按钮来工作,如果我诚实的话,这应该是最容易做到的事情。我的程序上有代表硬件的按钮,我为它们创建了一个def函数,以显示在OGL画布上 问题已经解决了。。。与问题相关的代码可在下面的答案中找到 根据您上次的评论编辑。使用此选项(使用您自己的图像): 如果以这种方式调用bucky(),则还必须修复类签名: class bucky(wx.Frame): # Creating the outer window/frame def __

好的,我几乎完成了我的项目计划,但我不能得到一个按钮来工作,如果我诚实的话,这应该是最容易做到的事情。我的程序上有代表硬件的按钮,我为它们创建了一个def函数,以显示在OGL画布上

  • 问题已经解决了。。。与问题相关的代码可在下面的答案中找到

根据您上次的评论编辑。使用此选项(使用您自己的图像):

如果以这种方式调用bucky(),则还必须修复类签名:

class bucky(wx.Frame):      
  # Creating the outer window/frame
  def __init__(self, parent, image=None):
    wx.Frame.__init__(self, parent, -1,'Karls Network Tool', size=(900,700))

    my_image = image if image else wx.Image("myself.bmp", wx.BITMAP_TYPE_BMP) 

    ''''''''''''''''''''''''''''''''
    # Button images
    buttonOneRouter = my_image.ConvertToBitmap()
    self.buttonOneRouter = wx.BitmapButton(panel, -1, buttonOneRouter, pos=(20,340))
    self.buttonOneRouter.Bind(wx.EVT_BUTTON, self.OnClickRouter)
    ''''''''''''''''''''''''''''''''
然后你可以看到,点击按钮后,你实际上正在打开一个新的框架。左图是我运行程序时得到的,右图是在我单击并再次输入我的名字后得到的(我简化了您的代码。这就是为什么您只看到底部的一个按钮而不是4个按钮):

如果你想把我的猫放在画布上而不是按钮上,还有一些工作要做。我建议您看看wxPython演示。在杂项示例组中,有一个名为OGL的示例演示了如何实现这一点


编辑:您可以下载wxPython文档和演示包

我不知道这是否正确,但我建议您采用这种方法,看看它是否有效

将框架类修改为:

def __init(self,parent,id,img=None)

def onClickRouter(self,event):
    image=wx.Image('router.jpg', wx.BITMAP_TYPE_JPEG)
    temp = image.ConvertToBitmap()
    self.bmp = wx.StaticBitmap(parent=self, bitmap=temp)
    self.frame=bucky(self.bmp)

请告知结果。

这就是您所有的代码。我现在就要试试。我有比这多得多的代码……我刚刚从中提取了一些片段,试图解释一下你是如何创建mainApp的?请你也从那里写一段代码,这样就更容易提供帮助。我不知道如何通过堆栈溢出发送代码,但如果你愿意,我很乐意以另一种方式发送代码。你可以编辑自己的帖子并将代码放在那里。我仍然有同样的问题:(brrrrrrr,我已经思考了这么长时间了……我只是不明白我怎么能通过点击一个简单的按钮在画布上显示一个小图像。我可以在Tkinter中完成,但不能在Wx中完成。太疯狂了。我在哪里可以找到这个例子?我非常感谢你的帮助!!谢谢!
def __init(self,parent,id,img=None)

def onClickRouter(self,event):
    image=wx.Image('router.jpg', wx.BITMAP_TYPE_JPEG)
    temp = image.ConvertToBitmap()
    self.bmp = wx.StaticBitmap(parent=self, bitmap=temp)
    self.frame=bucky(self.bmp)