Flatnotebook忽略所有样式

时间:2012-04-12 16:12:14

标签: python wxpython

在下面的示例程序中,我似乎无法让笔记本控件使用我告诉它使用的样式。尽管有FNB_HIDE_ON_SINGLE_TABFNB_NO_NAV_BUTTONSFNB_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()

2 个答案:

答案 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)