查看源代码 wxProgressDialog (wx v2.4.3)
如果平台支持,此类将提供平台的原生进度对话框,否则它将只是 wxGenericProgressDialog
(在 wx 中未实现)。
此类派生自,并可以使用以下函数:
wxWidgets 文档:wxProgressDialog
概要
类型
-type wxProgressDialog() :: wx:wx_object().
函数
-spec destroy(This :: wxProgressDialog()) -> ok.
销毁对象
-spec new(Title, Message) -> wxProgressDialog() when Title :: unicode:chardata(), Message :: unicode:chardata().
-spec new(Title, Message, [Option]) -> wxProgressDialog() when Title :: unicode:chardata(), Message :: unicode:chardata(), Option :: {maximum, integer()} | {parent, wxWindow:wxWindow()} | {style, integer()}.
-spec resume(This) -> ok when This :: wxProgressDialog().
可用于在用户单击“中止”按钮后继续对话框。
-spec update(This, Value) -> boolean() when This :: wxProgressDialog(), Value :: integer().
-spec update(This, Value, [Option]) -> boolean() when This :: wxProgressDialog(), Value :: integer(), Option :: {newmsg, unicode:chardata()}.
更新对话框,将进度条设置为新值,并在指定新消息时更新消息。
返回 true,除非已按下“取消”按钮。
如果返回 false,应用程序可以立即销毁对话框,或者询问用户确认,如果中止未确认,则可以使用 resume/1
函数恢复对话框。
如果 value
是对话框的最大值,则该函数的行为取决于创建对话框时是否使用了 wxPD_AUTO_HIDE
。如果使用了,则会隐藏对话框,并且该函数立即返回。如果没有使用,则对话框将变为模态对话框,并等待用户将其关闭,这意味着该函数直到发生这种情况才会返回。
请注意,如果 newmsg
比当前显示的消息长,则对话框将自动加宽以适应它。但是,如果新消息比之前的消息短,则对话框不会缩小,以避免在消息经常更改时不断调整大小。为此,并使对话框适合其当前内容,您可以显式调用 wxWindow:fit/1
。但是,此类的本机 MSW 实现确实会在新文本的文本行数少于旧文本的情况下使对话框变短,因此建议保持文本行数恒定,以避免令人不快的对话框大小变化。您可能还希望使创建对话框时指定的初始消息足够宽,以避免稍后必须调整对话框的大小,例如,通过在其后附加一长串不可中断的空格(wxString
(在 wx 中未实现)(L'\u00a0', 100))。