查看源代码 wxStatusBar (wx v2.4.3)

状态栏是一个狭长的窗口,可以放置在框架的底部,以提供少量的状态信息。

它可以包含一个或多个字段,其中一个或多个字段可以根据窗口的大小而改变长度。

wxStatusBar 还为每个字段维护一个独立的状态文本堆栈(请参阅 pushStatusText/3popStatusText/2)。

请注意,在 wxStatusBar 上下文中,术语 panefield 是同义词。

样式

此类支持以下样式

  • wxSTB_SIZEGRIP:在状态栏的右侧显示一个抓取手柄,可用于调整父窗口的大小。

  • wxSTB_SHOW_TIPS:为那些由于状态文本不适合窗格宽度而被省略/截断的窗格显示工具提示。 请注意,此样式目前仅在 wxGTK 上有效(使用 GTK+ >= 2.12)。

  • wxSTB_ELLIPSIZE_START:当状态文本宽度超过状态栏窗格的宽度时,用省略号替换状态文本的开头(使用 wxControl::Ellipsize (在 wx 中未实现))。

  • wxSTB_ELLIPSIZE_MIDDLE:当状态文本宽度超过状态栏窗格的宽度时,用省略号替换状态文本的中间(使用 wxControl::Ellipsize (在 wx 中未实现))。

  • wxSTB_ELLIPSIZE_END:当状态文本宽度超过状态栏窗格的宽度时,用省略号替换状态文本的结尾(使用 wxControl::Ellipsize (在 wx 中未实现))。

  • wxSTB_DEFAULT_STYLE:默认样式:包括 wxSTB_SIZEGRIP|wxSTB_SHOW_TIPS|wxSTB_ELLIPSIZE_END|wxFULL_REPAINT_ON_RESIZE

备注:可以在状态栏上创建控件和其他窗口。 从 OnSize() 事件处理程序中定位这些窗口。

备注:请注意,如果没有使用正确的清单指示程序使用通用控件库的第 6 版,则在 Windows 下的状态栏字段中仅会显示字符串的前 127 个字符。 这是这些平台上本机控件的限制。

参见

此类派生自以下类,并且可以使用其函数:

wxWidgets 文档:wxStatusBar

摘要

函数

创建窗口,用于两步构造。

销毁对象

返回字段内部边界矩形的大小和位置。

返回状态栏中的字段数。

返回与状态栏字段关联的字符串。

默认构造函数。

构造函数,创建窗口。

将文本恢复为上次调用 pushStatusText/3 之前的值。

将当前字段文本保存在每个字段的堆栈中,并将字段文本设置为作为参数传递的字符串。

设置字段数,并可选择设置字段宽度。

设置状态栏的最小可能高度。

设置状态行中字段的样式,这可以使字段显示为平面或凸起,而不是标准的凹陷 3D 边框。

为第 i 个字段设置状态文本。

设置状态行中字段的宽度。

类型

-type wxStatusBar() :: wx:wx_object().

函数

-spec create(This, Parent) -> boolean() when This :: wxStatusBar(), Parent :: wxWindow:wxWindow().

等同于 create(This, Parent, [])

-spec create(This, Parent, [Option]) -> boolean()
                when
                    This :: wxStatusBar(),
                    Parent :: wxWindow:wxWindow(),
                    Option :: {winid, integer()} | {style, integer()}.

创建窗口,用于两步构造。

有关详细信息,请参阅 new/2

-spec destroy(This :: wxStatusBar()) -> ok.

销毁对象

-spec getFieldRect(This, I) -> Result
                      when
                          Result ::
                              {Res :: boolean(),
                               Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}},
                          This :: wxStatusBar(),
                          I :: integer().

返回字段内部边界矩形的大小和位置。

返回:如果字段索引有效,则为 true,否则为 false。

请参阅:{X,Y,W,H}

-spec getFieldsCount(This) -> integer() when This :: wxStatusBar().

返回状态栏中的字段数。

-spec getStatusText(This) -> unicode:charlist() when This :: wxStatusBar().

等同于 getStatusText(This, [])

-spec getStatusText(This, [Option]) -> unicode:charlist()
                       when This :: wxStatusBar(), Option :: {number, integer()}.

返回与状态栏字段关联的字符串。

返回:如果字段有效,则返回状态字段字符串,否则返回空字符串。

