在下面的示例程序中,我似乎无法让笔记本控件使用我告诉它使用的样式。尽管有FNB_HIDE_ON_SINGLE_TAB
,FNB_NO_NAV_BUTTONS
和FNB_X_ON_TABS
样式,我仍然会看到导航按钮和没有关闭按钮的单个标签。对于我尝试的所有款式都是一样的,它们都被完全忽略了。
我在Ubuntu 11.10,python 2.7.2和wxPython 2.8.11上运行它,如果重要的话
import wx
import wx.lib.flatnotebook as FNB
class TabCtrl(FNB.FlatNotebook):
def __init__(self, parent):
windowstyle = FNB.FNB_HIDE_ON_SINGLE_TAB|FNB.FNB_NO_NAV_BUTTONS|FNB.FNB_X_ON_TAB
super(TabCtrl, self).__init__(parent, style=windowstyle)
self.pages = []
self.pages.append(wx.Panel(self))
self.AddPage(self.pages[0], 'Test')
class MainFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(MainFrame, self).__init__(*args, **kwargs)
self.panel = wx.Panel(self)
self.tabs = TabCtrl(self.panel)
sizer = wx.GridBagSizer(vgap=8, hgap=8)
sizer.Add(self.tabs, (0, 0), (10, 30), wx.EXPAND)
sizer.AddGrowableCol(29)
sizer.AddGrowableRow(9)
self.panel.SetSizer(sizer)
self.panel.Fit()
self.SetInitialSize()
class App(wx.App):
def __init__(self, *args, **kwargs):
super(App, self).__init__(*args, **kwargs)
self.frame = MainFrame(None, title='Test')
self.frame.Show()
app = App()
app.MainLoop()
答案 0 :(得分:0)
这可能是一个错误。我尝试了各种方法来改变风格而不是成功。在更改样式时,即使example located on wxPyWiki也不适合我。
我会考虑在wxPython-users mailing list上询问。
答案 1 :(得分:0)
FNB_NO_NAV_BUTTONS和FNB_X_ON_TABS都可以使用wxPython 2.8.12,Windows 7,Python 2.6在我的机器上工作(使用wxPython演示)。对于AGW小部件集中的任何内容,我强烈建议从SVN下载最新版本。我知道该库的作者,他总是更新它并修复错误,因此更新到SVN中的最新版本通常是值得的。
编辑:我再次看到这个,我认为你至少将一些标志放在错误的参数上。 FlatNotebook中也有一个“agwStyle”参数,我认为应该将一些或所有与FlatNotebook相关的标志应用于:super(TabCtrl, self).__init__(parent, agwStyle=windowstyle)