wx.ToolBar 中奇怪的 wx.CheckBox 绘图

发布于 2024-12-18 17:32:16 字数 1351 浏览 1 评论 0原文

这是我的工具栏的代码:

JS_TOOLBAR_BUTTON = 0
JS_TOOLBAR_SEPARATOR = 1
JS_TOOLBAR_MONTHCONTROL = 2
JS_TOOLBAR_CHECKBOX = 3

def createToolbar(self):
    self.tb = wx.ToolBar(self, style=wx.TB_HORIZONTAL|wx.NO_BORDER|wx.TB_FLAT) 
    self.tb.SetToolBitmapSize((16,16))         
    id=0 
    for toolType,hint,pic,proc in self.toolbarData():
        if toolType==JS_TOOLBAR_BUTTON: 
            id += 10
            self.tb.AddLabelTool(id, hint, pic.GetBitmap(), shortHelp=hint)
            self.Bind(wx.EVT_TOOL, proc, id=id)
            self.Bind(wx.EVT_TOOL_RCLICKED, proc, id=id)  
        elif toolType==JS_TOOLBAR_SEPARATOR: 
            self.tb.AddSeparator()
        elif toolType==JS_TOOLBAR_CHECKBOX:        
            self.tb.AddControl(wx.CheckBox(self.tb, label=hint))

    self.tb.Realize()       
def toolbarData(self):
    return((JS_TOOLBAR_BUTTON, u"Добавить работника", pictures.add_staff, self.grid.on_insert),                 
           (JS_TOOLBAR_BUTTON, u"Удалить работника",  pictures.del_staff, self.grid.on_delete),        
           (JS_TOOLBAR_SEPARATOR, None,  None, None),
           (JS_TOOLBAR_CHECKBOX, u"Показывать только работающих", None, self.grid.on_delete))

结果我在复选框之外有奇怪的角:

Image

Python 2.7, wx-2.9 .2、Win7x64下

Here is a code of my toolbar:

JS_TOOLBAR_BUTTON = 0
JS_TOOLBAR_SEPARATOR = 1
JS_TOOLBAR_MONTHCONTROL = 2
JS_TOOLBAR_CHECKBOX = 3

def createToolbar(self):
    self.tb = wx.ToolBar(self, style=wx.TB_HORIZONTAL|wx.NO_BORDER|wx.TB_FLAT) 
    self.tb.SetToolBitmapSize((16,16))         
    id=0 
    for toolType,hint,pic,proc in self.toolbarData():
        if toolType==JS_TOOLBAR_BUTTON: 
            id += 10
            self.tb.AddLabelTool(id, hint, pic.GetBitmap(), shortHelp=hint)
            self.Bind(wx.EVT_TOOL, proc, id=id)
            self.Bind(wx.EVT_TOOL_RCLICKED, proc, id=id)  
        elif toolType==JS_TOOLBAR_SEPARATOR: 
            self.tb.AddSeparator()
        elif toolType==JS_TOOLBAR_CHECKBOX:        
            self.tb.AddControl(wx.CheckBox(self.tb, label=hint))

    self.tb.Realize()       
def toolbarData(self):
    return((JS_TOOLBAR_BUTTON, u"Добавить работника", pictures.add_staff, self.grid.on_insert),                 
           (JS_TOOLBAR_BUTTON, u"Удалить работника",  pictures.del_staff, self.grid.on_delete),        
           (JS_TOOLBAR_SEPARATOR, None,  None, None),
           (JS_TOOLBAR_CHECKBOX, u"Показывать только работающих", None, self.grid.on_delete))

As a result I have strange horns outside the checkbox:

Image

Python 2.7, wx-2.9.2, under Win7x64

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦回梦里 2024-12-25 17:32:16

我的解决方案是使用 CheckLabelTool 而不是 CheckBox:

在此处输入图像描述

self.tb.AddCheckLabelTool(id, hint, pic.GetBitmap(), shortHelp=hint)                
self.tb.ToggleTool(id, self.grid.Table.actualOnly) 
self.Bind(wx.EVT_TOOL, proc, id=id) 

The solution for me is to use CheckLabelTool instead of CheckBox:

enter image description here

self.tb.AddCheckLabelTool(id, hint, pic.GetBitmap(), shortHelp=hint)                
self.tb.ToggleTool(id, self.grid.Table.actualOnly) 
self.Bind(wx.EVT_TOOL, proc, id=id) 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文