0

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

2 回答 2

1

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)
于 2012-04-17T13:30:04.467 回答
0

这可能是一个错误。我尝试了各种方法来改变风格,但没有成功。在更改样式时,即使位于 wxPyWiki 上的示例也不适合我。

我会考虑在wxPython-users mailing list上询问它。

于 2012-04-17T08:48:02.637 回答