wxPython - боковая панель инструментов - PullRequest
0 голосов
/ 02 апреля 2019

Мы все знаем, что панель инструментов wxPython большую часть времени находится, если не всегда находится сверху. Но есть ли способ иметь его на стороне (желательно слева)? Есть ли способ превратить верхнюю панель инструментов этого кода (взято из здесь ) в боковую панель инструментов:

#!/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 Ответ

2 голосов
/ 03 апреля 2019

Использовать атрибуты панели инструментов 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.
...