11 QComBox和QPlainTextEdit

QPlainTextEdit的文字内容以QTextDocument类型储存,函数documenti返回这个文档对象的指针。

QTextDocument是内存中的文本对象,以文本块的方式储存,每个段落以换行符结束。

QTextDocument提供一些函数实现对文本内容的存取。

- int blockCount(),返回文本块个数

- QTextBlock finBlockByNumber(int)读取一个文本块,序号从0开始。

实验demo

 

### QComboBox 使用指南 `QComboBox` 是 Qt 框架中一个非常实用的 UI 组件,常用于提供下拉列表选择功能。它支持多种布局方式,并且能够以紧凑的方式节省界面空间[^1]。 #### 基本用法 创建 `QComboBox` 实例后,可以通过 `addItem()` 方法添加条目: ```cpp QComboBox comboBox; comboBox.addItem("Option 1"); comboBox.addItem("Option 2"); ``` 也可以通过 `addItems()` 添加多个条目: ```cpp QStringList options = {"Option 1", "Option 2", "Option 3"}; comboBox.addItems(options); ``` #### 获取当前选中的值 可以通过 `currentText()` 方法获取当前选中的文本内容: ```cpp QString selectedOption = comboBox.currentText(); ``` #### 设置默认选项 可以使用 `setCurrentIndex()` 或 `setCurrentText()` 来设置默认选中的项: ```cpp comboBox.setCurrentIndex(0); // 设置第一个选项为默认 // 或者 comboBox.setCurrentText("Option 2"); // 根据文本设置默认选项 ``` #### 连接信号与槽函数 当用户选择不同的选项时,`QComboBox` 会发出 `currentIndexChanged(int index)` 或 `currentTextChanged(const QString &text)` 信号,可以将这些信号连接到相应的槽函数: ```cpp connect(&comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MyClass::handleSelectionChange); ``` 在槽函数中处理变化: ```cpp void MyClass::handleSelectionChange(int index) { qDebug() << "Selected index:" << index; } ``` #### 自定义模型 如果需要更复杂的数据显示,可以使用 `setModel()` 方法来绑定自定义的数据模型。例如,使用 `QStringListModel`: ```cpp QStringListModel *model = new QStringListModel({"Custom Option 1", "Custom Option 2"}); comboBox.setModel(model); ``` #### 数据验证与输入限制 为了确保用户只能从预设的选项中选择,可以启用 `setEditable(false)` 禁止手动输入: ```cpp comboBox.setEditable(false); ``` 若允许编辑但需验证输入,则可以结合 `QValidator` 使用: ```cpp QRegExp regExp("[A-Za-z]+"); QRegExpValidator *validator = new QRegExpValidator(regExp, this); comboBox.setEditable(true); comboBox.lineEdit()->setValidator(validator); ``` #### 性能优化 对于大量数据的情况,考虑使用 `QAbstractItemModel` 的派生类作为模型,这样可以在需要时动态加载数据,避免一次性加载过多数据导致性能下降。 #### 跨平台兼容性 Qt 的一大优势在于其跨平台能力,`QComboBox` 在不同平台上都能保持一致的行为外观,这得益于 Qt 对底层图形系统的抽象处理[^2]。 #### 实际应用场景 `QComboBox` 广泛应用于各种桌面应用程序中,比如配置工具、表单填写等场景。一个具体的例子是基于 C++ Qt 框架开发的地铁换乘可视化查询系统,在该系统中 `QComboBox` 可能被用来让用户选择起点站或终点站[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值