Форум сайта python.su
Всем привет.
Есть код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wx
class MyFrame(wx.Frame):
def __init__(self, *args, **kwds):
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.panel_1 = wx.Panel(self, -1)
self.notebook_1 = wx.Notebook(self.panel_1, -1, style=0)
self.label_1 = wx.StaticText(self.panel_1, -1, "label_1")
self.notebook_1_pane_1 = wx.Panel(self.notebook_1, -1)
self.__set_properties()
self.__do_layout()
def __set_properties(self):
self.SetTitle("frame_1")
self.SetSize((400, 300))
def __do_layout(self):
sizer_1 = wx.BoxSizer(wx.HORIZONTAL)
sizer_2 = wx.BoxSizer(wx.VERTICAL)
sizer_2.Add(self.label_1, 0, 0, 0)
self.notebook_1.AddPage(self.notebook_1_pane_1, "tab1")
sizer_2.Add(self.notebook_1, 1, wx.EXPAND, 0)
self.panel_1.SetSizer(sizer_2)
sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
self.Layout()
if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame_1 = MyFrame(None, -1, "")
app.SetTopWindow(frame_1)
frame_1.Show()
app.MainLoop()
Офлайн
Сам нашёл решение:
Если устанавливать размер окна (self.SetSize((640, 480))) после добавления вкладок, то всё нормально работает
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wx
class MyFrame(wx.Frame):
def __init__(self, *args, **kwds):
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.panel_1 = wx.Panel(self, -1)
self.notebook_1 = wx.Notebook(self.panel_1, -1, style=0)
self.label_1 = wx.StaticText(self.panel_1, -1, "label_1")
self.notebook_1_pane_1 = wx.Panel(self.notebook_1, -1)
self.__set_properties()
self.__do_layout()
def __set_properties(self):
self.SetTitle("frame_1")
def __do_layout(self):
sizer_1 = wx.BoxSizer(wx.HORIZONTAL)
sizer_2 = wx.BoxSizer(wx.VERTICAL)
sizer_2.Add(self.label_1, 0, 0, 0)
self.notebook_1.AddPage(self.notebook_1_pane_1, "tab1")
sizer_2.Add(self.notebook_1, 1, wx.EXPAND, 0)
self.panel_1.SetSizer(sizer_2)
sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
self.SetSize((640, 480))
self.Layout()
if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame_1 = MyFrame(None, -1, "")
app.SetTopWindow(frame_1)
frame_1.Show()
app.MainLoop()
Офлайн
magnet85Виртуальная машина, например. VirtualBox, например.
P. S. И ещё может кто - нибудь проверить как ведёт себя этот скрипт в Windows XP
Офлайн