Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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
Python 如何调整配电盘的大小以适应网格_Python_Wxpython_Sizer_Wxnotebook_Wxgrid - Fatal编程技术网

Python 如何调整配电盘的大小以适应网格

Python 如何调整配电盘的大小以适应网格,python,wxpython,sizer,wxnotebook,wxgrid,Python,Wxpython,Sizer,Wxnotebook,Wxgrid,这是我所能做的最简单的例子。它是面板内的网格: #!/usr/bin/env python import wx import wx.grid app = wx.App(False) class InfoPane(wx.grid.Grid): def __init__(self, parent): wx.grid.Grid.__init__(self, parent) # Set up the presentation self.

这是我所能做的最简单的例子。它是面板内的网格:

#!/usr/bin/env python

import wx
import wx.grid

app = wx.App(False)  

class InfoPane(wx.grid.Grid):
    def __init__(self, parent):
        wx.grid.Grid.__init__(self, parent)

        # Set up the presentation
        self.SetRowLabelSize(0)
        self.CreateGrid(1, 6)

        self.SetColLabelAlignment( wx.ALIGN_LEFT, wx.ALIGN_CENTRE )
        self.SetColLabelValue(0, "Name")
        self.SetColLabelValue(1, "Status")
        self.SetColLabelValue(2, "")
        self.SetColLabelValue(3, "File")
        self.SetColLabelValue(4, "Last Action")
        self.SetColLabelValue(5, "Other Info")

frame = wx.Frame(None)
panel = wx.Panel(frame)
info_pane = InfoPane(panel)

note_sizer = wx.BoxSizer()
note_sizer.Add(info_pane, 1, wx.EXPAND)

panel.SetSizerAndFit(note_sizer)
frame.Show()

app.MainLoop()
我希望整个东西都能自行调整大小,这样网格的内容都是可见的。目前发生的情况是:

(注意:编辑-我把笔记本拿出来,为了更加简化,结果是一样的)


想法?谢谢

您可以获取网格的大小,并使用它调整其父面板的大小

试试这个:

panel.SetSizerAndFit(note_sizer)
gridSize = info_pane.GetVirtualSize()
frame.Show() 
panel.SetSize(gridSize)
frame.Fit()

您可以获取栅格的大小,并使用栅格调整其父面板的大小

试试这个:

panel.SetSizerAndFit(note_sizer)
gridSize = info_pane.GetVirtualSize()
frame.Show() 
panel.SetSize(gridSize)
frame.Fit()

您可以获取栅格的大小,并使用栅格调整其父面板的大小

试试这个:

panel.SetSizerAndFit(note_sizer)
gridSize = info_pane.GetVirtualSize()
frame.Show() 
panel.SetSize(gridSize)
frame.Fit()

您可以获取栅格的大小,并使用栅格调整其父面板的大小

试试这个:

panel.SetSizerAndFit(note_sizer)
gridSize = info_pane.GetVirtualSize()
frame.Show() 
panel.SetSize(gridSize)
frame.Fit()

如果在调用框架上的fit方法时向框架中添加大小调整器,则它将根据其子对象调整大小

#!/usr/bin/env python

import wx
import wx.grid

app = wx.App(False)


class InfoPane(wx.grid.Grid):
    def __init__(self, parent):
        wx.grid.Grid.__init__(self, parent)

        # Set up the presentation
        self.SetRowLabelSize(0)
        self.CreateGrid(1, 6)

        self.SetColLabelAlignment(wx.ALIGN_LEFT, wx.ALIGN_CENTRE)
        self.SetColLabelValue(0, "Name")
        self.SetColLabelValue(1, "Status")
        self.SetColLabelValue(2, "")
        self.SetColLabelValue(3, "File")
        self.SetColLabelValue(4, "Last Action")
        self.SetColLabelValue(5, "Other Info")

frame = wx.Frame(None)
panel = wx.Panel(frame)
info_pane = InfoPane(panel)

note_sizer = wx.BoxSizer()
note_sizer.Add(info_pane, 1, wx.EXPAND)

panel.SetSizer(note_sizer)
frame_sizer = wx.BoxSizer(wx.VERTICAL)
frame_sizer.Add(panel, 1, wx.EXPAND)
frame.SetSizerAndFit(frame_sizer)
frame.Show()

app.MainLoop()

如果在调用框架上的fit方法时向框架中添加大小调整器,则它将根据其子对象调整大小

#!/usr/bin/env python

import wx
import wx.grid

app = wx.App(False)


class InfoPane(wx.grid.Grid):
    def __init__(self, parent):
        wx.grid.Grid.__init__(self, parent)

        # Set up the presentation
        self.SetRowLabelSize(0)
        self.CreateGrid(1, 6)

        self.SetColLabelAlignment(wx.ALIGN_LEFT, wx.ALIGN_CENTRE)
        self.SetColLabelValue(0, "Name")
        self.SetColLabelValue(1, "Status")
        self.SetColLabelValue(2, "")
        self.SetColLabelValue(3, "File")
        self.SetColLabelValue(4, "Last Action")
        self.SetColLabelValue(5, "Other Info")

