wxpython添加网格和菜单栏

时间:2013-07-11 18:59:07

标签: wxpython

我试图创建一个包含10行和10列的网格。我没有分别显示网格的问题,但当我添加我的菜单栏时,它没有正确显示..我基本上试图添加一个查找按钮,以便我可以在网格中找到元素。

import wx
import wx.grid as gridlib

class ScrollbarFrame(wx.Frame):
    def __init__(self):
            wx.Frame.__init__(self, None, wx.ID_ANY,"Grid with Popup Menu")
            self.layout_file = {'ID':[1,5,5],'NAME':[6,12],'STATE':[13,20]}
            print self.layout_file
            self.OnInit()

    def OnInit(self):
        panel = wx.Panel(self, wx.ID_ANY)

        vbox = wx.BoxSizer(wx.VERTICAL)
        hbox1 = wx.BoxSizer(wx.HORIZONTAL)
        hbox2 = wx.BoxSizer(wx.HORIZONTAL)

        menuBar = wx.MenuBar()

        fileMenu = wx.Menu()
        fileMenu.Append(wx.ID_NEW, '&New')
        fileMenu.Append(wx.ID_OPEN, '&Open')
        fileMenu.Append(wx.ID_SAVE, '&Save')

        menuBar.Append(fileMenu, '&File')

        menu = self.SetMenuBar(menuBar)

#         hbox1.Add(menu, proportion=1)
#         vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
        self.grid = gridlib.Grid(panel)
        self.grid.CreateGrid(10 ,10)

        self.grid.SetCellValue(0,0,'(0,0)')
        self.grid.SetCellValue(0,0,'(0,1)')
        self.grid.SetCellValue(1,0,'(1,0)')
        self.grid.SetCellValue(1,0,'(1,1)')


        hbox2.Add(self.grid,1,wx.EXPAND,5)
        vbox.Add(hbox2, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
        panel.SetSizer(vbox)


if __name__ == '__main__':

    app = wx.PySimpleApp()
    frame = ScrollbarFrame()
    frame.Show()
    app.MainLoop()

2 个答案:

答案 0 :(得分:0)

在添加任何小部件之前先添加菜单栏

import wx
import wx.grid as gridlib

class ScrollbarFrame(wx.Frame):
    def __init__(self):
            wx.Frame.__init__(self, None, wx.ID_ANY,"Grid with Popup Menu")
            self.layout_file = {'ID':[1,5,5],'NAME':[6,12],'STATE':[13,20]}
            print self.layout_file
            self.OnInit()

    def OnInit(self):
        menuBar = wx.MenuBar()

        fileMenu = wx.Menu()
        fileMenu.Append(wx.ID_NEW, '&New')
        fileMenu.Append(wx.ID_OPEN, '&Open')
        fileMenu.Append(wx.ID_SAVE, '&Save')

        menuBar.Append(fileMenu, '&File')

        menu = self.SetMenuBar(menuBar)

        panel = wx.Panel(self, wx.ID_ANY)

        vbox = wx.BoxSizer(wx.VERTICAL)
        hbox1 = wx.BoxSizer(wx.HORIZONTAL)
        hbox2 = wx.BoxSizer(wx.HORIZONTAL)

#         hbox1.Add(menu, proportion=1)
#         vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
        self.grid = gridlib.Grid(panel)
        self.grid.CreateGrid(10 ,10)

        self.grid.SetCellValue(0,0,'(0,0)')
        self.grid.SetCellValue(0,0,'(0,1)')
        self.grid.SetCellValue(1,0,'(1,0)')
        self.grid.SetCellValue(1,0,'(1,1)')


        hbox2.Add(self.grid,1,wx.EXPAND,5)
        vbox.Add(hbox2, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
        panel.SetSizer(vbox)


if __name__ == '__main__':

    app = wx.App()
    frame = ScrollbarFrame()
    frame.Show()
    app.MainLoop()

答案 1 :(得分:0)

将鳕鱼按顺序放置在南北方向,所以将菜单,菜单栏和菜单项放入您的食物中 框架类,然后跟随,网格的代码