JUCE类库AlertWindow消息窗详解

先了解一下AlertWindow的父类ToplevelWindow顶级窗口类。该类继承自Component类,有多个派生类。其派生类是开发一款GUI程序中最重要的组成部分,比如AlertWindow、DocumentWindow、DialogWindow等。

ToplevelWindow

图 4 6 ToplevelWindow顶级窗口类的继承层次

ToplevelWindow类的静态函数
 getNumTopLevelWindows () 返回当前正在使用的顶级窗口的数量
 getTopLevelWindow () 基于给出的索引值返回当前某个顶级窗口
 getActiveTopLevelWindow () 返回当前处于激活状态的顶级窗口(有且仅有一个)

ToplevelWindow类的成员函数:(略)

AlertWindow消息窗是ToplevelWindow的直接派生类之一,该类不仅仅用来显示一条消息,还可拥有多个按钮、供输入信息的文本框、文本块、组合框、进度条、自定义组件等GUI控件,从而成为一个功能完善的交互式对话框。AlertWindow的静态函数可在不实例化本类对象的前提下直接弹出模态消息窗,并返回退出值(用户点击不同的按钮关闭窗口后将返回不同的退出值)。

AlertWindow类的重要静态函数(函数名最后有Async者不阻塞后续代码):
 showMessageBox () 单按钮消息窗,无返回值
 showMessageBoxAsync () 单按钮消息窗,无返回值
 showOkCancelBox () 双按钮消息窗,点击确定返回true,点击取消返回false
 showYesNoCancelBox () 三按钮消息窗,返回值:0, 1, 2
 showNativeDialogBox () 显示操作系统默认的消息窗,最多有两个按钮,返回bool值

AlertWindow窗口图标类型的枚举定义
 AlertWindow::NoIcon 无图标
 AlertWindow::QuestionIcon 问号(?)
 AlertWindow:: WarningIcon 警告(!)
 AlertWindow:: InfoIcon 提示(i)

AlertWindow类的重要成员函数
 getAlertType () 返回此窗口所使用的图标类型
 setMessage () 设置对话框所显示的消息
 addButton () 添加按钮
 triggerButtonClick () 触发某个按钮
 addTextEditor () 添加一个文本编辑器,以供输入内容
 getTextEditorContents () 返回文本框的内容
 getTextEditor () 返回所添加的文本框对象
 addComboBox () 添加一个组合框
 getComboBoxComponent () 返回所添加的组合框
 addTextBlock () 添加一个文本块
 addProgressBarComponent () 添加一个进度条组件
 addCustomComponent () 添加一个自定义组件
 getNumCustomComponents () 返回当前添加的自定义组件的数量
 getCustomComponent () 基于给出的索引返回已经添加的某个组件
 removeCustomComponent () 基于给出的索引移除已经添加的某个组件

消息窗的使用技巧、异步显示方法及详细示例:(juce-cn.com网站发布,略)

关于弹出消息窗,NativeMessageBox类也可实现相同功能。该类和AlertWindow类的区别:NativeMessageBox弹出操作系统原生的消息窗,而AlertWindow则弹出JUCE原生的消息窗。这两个类用于弹出消息窗的静态函数均一致,但参数略有不同。本机消息窗,不可指定按钮所显示的文本。注意:Linux下无法使用本机消息窗。