Qt:QLineEdit QTextEdit QPlainTextEdit的区别
2026/8/22 10:14:09 网站建设 项目流程

1.前言

先纠正名称:

QLineEdit(单行输入框)

QTextEdit(富文本编辑器)

QPlainTextEdit(纯文本多行编辑器)

2.定位

控件

用途

文本类型

行数

QLineEdit

单行简短输入:账号、密码、搜索框

纯文本

只能单行

QPlainTextEdit

多行纯文本:日志、代码编辑器、命令输出

纯文本 only

多行,无富文本

QTextEdit

富文本编辑:带字体、颜色、图片、表格、html

富文本(支持 HTML)

多行

3特性

3.1QLineEdit

特点

·强制单行,回车默认不会换行;

·支持掩码输入、密码隐藏、输入校验;

·占用资源极小,适合短字符串;

·没有滚动区域(文本超出会横向滚动);

·信号:textChanged()、returnPressed()

限制

·不能换行、不能显示多行文本、不支持富文本。

适用场景:用户名、手机号、搜索栏、单行参数输入。

3.2QPlainTextEdit

特点

·多行纯文本,支持换行;

·不支持富文本、图片、HTML,只有普通文字;

·渲染性能远高于QTextEdit,大量日志输出首选;

·自带垂直滚动条;

·可以设置行号区域、只读日志模式;

·API:toPlainText()/setPlainText()

限制

·无法设置局部文字颜色、字体、插入图片。

适用场景:日志窗口、简易代码框、批量文本录入、命令输出。

3.3QTextEdit

特点

·富文本控件,原生支持 HTML 子集;

·可以:局部文字变色、字体大小、插入图片、表格、超链接;

·支持 setHtml() / toHtml(),也可以读写纯文本;

·支持文本选中样式、列表、对齐方式;

缺点

·性能开销更大,如果一次性加载上万行文本,卡顿明显;

·很多富文本相关接口调用复杂。

适用场景:聊天框、图文消息、带格式说明文档、富文本备注。

4关键接口区分

QLineEdit

setText() / text()

QPlainTextEdit

setPlainText() / toPlainText() // 不要用 setText,虽然存在,但语义不推荐

QTextEdit

setPlainText() / toPlainText() // 纯文本模式 setHtml() / toHtml() // 富文本模式 setText() 等价于 setPlainText()

坑:如果你给 QTextEdit 使用 setHtml("<b>test</b>"),用 toPlainText() 拿到纯文字,toHtml() 拿到完整 html 源码。

5快速选型建议

① 只需要一行输入 → QLineEdit

② 多行、只需要纯文字、大量日志 / 代码 → QPlainTextEdit(优先)

③ 需要文字变色、图片、排版、图文混排 → QTextEdit

6补充常见误区

不要用QTextEdit做日志窗口:大量刷新容易卡顿,优先QPlainTextEdit;

QPlainTextEdit 不能显示彩色文字(原生),想要语法高亮需要自己重写 QSyntaxHighlighter;

QLineEdit无法实现多行,想多行就不能选它;

三者都可以设置 setReadOnly(true) 变为只读展示框。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询