38 QComboBox和QPlainTextEdit

38.1 QComboBox

QComboBox是表示组合框的类,它提供一个下拉列表供用户选择,同时也带有一个单行编辑框,以接受用户输入的文本。QComboBox下拉列表中的每个列表项,还可以与一个QVariant类型的用户数据相关联。

38.1.1 添加删除列表项

组合框中的列表项可以在Qt设计师中添加或删除,也可以通过QComboBox类的特定方法在代码中添加或删除。每个列表项既可以带有图标,也可以关联用户数据:

38.1.2 获取列表项

QComboBox不提供获取整个列表的功能,但可以获取当前选择项,或通过索引获取指定项:

38.1.3 选择改变信号

当用户在组合框的下拉列表中改变选择项时,QComboBox会发射如下两个信号:

通过定义与之相连的槽函数,可以针对选择项的变化,执行相应的业务处理。

38.1.4 是否可编辑

QComboBox提供如下方法获取和设置组合框的可编辑属性:

38.2 QPlainTextEdit

QPlaintTextEdit是表示纯文本编辑框的类,可以显示和编辑多行纯文本内容,同时提供默认的右键菜单功能。

38.2.1 添加删除文本

QPlainTextEdit类提供如下方法用于在代码中添加和删除编辑框中的文本:

38.2.2 获取文本

可以一次性获取编辑框中的文本整体:

也可以逐行获取编辑框中的多行文本:

38.2.3 是否只读

QPlainTextEdit提供如下方法获取和设置编辑框的只读属性:

38.2.4 默认右键菜单与槽函数

QPlainTextEdit提供默认的右键菜单,并为其中的每个菜单项定义了功能完备的槽函数:

38.3 案例

38.3.1 创建项目

通过QtCreator,在C:\Users\Minwei\Projects\Qt路径下,创建名为ComboBox的项目。

38.3.2 添加资源

C:\Users\Minwei\Projects\Qt\ComboBox\ComboBox.qrc:

38.3.3 设计界面

C:\Users\Minwei\Projects\Qt\ComboBox\comboboxdialog.ui:

38.3.4 实现功能

C:\Users\Minwei\Projects\Qt\ComboBox\comboboxdialog.h:

C:\Users\Minwei\Projects\Qt\ComboBox\comboboxdialog.cpp:

38.3.5 测试验证

运行效果如图所示: