8
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
工具栏图标和路径要替换成自己的。例如:'res/open_mso.png'。
import wx
import wx.lib.agw.aui as aui
class SimpleToolbarFrame(wx.Frame):
"""创建一个包含可拖动工具栏的主窗口类"""
def __init__(self, parent):
super().__init__(parent, title='可拖动工具栏示例', size=(640, 480))
self.SetBackgroundColour((224, 224, 224))
self._init_ui()
self.Center()
def _init_ui(self):
"""初始化用户界面"""
toolbar = self._create_toolbar()
self._mgr = aui.AuiManager()
self._mgr.SetManagedWindow(self)
# 将工具栏添加到AUI管理器中,并允许浮动(即拖动)
self._mgr.AddPane(toolbar,
aui.AuiPaneInfo().Name('ToolBar').Caption('工具条').ToolbarPane().Top().Row(0).Position(0).Floatable(True)
)
self._mgr.Update()
def _create_toolbar(self):
"""创建工具栏"""
bmp_open = wx.Bitmap('res/open_mso.png', wx.BITMAP_TYPE_ANY)
bmp_save = wx.Bitmap('res/save_mso.png', wx.BITMAP_TYPE_ANY)
tb = aui.AuiToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize, agwStyle=aui.AUI_TB_TEXT)
tb.SetToolBitmapSize(wx.Size(16, 16))
tb.AddSimpleTool(wx.ID_OPEN, '打开', bmp_open, '打开文件')
tb.AddSimpleTool(wx.ID_SAVE, '保存', bmp_save, '保存文件')
tb.AddSeparator()
tb.Realize()
return tb
if __name__ == '__main__':
app = wx.App()
frame = SimpleToolbarFrame(None)
frame.Show()
app.MainLoop()
这段代码定义了一个基于 wxPython 的应用程序,它创建了一个包含可拖动工具栏的主窗口。以下是代码的主要组成部分:
导入必要的模块:
import wx
import wx.lib.agw.aui as aui
导入了 wxPython 库以及 aui 模块,用于实现可拖动的工具栏。
定义窗口类 SimpleToolbarFrame:
class SimpleToolbarFrame(wx.Frame):
继承自 wx.Frame,用于创建一个带有工具栏的窗口。
初始化方法 _init_ui:
def _init_ui(self):
初始化用户界面,包括创建工具栏并将其添加到 AUI 管理器中,使其可以被拖动。
创建工具栏的方法 _create_toolbar:
def _create_toolbar(self):
创建一个工具栏对象,并添加了“打开”和“保存”两个按钮。这里使用了自定义图标文件 open_mso.png 和 save_mso.png。
主入口检查:
if __name__ == '__main__':
app = wx.App()
frame = SimpleToolbarFrame(None)
frame.Show()
app.MainLoop()
检查是否直接运行此脚本,并启动应用程序的主循环。
窗口初始化:
创建一个窗口实例 SimpleToolbarFrame。
设置窗口标题为“可拖动工具栏示例”,大小为 640x480 像素。
设置背景颜色为浅灰色 (224, 224, 224)。
调用 _init_ui 方法初始化用户界面。
初始化用户界面:
调用 _create_toolbar 方法创建工具栏。
创建 AUI 管理器实例,并设置其管理的窗口为当前窗口。
将工具栏添加到 AUI 管理器中,并允许浮动(即拖动)。
创建工具栏:
加载自定义图标文件 open_mso.png 和 save_mso.png。
创建工具栏对象,并设置工具图标大小为 16x16 像素。
添加“打开”和“保存”两个按钮,并添加一个分隔符。
调用 Realize 方法使工具栏生效。
启动应用程序:
创建 wx.App 实例。
创建 SimpleToolbarFrame 实例,并显示窗口。
启动应用程序的主循环。
通过以上步骤,这个程序创建了一个具有基本功能的图形界面应用,其中包含一个可自由拖动的工具栏。