wxPython-侧面工具栏

时间:2019-04-02 17:13:44

标签: python widget wxpython toolbar wxpython-phoenix

我们都知道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()

1 个答案:

答案 0 :(得分:2)

使用工具栏的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()

enter image description here

可用样式:

  • 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:指定不与父窗口对齐(仅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:对齐父窗口底部的工具栏。
  • wx.TB_RIGHT:将工具栏对准父窗口的右侧。
  • wx.TB_DEFAULT_STYLE:TB_HORIZONTAL和TB_FLAT的组合。自wxWidgets 2.9.5起,这种样式是新的。