请参阅:setStatusText/3

-spec new() -> wxStatusBar().

默认构造函数。

-spec new(Parent) -> wxStatusBar() when Parent :: wxWindow:wxWindow().

等同于 new(Parent, [])

-spec new(Parent, [Option]) -> wxStatusBar()
             when Parent :: wxWindow:wxWindow(), Option :: {winid, integer()} | {style, integer()}.

构造函数,创建窗口。

请参阅:create/3

-spec popStatusText(This) -> ok when This :: wxStatusBar().

等同于 popStatusText(This, [])

-spec popStatusText(This, [Option]) -> ok when This :: wxStatusBar(), Option :: {number, integer()}.

将文本恢复为上次调用 pushStatusText/3 之前的值。

请注意,如果在此期间调用了 setStatusText/3,则 popStatusText/2 不会更改文本,即它不会覆盖对状态文本的显式更改,而只会恢复保存的文本(如果自那时起没有更改)。

请参阅:pushStatusText/3

链接到此函数

pushStatusText(This, String)

查看源代码
-spec pushStatusText(This, String) -> ok when This :: wxStatusBar(), String :: unicode:chardata().

等同于 pushStatusText(This, String, [])

-spec pushStatusText(This, String, [Option]) -> ok
                        when
                            This :: wxStatusBar(),
                            String :: unicode:chardata(),
                            Option :: {number, integer()}.

将当前字段文本保存在每个字段的堆栈中,并将字段文本设置为作为参数传递的字符串。

请参阅:popStatusText/2

链接到此函数

setFieldsCount(This, Number)

查看源代码
-spec setFieldsCount(This, Number) -> ok when This :: wxStatusBar(), Number :: integer().

等同于 setFieldsCount(This, Number, [])

-spec setFieldsCount(This, Number, [Option]) -> ok
                        when This :: wxStatusBar(), Number :: integer(), Option :: {widths, [integer()]}.

设置字段数,并可选择设置字段宽度。

链接到此函数

setMinHeight(This, Height)

查看源代码
-spec setMinHeight(This, Height) -> ok when This :: wxStatusBar(), Height :: integer().

设置状态栏的最小可能高度。

实际高度可能大于此处指定的高度,具体取决于状态栏使用的字体大小。

链接到此函数

setStatusStyles(This, Styles)

查看源代码
-spec setStatusStyles(This, Styles) -> ok when This :: wxStatusBar(), Styles :: [integer()].

设置状态行中字段的样式,这可以使字段显示为平面或凸起,而不是标准的凹陷 3D 边框。

链接到此函数

setStatusText(This, Text)

查看源代码
-spec setStatusText(This, Text) -> ok when This :: wxStatusBar(), Text :: unicode:chardata().

等同于 setStatusText(This, Text, [])

-spec setStatusText(This, Text, [Option]) -> ok
                       when
                           This :: wxStatusBar(),
                           Text :: unicode:chardata(),
                           Option :: {number, integer()}.

为第 i 个字段设置状态文本。

给定文本将替换当前文本。 状态栏的显示会立即更新,因此无需在调用此函数后调用 wxWindow:update/1

请注意,如果之前调用了 pushStatusText/3,则新文本也将替换上次保存的值,以确保下次调用 popStatusText/2 时不会恢复旧值(该值已被对此函数的调用覆盖)。

参见

链接到此函数

setStatusWidths(This, Widths_field)

查看源代码
-spec setStatusWidths(This, Widths_field) -> ok when This :: wxStatusBar(), Widths_field :: [integer()].

设置状态行中字段的宽度。

字段有两种类型:固定宽度字段和 可变宽度字段。 对于固定宽度字段,应以像素为单位指定其(恒定)宽度。 对于可变宽度字段,请指定一个负数,该负数指示字段应如何扩展:所有可变宽度字段剩余的空间会根据此数的绝对值进行分配。 宽度为 -2 的可变宽度字段获得的剩余空间是宽度为 -1 的字段的两倍,依此类推。

例如,要在状态栏的右侧创建一个宽度为 100 的固定宽度字段,以及另外两个分别获得剩余空间 66% 和 33% 的字段,应使用包含 -2、-1 和 100 的数组。

备注:可变字段的宽度是从所有字段的总宽度中计算得出的,减去非可变字段的宽度之和,再除以可变字段的数量。

参见