frame = wx.Frame(None)
panel = wx.Panel(frame)
info_pane = InfoPane(panel)

note_sizer = wx.BoxSizer()
note_sizer.Add(info_pane, 1, wx.EXPAND)

panel.SetSizer(note_sizer)
frame_sizer = wx.BoxSizer(wx.VERTICAL)
frame_sizer.Add(panel, 1, wx.EXPAND)
frame.SetSizerAndFit(frame_sizer)
frame.Show()

app.MainLoop()

如果在调用框架上的fit方法时向框架中添加大小调整器,则它将根据其子对象调整大小

#!/usr/bin/env python

import wx
import wx.grid

app = wx.App(False)


class InfoPane(wx.grid.Grid):
    def __init__(self, parent):
        wx.grid.Grid.__init__(self, parent)

        # Set up the presentation
        self.SetRowLabelSize(0)
        self.CreateGrid(1, 6)

        self.SetColLabelAlignment(wx.ALIGN_LEFT, wx.ALIGN_CENTRE)
        self.SetColLabelValue(0, "Name")
        self.SetColLabelValue(1, "Status")
        self.SetColLabelValue(2, "")
        self.SetColLabelValue(3, "File")
        self.SetColLabelValue(4, "Last Action")
        self.SetColLabelValue(5, "Other Info")

frame = wx.Frame(None)
panel = wx.Panel(frame)
info_pane = InfoPane(panel)

note_sizer = wx.BoxSizer()
note_sizer.Add(info_pane, 1, wx.EXPAND)

panel.SetSizer(note_sizer)
frame_sizer = wx.BoxSizer(wx.VERTICAL)
frame_sizer.Add(panel, 1, wx.EXPAND)
frame.SetSizerAndFit(frame_sizer)
frame.Show()

app.MainLoop()

如果在调用框架上的fit方法时向框架中添加大小调整器,则它将根据其子对象调整大小

#!/usr/bin/env python

import wx
import wx.grid

app = wx.App(False)


class InfoPane(wx.grid.Grid):
    def __init__(self, parent):
        wx.grid.Grid.__init__(self, parent)

        # Set up the presentation
        self.SetRowLabelSize(0)
        self.CreateGrid(1, 6)

        self.SetColLabelAlignment(wx.ALIGN_LEFT, wx.ALIGN_CENTRE)
        self.SetColLabelValue(0, "Name")
        self.SetColLabelValue(1, "Status")
        self.SetColLabelValue(2, "")
        self.SetColLabelValue(3, "File")
        self.SetColLabelValue(4, "Last Action")
        self.SetColLabelValue(5, "Other Info")

frame = wx.Frame(None)
panel = wx.Panel(frame)
info_pane = InfoPane(panel)

note_sizer = wx.BoxSizer()
note_sizer.Add(info_pane, 1, wx.EXPAND)

panel.SetSizer(note_sizer)
frame_sizer = wx.BoxSizer(wx.VERTICAL)
frame_sizer.Add(panel, 1, wx.EXPAND)
frame.SetSizerAndFit(frame_sizer)
frame.Show()

app.MainLoop()

为什么不在创建窗口时放大它呢?frame=wx.frame(无,大小=(10001000)),因为我希望应用程序以正确的大小启动。太大:网格周围有很多讨厌的空白(用示例代码试试,我想你会明白我的意思)。太小:滚动条。为什么不在创建窗口时放大它?frame=wx.frame(无,大小=(10001000)),因为我希望应用程序以正确的大小启动。太大:网格周围有很多讨厌的空白(用示例代码试试,我想你会明白我的意思)。太小:滚动条。为什么不在创建窗口时放大它?frame=wx.frame(无,大小=(10001000)),因为我希望应用程序以正确的大小启动。太大:网格周围有很多讨厌的空白(用示例代码试试,我想你会明白我的意思)。太小:滚动条。为什么不在创建窗口时放大它?frame=wx.frame(无,大小=(10001000)),因为我希望应用程序以正确的大小启动。太大:网格周围有很多讨厌的空白(用示例代码试试,我想你会明白我的意思)。太小:滚动条。太棒了!这就是我要找的。这个答案的本质是我设置了面板的大小,而不是框架,是框架需要调整大小吗?太好了!这就是我要找的。这个答案的本质是我设置了面板的大小,而不是框架,是框架需要调整大小吗?太好了!这就是我要找的。这个答案的本质是我设置了面板的大小,而不是框架,是框架需要调整大小吗?太好了!这就是我要找的。这个答案的本质是我设置了面板的大小,而不是框架,是框架需要调整大小吗?