qt QTextEdit详解
QTextEdit是Qt框架中的一个文本编辑控件类,它提供了丰富的功能用于编辑和显示纯文本以及富文本。
重要方法
setPlainText(const QString &text)
:设置纯文本内容。toPlainText()
:获取纯文本内容。setHtml(const QString &text)
:设置HTML格式的文本内容。toHtml()
:获取HTML格式的文本内容。setMarkdown(const QString &markdown)
:设置Markdown格式的文本内容。toMarkdown()
:获取Markdown格式的文本内容。setReadOnly(bool b)
:设置QTextEdit是否为只读模式。在只读模式下,用户无法编辑文本内容。
setTextInteractionFlags(Qt::TextInteractionFlags flags)
:设置QTextEdit控件如何与用户输入交互。例如,是否允许通过鼠标或键盘选择文本、是否允许访问链接等。
setAutoFormatting(QTextEdit::AutoFormatting features)
:设置QTextEdit的自动格式化功能。例如,自动格式化项目符号列表、自动格式化所有内容等。
setTabChangesFocus(bool b)
:设置是否按下Tab键切换文本框焦点。setTabStopDistance(qreal distance)
:设置按下Tab键时插入制表符的间隔距离。setLineWrapColumnOrWidth(int w)
:设置文本自动换行的列数或宽度。setLineWrapMode(QTextOption::WrapMode mode)
:设置QTextEdit编辑器中的换行模式。setUndoRedoEnabled(bool b)
:启用或禁用撤销和重做功能。setPlaceholderText(const QString &placeholderText)
:设置占位符文本。- append(const QString &text):在当前文本末尾添加文本。
- clear():清除编辑器内容。
- undo()、redo():撤销和重做操作。
- cut()、copy()、paste():剪切、复制和粘贴操作。
重要信号
textChanged()
:当文本内容发生变化时发出。selectionChanged()
:当选中的文本发生变化时发出。cursorPositionChanged()
:当光标位置发生变化时发出。undoAvailable(bool)
:当是否可撤销的状态发生改变时发出。redoAvailable(bool)
:当是否可反撤销的状态发生改变时发出。copyAvailable(bool)
:当是否有文本可复制的状态发生改变时发出。
#include <QApplication>
#include <QWidget>
#include <QTextEdit>
#include <QVBoxLayout>
#include <QDebug>
class MyWidget : public QWidget {
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent) {
QVBoxLayout *layout = new QVBoxLayout(this);
QTextEdit *textEdit = new QTextEdit(this);
textEdit->setPlainText("Hello, QTextEdit!");
textEdit->setReadOnly(false);
// 连接信号和槽
connect(textEdit, &QTextEdit::textChanged, this, &MyWidget::onTextChanged);
connect(textEdit, &QTextEdit::cursorPositionChanged, this, &MyWidget::onCursorPositionChanged);
layout->addWidget(textEdit);
}
private slots:
void onTextChanged() {
QTextEdit *textEdit = qobject_cast<QTextEdit *>(sender());
qDebug() << "Text changed:" << textEdit->toPlainText();
}
void onCursorPositionChanged() {
QTextEdit *textEdit = qobject_cast<QTextEdit *>(sender());
QTextCursor cursor = textEdit->textCursor();
qDebug() << "Cursor position changed to:" << cursor.position();
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
#include "main.moc"
觉得有帮助的话,打赏一下呗。。