2012-03-27 41 views
2
import wx 

class bucky(wx.Frame): 

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

     # Exit Button 
     button=wx.Button(panel,label="Exit",pos=(840,580),size=(40,40)) 

     # Close event for exit button 
     self.Bind(wx.EVT_BUTTON, self.closebutton, button) 
     self.Bind(wx.EVT_CLOSE, self.closewindow) 

     # Network Topology Area - User can map a network 
     wx.TextCtrl(panel, -1, pos=(10,40), size=(525, 400)) # Network topology Panel 

     # Creating the bitmap buttons - Images appear on buttons 
     buttonOneRouter=wx.Image("router.bmp", wx.BITMAP_TYPE_BMP).ConvertToBitmap() 
     self.buttonRouter=wx.BitmapButton(panel, -1, buttonOneRouter, pos=(20,580)) 

好了,所以我有我的框架工作,我期望设定在大小,我需要一个按钮,我也有我的退出按钮,按预期工作等等等等.....因此,我们可以看到一般程序工作正常。所有我想要的待办事项现在是有计划做到以下几点:wxPython的 - 创建我的TextCtrl面板内产生的位图图像

  • 当用户点击buttonOneRouter正如你所期望的是我对路由器的相框内的按钮。在按钮上使用并存储在我的Python目录中的路由器映像应显示在TextCtrl - 网络拓扑区域中。

- 考虑到这一步,如果可能的话,我希望能够拖动这个在该区域内出现在TextCtrl中的小图像,以便用户可以创建它们的模拟网络。

我明白,这应该是非常简单的,因为我所要做的就是创建一个事件来分配给按钮,但我甚至不会开始。任何指针?

+0

为什么要在TextCtrl中显示图像?你还会在其中输入一些文字吗? – Tupteq 2012-03-27 11:15:42

+0

以及我正在创建一个网络工具,以便人们可以在视觉上映射网络。你还建议我使用什么? Iv看着wx.DC的方法,但似乎无法让它工作一点。 – 2012-03-27 11:18:08

+0

对不起,回答这个问题是的,他们可以输入附加的笔记周围的图像等。 – 2012-03-27 11:20:34

回答

2

以下是我认为你应该做的:

初始化方法,也需要图片作为您的说法,您将使用为textctrl背景。

你的情况,这将是:

def __init__(self,parent, id, image) 

创建自己的应用程序类,并在您创建图像对象OnInit方法:

def OnInit(self): 

    image=wx.Image('your_image.jpg',wx.BITMAP_TYPE_JPEG) 
    self.frame=bucky(image) 

休息的过程中都和你一样一样其他事情。

2

我想你应该仔细看看Docs and Demos(对于wxPython额外的download)。有一个使用图像 - >拖动图像的例子(至少在Windows版本),正是你想要的(你有拖动'滴'和位图使用)。