文章目录
- 1. QTextEdit
- 2.1 介绍
- 2.2 实例使用 - 槽函数的使用
- 2. QComboBox
- 2.1 介绍
- 2.2 实例使用
- 案例1:设置下拉框项目组件的方式
- 案例2:读取本机文件内容 到QComboBox
1. QTextEdit
2.1 介绍
我们可以查阅官方文档,对QTextEdit
有更深的了解,这里直接进行总结:
QTextEdit 是 Qt 框架中用于显示和编辑富文本内容的组件。
QTextEdit
有以下核心属性:
属性 | 描述 |
---|---|
document | QTextEdit 中的文本内容存储在一个 QTextDocument 对象中。 |
plainText | 获取或设置 QTextEdit 中的纯文本内容。 |
textCursor | 返回当前 QTextEdit 中的光标位置。 |
acceptRichText | 设置 QTextEdit 是否接受富文本格式的输入。 |
readOnly | 设置 QTextEdit 是否为只读状态。 |
lineWrapMode | 设置 QTextEdit 的文本换行模式。 |
alignment | 设置 QTextEdit 中文本的对齐方式。 |
tabStopWidth | 设置 QTextEdit 中制表符的宽度。 |
2.2 实例使用 - 槽函数的使用
下面我们根据QTextEdit 进行简单的使用,测试其槽函数👇
- 首先在图形化界面 创建一个
Text Edit
控件
- 利用转到槽功能,对该TextEdit控件的部分槽函数进行编写:
// 检测文本内容变化
void Widget::on_textEdit_textChanged()
{qDebug() << "textChanged(): " << ui->textEdit->toPlainText(); // 同理可以用tohtml; toMarkDown 获取不同形式的文本
}// 选择的文本内容的变化
void Widget::on_textEdit_selectionChanged()
{QTextCursor cursor = ui->textEdit->textCursor(); // 获取文本光标对象qDebug() << "selectionChanged: " << cursor.selectedText(); // 输出光标选中内容
}// 光标位置的变化
void Widget::on_textEdit_cursorPositionChanged()
{QTextCursor cursor = ui->textEdit->textCursor();qDebug() << "cursorPositionChanged: " << cursor.position(); // 实时输出光标位置
}// 检测撤销操作
void Widget::on_textEdit_undoAvailable(bool b)
{qDebug() << "undoAvailable: " << b;
}// 检测覆写操作
void Widget::on_textEdit_redoAvailable(bool b)
{qDebug() << "redoAvailable: " << b;
}// 检测复制操作
void Widget::on_textEdit_copyAvailable(bool b)
{qDebug() << "copyAvailable: " << b;
}
执行上面的代码,当我们在 文本框中进行相关操作时,都会有相应的信息输出到终端上,这里不再演示。
2. QComboBox
2.1 介绍
我们可以查阅官方文档,对QComboBox
有更深的了解,这里直接进行总结:
QComboBox 是 Qt 框架中提供的一个组合框控件,用于在下拉列表中显示一组选项,并允许用户从中选择一个选项。
QComboBox有以下核心属性:
核心属性 | 类型 | 描述 |
---|---|---|
currentIndex | int | 当前选中项的索引 |
currentText | QString | 当前选中项的文本 |
count | int | 下拉列表中选项的总数 |
editable | bool | 下拉列表是否可编辑 |
sizeAdjustPolicy | enum | 下拉列表的尺寸调整策略 |
model | QAbstractItemModel* | QComboBox 使用的数据模型 |
2.2 实例使用
案例1:设置下拉框项目组件的方式
在QtCreator下,一般设置下拉框有两种方式:
- 代码设置
- 图形化界面直接设置
我们首先介绍 ②在Designer界面直接设置:
- 直接右击ComboBox 控件,点击编辑项目:
- 在编辑项目界面可以直接进行进行项目的删改设置等:
对于 ① 用代码设置:
- 比如在widget.cpp 的构造函数中直接编写:
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->comboBox->addItem("项目1");ui->comboBox->addItem("项目2");ui->comboBox->addItem("项目3");
}
效果展示:
案例2:读取本机文件内容 到QComboBox
- 我们在本地路径下创建一个文档,输入几行内容:
- 随后利用C++中的iostream进行读取内容:
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 需要读取文件中的每一行,作为ComboBox的项目std::ifstream file("D:\\QComboBox_test.txt");if(!file.is_open()){qDebug() << "文件打开失败";return;}// 按行读取内容:std::string line;while(std::getline(file, line)){// 将内容转为QString再存入到ComboBox项目中ui->comboBox->addItem(QString::fromStdString(line));}// 关闭文件file.close();
}
- 此时执行代码,可以正确读取内容。
效果展示: