wxPython - 侧工具栏

wxPython - A side toolbar

我们都知道 wxPython 工具栏即使不总是放在顶部,但大多数时候都是如此。但是有没有办法把它放在一边(最好是左边)?有没有办法将此代码(取自 here)的顶部工具栏变成侧面工具栏:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
ZetCode wxPython tutorial

This example creates a simple toolbar.

author: Jan Bodnar
website: www.zetcode.com
last modified: April 2018
"""

import wx


class Example(wx.Frame):

    def __init__(self, *args, **kwargs):
        super(Example, self).__init__(*args, **kwargs)

        self.InitUI()

    def InitUI(self):

        toolbar = self.CreateToolBar()
        qtool = toolbar.AddTool(wx.ID_ANY, 'Quit', wx.Bitmap('texit.png'))
        toolbar.Realize()

        self.Bind(wx.EVT_TOOL, self.OnQuit, qtool)

        self.SetSize((350, 250))
        self.SetTitle('Simple toolbar')
        self.Centre()

    def OnQuit(self, e):
        self.Close()


def main():

    app = wx.App()
    ex = Example(None)
    ex.Show()
    app.MainLoop()


if __name__ == '__main__':
    main()

利用工具栏 Style 属性。

import wx
class Example(wx.Frame):
    def __init__(self, *args, **kwargs):
        super(Example, self).__init__(*args, **kwargs)
        self.InitUI()

    def InitUI(self):
        toolbar = self.CreateToolBar(wx.TB_VERTICAL|wx.TB_TEXT)
        atool = toolbar.AddTool(wx.ID_ANY, 'Tool_A', wx.Bitmap('stop.png'))
        btool = toolbar.AddTool(wx.ID_ANY, 'Tool_B', wx.Bitmap('stop.png'))
        ctool = toolbar.AddTool(wx.ID_ANY, 'Quit', wx.Bitmap('stop.png'))
        toolbar.Realize()

        self.Bind(wx.EVT_TOOL, self.OnQuit, ctool)

        self.SetSize((350, 250))
        self.SetTitle('Simple toolbar')
        self.Centre()

    def OnQuit(self, e):
        self.Close()

def main():
    app = wx.App()
    ex = Example(None)
    ex.Show()
    app.MainLoop()

if __name__ == '__main__':
    main()

可用样式:

  • wx.TB_FLAT:使工具栏看起来更平坦(Windows 和 GTK)。
  • wx.TB_DOCKABLE:使工具栏可浮动和可停靠(仅限 GTK)。
  • wx.TB_HORIZONTAL:指定水平布局(默认)。
  • wx.TB_VERTICAL: 指定垂直布局。
  • wx.TB_TEXT:显示工具栏按钮中的文字;默认情况下只显示图标。
  • wx.TB_NOICONS:指定工具栏按钮中没有图标;默认显示它们。
  • wx.TB_NODIVIDER: 指定工具栏上方没有分隔符(边框)(仅限Windows)
  • wx.TB_NOALIGN:指定不与父window对齐(仅Windows,不是很有用)。
  • wx.TB_HORZ_LAYOUT:在旁边显示文本和图标,而不是垂直堆叠(仅限 Windows 和 GTK 2)。此样式必须与 TB_TEXT 一起使用。
  • wx.TB_HORZ_TEXT:TB_HORZ_LAYOUT 和 TB_TEXT 的组合。
  • wx.TB_NO_TOOLTIPS: 当鼠标悬停在工具上时,不显示工具的简短帮助工具提示。
  • wx.TB_BOTTOM: 对齐parent底部的toolbar window.
  • wx.TB_RIGHT: 将工具栏对齐父window.
  • 的右侧
  • wx.TB_DEFAULT_STYLE:TB_HORIZONTAL 和 TB_FLAT 的组合。这种风格是wxWidgets 2.9.5以来的新风格。