WxPython——WxFrame的样式

WxFrame的样式

每个wxPython窗口部件都要求一个样式参数。这部分我们将讨论用于wx.Frame的样式。它们中的一些也适用于别的wxPython窗口部件。一些窗口部件也定义了一个SetStyle()方法,让你可以在该窗口部件创建后改变它的样式。所有的你能使用的样式元素都有一个常量标识符(如wx.MINIMIZE_BOX)。要使用多个样式,你可以使用或运算符|。例如,wx.DEFAULT_FRAME_STYLE样式就被定义为如下几个基本样式的组合:

wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.RESIZE_BORDER |wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX

要从一个合成的样式中去掉个别的样式,你可以使用^操作符。例如要创建一个默认样式的窗口,但要求用户不能缩放和改变窗口的尺寸,你可以这样做:

wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX)

如果你不慎使用了&操作符,那么将得到一个没有样式的、无边框图的、不能移动、不能改变尺寸和不能关闭的界面。

wx.Frame的最重要的样式:

  • wx.CAPTION:在框架上增加一个标题栏,它显示该框架的标题属性。
  • wx.CLOSE_BOX:指示系统在框架的标题栏上显示一个关闭框,使用系统默认的位置和样式。
  • wx.DEFAULT_FRAME_STYLE:默认样式。
  • wx.FRAME_SHAPED:用这个样式创建的框架可以使用SetShape()方法去创建一个非矩形的窗口。
  • wx.FRAME_TOOL_WINDOW:通过给框架一个比正常更小的标题栏,使框架看起来像一个工具框窗口。在Windows下,使用这个样式创建的框架不会出现在显示所有打开窗口的任务栏上。
  • wx.MAXIMIZE_BOX:指示系统在框架的标题栏上显示一个最大化框,使用系统默认的位置和样式。
  • wx.MINIMIZE_BOX:指示系统在框架的标题栏上显示一个最小化框,使用系统默认的位置和样式。
  • wx.RESIZE_BORDER:给框架增加一个可以改变尺寸的边框。
  • wx.SIMPLE_BORDER:没有装饰的边框。不能工作在所有平台上。
  • wx.SYSTEM_MENU:增加系统菜单(带有关闭、移动、改变尺寸等功能)和关闭框到这个窗口。在系统菜单中的改变尺寸和关闭功能的有效性依赖于wx.MAXIMIZE_BOX, wx.MINIMIZE_BOX和wx.CLOSE_BOX样式是否被应用。

使用样式

这些样式的使用非常简单,在大多数的控件的属性中都有一个属性叫做style,而前面这些常量名就可以作为这个属性的属性值传入进去,从而使这个控件具有这个常量所对应的样式。比如说我们想要创建一个不允许最大化的窗口,就可以将样式修改成像这样:

wx.Frame.init(self, None, -1, "My Frame Window", (100, 100), (800, 600), style=wx.CAPTION | wx.MINIMIZE_BOX | wx.CLOSE_BOX)

这样创建出来的窗口最大化功能就是被禁用的,同理,如果想要这个窗口禁止最小化,首先要添加标题栏,然后添加关闭按钮样式和最大化按钮样式,但是不要添加最小化按钮样式,就可以禁止窗口最小化。

其中默认样式是最全面的,一般如果要做修改的话,只需要在默认样式里面进行移除样式就可以了。比如同样要实现禁止最大化的效果,可以这样来写:

wx.Frame.init(self, None, -1, "My Frame Window", (100, 100), (800, 600), style = wx.DEFAULT_FRAME_STYLE ^ wx.MAXIMIZE_BOX)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值