8
社区成员




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):
"""创建工具栏"""
# 使用wxPython内置图标
bmp_open = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, (16, 16))
bmp_save = wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR, (16, 16))
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):
创建一个工具栏对象,并添加了“打开”和“保存”两个按钮。
主入口检查:
if __name__ == '__main__':
app = wx.App()
frame = SimpleToolbarFrame(None)
frame.Show()
app.MainLoop()
检查是否直接运行此脚本,并启动应用程序的主循环。
通过以上步骤,这个程序创建了一个具有基本功能的图形界面应用,其中包含一个可自由拖动的工具栏。