查看源代码 wxStatusBar (wx v2.4.3)
状态栏是一个狭长的窗口,可以放置在框架的底部,以提供少量的状态信息。
它可以包含一个或多个字段,其中一个或多个字段可以根据窗口的大小而改变长度。
wxStatusBar
还为每个字段维护一个独立的状态文本堆栈(请参阅 pushStatusText/3
和 popStatusText/2
)。
请注意,在 wxStatusBar
上下文中,术语 pane
和 field
是同义词。
样式
此类支持以下样式
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().
-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().
-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().
-spec popStatusText(This, [Option]) -> ok when This :: wxStatusBar(), Option :: {number, integer()}.
将文本恢复为上次调用 pushStatusText/3
之前的值。
请注意,如果在此期间调用了 setStatusText/3
,则 popStatusText/2
不会更改文本,即它不会覆盖对状态文本的显式更改,而只会恢复保存的文本(如果自那时起没有更改)。
请参阅:pushStatusText/3
-spec pushStatusText(This, String) -> ok when This :: wxStatusBar(), String :: unicode:chardata().
-spec pushStatusText(This, String, [Option]) -> ok when This :: wxStatusBar(), String :: unicode:chardata(), Option :: {number, integer()}.
将当前字段文本保存在每个字段的堆栈中,并将字段文本设置为作为参数传递的字符串。
请参阅:popStatusText/2
-spec setFieldsCount(This, Number) -> ok when This :: wxStatusBar(), Number :: integer().
-spec setFieldsCount(This, Number, [Option]) -> ok when This :: wxStatusBar(), Number :: integer(), Option :: {widths, [integer()]}.
设置字段数,并可选择设置字段宽度。
-spec setMinHeight(This, Height) -> ok when This :: wxStatusBar(), Height :: integer().
设置状态栏的最小可能高度。
实际高度可能大于此处指定的高度,具体取决于状态栏使用的字体大小。
-spec setStatusStyles(This, Styles) -> ok when This :: wxStatusBar(), Styles :: [integer()].
设置状态行中字段的样式,这可以使字段显示为平面或凸起,而不是标准的凹陷 3D 边框。
-spec setStatusText(This, Text) -> ok when This :: wxStatusBar(), Text :: unicode:chardata().
-spec setStatusText(This, Text, [Option]) -> ok when This :: wxStatusBar(), Text :: unicode:chardata(), Option :: {number, integer()}.
为第 i
个字段设置状态文本。
给定文本将替换当前文本。 状态栏的显示会立即更新,因此无需在调用此函数后调用 wxWindow:update/1
。
请注意,如果之前调用了 pushStatusText/3
,则新文本也将替换上次保存的值,以确保下次调用 popStatusText/2
时不会恢复旧值(该值已被对此函数的调用覆盖)。
参见
-spec setStatusWidths(This, Widths_field) -> ok when This :: wxStatusBar(), Widths_field :: [integer()].
设置状态行中字段的宽度。
字段有两种类型:固定
宽度字段和 可变
宽度字段。 对于固定宽度字段,应以像素为单位指定其(恒定)宽度。 对于可变宽度字段,请指定一个负数,该负数指示字段应如何扩展:所有可变宽度字段剩余的空间会根据此数的绝对值进行分配。 宽度为 -2 的可变宽度字段获得的剩余空间是宽度为 -1 的字段的两倍,依此类推。
例如,要在状态栏的右侧创建一个宽度为 100 的固定宽度字段,以及另外两个分别获得剩余空间 66% 和 33% 的字段,应使用包含 -2、-1 和 100 的数组。
备注:可变字段的宽度是从所有字段的总宽度中计算得出的,减去非可变字段的宽度之和,再除以可变字段的数量。
参见