wxPython:如何创建具有平面外观(无边框边框)的复选框。

wxPython: How to create a checkbox that has a flat look (bezel-less border).

我正在开发一个带有一些复选框的小应用程序。该应用程序将 运行 在 Windows 7 台机器上 Windows 经典主题集。这意味着所有复选框都将具有边框,如下面的屏幕截图所示:

我想知道是否有办法将复选框设置为没有边框。如果那不可能,是否可以自定义 paint/draw 没有边框的复选框?我找不到例子。谢谢!

这实际上取决于平台 and/or 主题,以及本机小部件是否支持备用视图等。因此,换句话说,对于一般有关自定义原生小部件的 LnF 的问题,答案是 "maybe" 但它可能取决于许多不受 wx 控制的因素。

另一方面,制作自定义控件比大多数人想象的要容易得多。对于复选框之类的东西,你基本上只需要为 EVT_PAINT 提供一个事件处理程序,它使用 wx.PaintDC 绘制小部件的当前状态,以及用于与用户交互的鼠标和键盘事件的处理程序. wx.lib 包中有几个示例,您可以从中获得灵感,例如 wx.lib.stattextwx.lib.buttons.