wxPython 如何创建多个工具栏
在GUI编程领域中,wxPython已经成为一个强大而多功能的库,它使开发人员能够轻松地创建令人惊叹的图形用户界面。在众多必要的组件中,工具栏在为用户提供快速访问各种功能方面起着重要作用。在本教程中,我们将深入介绍使用wxPython创建多个工具栏的技巧。最后,您将掌握使用多个工具栏增强GUI应用程序的知识,从而提供更好的用户体验。
安装
用于GUI原型设计的wxPython库
作为C++库wxWidgets的封装,wxPython允许Python开发人员充分利用这个成熟和经过实战考验的框架的强大功能。它在各个平台上都具有本地化的外观和感觉,包括Windows、macOS和Linux。通过使用wxPython,您可以设计出外观精美、反应迅速的桌面应用程序,并具有各种小部件,例如按钮、文本控件和工具栏。
pip install wxPython
步骤
- 导入wxPython库。
 - 
创建一个继承自wx.Frame的自定义窗口类。
 - 
通过调用父类构造函数并将窗口标题作为参数来初始化自定义窗口类。
 - 
在窗口中创建一个面板来容纳小部件。
 - 
使用CreateToolBar()方法为窗口创建一个工具栏。
 - 
使用AddTool()方法将三个工具添加到工具栏中:
- “打开”对应的图标为”icon_open.bmp”。
 - 
“保存”对应的图标为”icon_save.bmp”。
 - 
“高亮”对应的图标为”icon_highlight.bmp”(一个切换按钮)。
 
 - 
使用AddControl()方法将一个下拉框(ComboBox)作为第4个工具添加到工具栏中,选项有”Selection 1″和”Selection 2″。
 - 
初始化工具栏以显示它。
 - 
使用Centre()方法将窗口居中显示在屏幕上。
 - 
使用Show()方法显示自定义窗口。
 - 
使用wx.App()创建wxPython应用程序。
 - 
创建并显示自定义窗口对象。
 - 
运行主事件循环,使GUI显示在屏幕上。
 
示例
下载并将这些图标保存在与脚本相同的文件中,否则会遇到错误。

icon_save.bmp

icon_open.bmp

icon_highlight.bmp
import wx
class CustomWindow(wx.Frame):
   def __init__(self, title):
      # Initialize the parent class constructor
      super().__init__(parent=None, title=title)
      self.panel = wx.Panel(self)
      # Toolbar for the window
      toolbar = self.CreateToolBar()
      # Tool 1 
      open_tool_id = wx.ID_ANY
      open_tool_label = "Open"
      open_tool_bitmap = wx.Bitmap("icon_open.bmp")
      toolbar.AddTool(open_tool_id, open_tool_label, open_tool_bitmap)
      # Tool 2
      save_tool_id = wx.ID_ANY
      save_tool_label = "Save"
      save_tool_bitmap = wx.Bitmap("icon_save.bmp")
      toolbar.AddTool(save_tool_id, save_tool_label, save_tool_bitmap)
      # Tool 3
      highlight_tool_id = wx.ID_ANY
      highlight_tool_label = "Highlight"
      highlight_tool_bitmap = wx.Bitmap("icon_highlight.bmp")
      width, height = 24, 24
      toolbar.AddCheckTool(highlight_tool_id, highlight_tool_label, highlight_tool_bitmap)
      # Combo Box (Dropdown) toolbar
      combo = wx.ComboBox(toolbar, choices=["Selection 1", "Selection 2"])
      toolbar.AddControl(combo)
      toolbar.Realize()
      self.Centre()
      self.Show()
app = wx.App()
# Show the custom window
custom_window = CustomWindow("TutorialsPoint wxPython MultiToolbar")
app.MainLoop()
输出

解释
- 首先,导入wxPython库以使用其功能。
 - 
定义了一个名为CustomWindow的自定义窗口类,该类继承自wx.Frame类。
 - 
在CustomWindow类的init构造函数内部:
 - 
super().init(parent=None, title=title)的行用给定的标题初始化父类构造函数(wx.Frame),创建主窗口。
 - 
名为self的面板。该面板作为框架的子组件创建。面板用于在wxPython应用程序中保存小部件(控件)。
 - 
使用CreateToolBar()方法为窗口创建了一个工具栏。
 - 
使用AddTool()方法将三个工具添加到工具栏中:
- 工具1具有“打开”标签和“icon open.bmp”图标。
 - 
第二个工具具有“保存”标签和“icon save.bmp”图标。
 - 
工具3的“高亮”标签和“icon highlight.bmp”图标,它被设计为可审核的工具(切换按钮)。
 
 - 
使用AddControl()方法,将一个组合框(下拉框)作为工具4添加到菜单栏中。组合框中存在的选项是“Selection 1”和“Selection 2”。
 
应用
构建具有各种功能的复杂应用程序需要工具栏。有时一个工具栏是不够的。将功能分离到多个工具栏中可以简化用户体验,分割后端逻辑,并使应用程序易于使用和导航。对于各种生产力工具(如文本编辑器,音乐播放器等)也是如此。例如 MS Word、Excel、Jira、音乐播放器等都有多个工具栏。每个工具栏都有一个下拉框,其中包含与该特定工具栏相关的选项。
结论
本教程演示了如何在wxPython中构建多个工具栏。通过展示的代码,您可以增强GUI应用程序的可用性。按照安装步骤并理解语法,您可以将这些工具栏集成到您的项目中。为不同的功能分开工具栏可以提高可用性和用户体验。wxPython是创建复杂且吸引人的GUI应用程序的可靠伴侣。
极客笔记