工具栏是显示位图式按钮行的控制条,位图式按钮用来执行命令。工具栏按钮相当于选择菜单项;如果某个菜单项具有和工具栏按钮相同的ID,那么使用工具栏按钮将会调用映射到该菜单项的同一个处理程序,工具栏的项就是常用菜单栏项的快捷键。在wxPython实现工具栏,用Frame的方法CreateToolBar()生成ToolBar,接着添加wx.Bitmap等组件就好。
程序清单:toobar.py
import wx
import platform
import os
# 继承Frame
class Toolbars(wx.Frame):
def __init__(self, *args, **kwargs):
super(Toolbars, self).__init__(*args, **kwargs)
# 初始化窗口UI
self.init_ui()
def init_ui(self):
# 创建工具栏
toolbar = self.CreateToolBar()
toolbar.AddTool(wx.ID_COPY, "复制", wx.Bitmap(self.getPath() + "copy.png"))
toolbar.AddTool(wx.ID_PASTE, "粘贴", wx.Bitmap(self.getPath() + "paste.png"))
toolbar.AddTool(wx.ID_EXIT, "退出", wx.Bitmap(self.getPath() + "exit.png"))
toolbar.Realize()
self.Bind(wx.EVT_TOOL, self.close, id=wx.ID_EXIT)
self.SetSize((900, 500))
self.SetTitle("实现工具栏功能")
self.Centre()
self.Show(True)
# 获取文件夹路径
def getPath(self):
# Windows或Ubuntu
path = "\\"
# macOS系统的路径
if platform.system() == "Darwin":
path = "/"
# 当前文件夹路径
path = os.path.dirname(os.path.abspath(__file__)) + path
return path
def close(self, e):
print("退出窗口")
self.Close()
def main():
app = wx.App(False)
Toolbars(None)
app.MainLoop()
if __name__ == '__main__':
main()
运行程序之后,会弹出屏幕居中的窗口:
下面讲解一下核心代码。
用Frame的CreateToolBar()方法生成Toolbar对象,用AddTool(toolId, label, bitmap,shortHelp=EmptyString, kind=ITEM_NORMAL)方法添加组件,toolId参数为ID,label为工具的标签,bitmap为工具项图标,shortHelp是备注信息,kind的值为wx.ITEM_CHECK时,为复选工具项,为wx.ITEM_RADIO时,为单选工具项,默认为wx. ITEM_NORMAL。
好了,工具栏的内容就说到这了,关注我,下一节更精彩。
码字不易,你的关注和转发是对我最大的鼓励,谢谢!
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!