📜  Python – wxPython 中的 CreateToolBar()(1)

📅  最后修改于: 2023-12-03 14:46:08.471000             🧑  作者: Mango

Python – wxPython 中的 CreateToolBar()

wxPython是一款开源的GUI开发工具包,它是Python语言的一份扩展库。它提供了开发人员一个简单的方式来创建图形用户界面(GUI)。wxPython中的CreateToolBar()函数是一个用于在GUI中创建工具栏的函数,本文将深入探讨该函数的使用。

如何使用CreateToolBar()函数

CreateToolBar()函数是wxPython中创建工具栏的一种常用方式。它的使用方法如下:

toolbar = self.CreateToolBar()
toolbar.AddTool(id, bitmap, shortHelpString [, longHelpString [, kind]])
toolbar.Realize()

在此代码中,CreateToolBar()函数创建一个工具栏,AddTool()函数将工具添加到工具栏中,Realize()函数将工具栏显示在屏幕上。

请注意,在使用CreateToolBar()函数时,需要有一个父级窗口对象。所以,在上述代码中,self参数必须是一个包含该函数的父级窗口类的实例。例如,在wx.Frame类中使用CreateToolBar()函数,它的调用如下:

class Mywin(wx.Frame):
    def __init__(self, parent, title):
        super(Mywin, self).__init__(parent, title=title, size=(350, 250))

        toolbar = self.CreateToolBar()
        toolbar.Realize()

        self.Centre()
        self.Show()


app = wx.App()
Mywin(None, 'Toolbar')
app.MainLoop()

这个代码可以创建一个简单的GUI窗口和一个无工具的工具栏。

工具栏的工具

在工具栏中添加工具也很简单,使用AddTool()函数即可。该函数的参数如下:

  • id: 该工具的标识符,在点击该工具时使用该标识符来识别它
  • bitmap: 该工具的图标
  • shortHelpString: 工具的简短帮助信息,当鼠标悬停在工具上时显示
  • longHelpString: 工具的详细帮助信息,当用户按下F1键时显示
  • kind: 工具的类型,可用选择项包括wx.ITEM_NORMAL,wx.ITEM_CHECK和wx.ITEM_RADIO。

下面是一个完整的示例代码,展示如何在工具栏中添加多个工具:

class Mywin(wx.Frame):
    def __init__(self, parent, title):
        super(Mywin, self).__init__(parent, title=title, size=(350, 250))

        toolbar = self.CreateToolBar()
        tool1 = toolbar.AddTool(wx.ID_ANY,
                              'New',
                              wx.Bitmap('new.png'))
        tool2 = toolbar.AddTool(wx.ID_ANY,
                              'Open',
                              wx.Bitmap('open.png'))
        tool3 = toolbar.AddTool(wx.ID_ANY,
                              'Save', wx.Bitmap('save.png'))
        tool4 = toolbar.AddTool(wx.ID_ANY,
                              'Print',
                              wx.Bitmap('print.png'))
        toolbar.Realize()

        self.Bind(wx.EVT_TOOL, self.OnToolClick, tool1)
        self.Bind(wx.EVT_TOOL, self.OnToolClick, tool2)
        self.Bind(wx.EVT_TOOL, self.OnToolClick, tool3)
        self.Bind(wx.EVT_TOOL, self.OnToolClick, tool4)

        self.Centre()
        self.Show()

    def OnToolClick(self, event):
        print('clicked on tool with id', event.GetId())


app = wx.App()
Mywin(None, 'Toolbar')
app.MainLoop()

在我们的例子中,我们添加了四个工具:New、Open、Save和Print。每个工具都有一个图标和简短描述。我们还为每个工具绑定了一个事件处理函数,在用户单击工具时显示工具的标识符。

结论

CreateToolBar()函数是wxPython中创建工具栏的一种常用方式。使用该函数,我们可以轻松地创建一个带有多个工具的工具栏。将其与wx.EVT_TOOL事件一起使用,可以使用户轻松地与工具栏中的不同工具进行交互。关于如何使用该函数,我在本文中进行了详细的讨论。