WxPython无法正确呈现

时间:2015-04-27 00:30:47

标签: python wxpython

我在菜单项调用后创建了一个WxPython笔记本,但不幸的是它没有正确渲染(角落里只有一点蓝色的形状可见)。我必须手动调整窗口大小,然后像第二张图片一样弹回工作顺序。

wrong

correct

代码:

library(dplyr)
library(tidyr)
library(ggplot2)

df %>% 
   group_by(x,y) %>%
   filter(n()>1) %>%
   unite(xy, x,y) %>% 
   ggplot(., aes(xy, z))+
                geom_boxplot()

我尝试过的事情:

def load_notebook(self):
    panel = wx.Panel(self)
    sizer = wx.BoxSizer(wx.VERTICAL)
    notebook = apps.srp.main.Notebook(panel)
    sizer.Add(notebook, 1, wx.ALL | wx.EXPAND, 5)
    panel.SetSizer(sizer)

在主目录和笔记本和面板所在的文件夹中。

使用

  • wxPython-Phoenix(3.0.3.dev1820 + 49a8884)
  • Python 3.4
  • OSX 10.10

2 个答案:

答案 0 :(得分:2)

因此经过一些更多的调整和使用Widget检查工具的提示之后,确实是持有笔记本的面板没有根据框架调整大小(假设我猜的默认尺寸为20x20像素,这是我看到的小蓝点

解决方案是在添加笔记本后添加以下内容:

    sizer_parent = wx.BoxSizer()
    sizer_parent.Add(panel, 1, wx.ALL | wx.EXPAND, 5)
    self.SetSizer(sizer_parent)
    self.Layout()

答案 1 :(得分:0)

我有一个完全相同的问题,如果窗口调整大小但是发布的解决方案对我不起作用,组合框只会进入它的位置。我通过创建一个只为你调整窗口大小的函数来解决它:

def forceRefresh(self):
    self.SetSize((self.GetSize().width, self.GetSize().height+1))
    self.SetSize((self.GetSize().width, self.GetSize().height-1))

虽然不是最佳的,但它为我完成了这个技巧,所以希望它可以帮助其他人。