Skip to content

flextabs v0.3.0

Latest

Choose a tag to compare

@MS-32154 MS-32154 released this 31 Oct 09:14

New

  • Built-in icon set, IconManager.get_builtin_icon(), render(), register_icon() and builtin_names()
  • Themes: theme= argument, set_theme(), Palette, LIGHT, DARK, apply_app_theme() and apply_fonts()
  • close_button_style="button" with close and lock glyphs on tabs
  • get_tab_index(), enable_dpi_awareness(), the flextabs-demo command and type information (py.typed)

Changed (check these when upgrading)

  • Python 3.15 or newer is required
  • The default look is now the flat "auto" theme; pass theme=None for the previous plain ttk look
  • Tabs without an icon no longer get a fallback icon by default (use_fallback_icons and use_notebook_fallback_icons are now False); fallback icons map to built-in icon names, and IconManager.get_fallback_text() returns an icon name
  • Icons are classified as image files by path separator or image extension rather than by length
  • Tabs that are not closable no longer get a • prefix or grey styling
  • Sidebar: default width is 180 (was 150) and the title is shown at the top
  • Themed opener buttons use the ttk selected state for the selected tab and alternate for open tabs; the plain look still marks open tabs with selected
  • get_current_tab() reads the notebook's live selection
  • Destroying the manager runs every open tab's cleanup() and does not call the on_tab_* callbacks
  • Errors are logged with logging instead of printed
  • ToastNotification.COLORS only lists the status accent colours; toasts take their colours from the palette
  • TooltipWidget uses TkDefaultFont and wraps at 280 pixels by default

Fixed

  • Shortcuts no longer replace your app's bindings or each other, and removed tabs lose theirs
  • Selecting tabs after they were reordered, image icons with more than one Tk root, menus with dict icons, the menu opener leaving menus behind, callback errors failing open_tab()/close_tab(), and several smaller issues

Install: pip install flextabs==0.3.0 (requires Python 3.15+)

Full documentation: https://ms-32154.github.io/flextabs/