Найти - Пользователи
Полная версия: wxPython wxNotebook
Начало » GUI » wxPython wxNotebook
1
magnet85
Всем привет.

Есть код:
#!/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()
В
Ubuntu 9.10 (32 bit) + Python 2.6.4 + wxPython 2.8.10.1 (msw-unicode)
Alt Linux 4.1 (32 bit) + Python 2.5.4 + wxPython 2.8.6
работает как надо, а в
Windows 7 (32 bit) + Python 2.6.4 + wxPython 2.8.10.1 (unicode)
проявляется глюк, при запуске не появляется self.notebook_1, если изменить размер окна, то self.notebook_1 появляется, может кто знает как решить проблему?

P. S. И ещё может кто - нибудь проверить как ведёт себя этот скрипт в Windows XP
magnet85
Сам нашёл решение:

Если устанавливать размер окна (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()
UsCr
magnet85
P. S. И ещё может кто - нибудь проверить как ведёт себя этот скрипт в Windows XP
Виртуальная машина, например. VirtualBox, например.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB