一、设置显示内容的两种方式(setPlainText/insertPlainText)
1、void setPlainText ( const QString & text )
m_tcpRecText->setPlainText(sTemp);
2、void QTextEdit::insertPlainText ( const QString & text )
m_tcpRecText->insertPlainText(sTemp);
两者设置的区别:
第一种方法每次显示之前都会清空之前显示的内容
第二种方法则不会自动清空,内容会一直在
3、 获取QTextEdit文本内容:QString toPlainText () const
QString m_sXml = m_tcpRecText->toPlainText();
二、滚动条自动(往下、往上)滚动
前因:用textedit接受数据,但是超过当前
文本框
大小后不会跟着走就看不见最新接收的数据
解决方法:连接信号textChanged()每当有新数据,将自动滚动到底部:
QTextEdit *m_tcpRecText = new QTextEdit();
connect(m_tcpRecText,SIGNAL(textChanged()),SLOT(slotTextTcpChanged()));
//槽函数里的内容
m_tcpRecText->moveCursor(QTextCursor::End);
当然修改moveCursor里的参数有不同的效果:
QTextCursor::Start
|
移动到文档的开头
|
QTextCursor::StartOfLine
|
移动到当前行的开头
|
QTextCursor::End
|
移动到文档末尾
|
QTextCursor::EndOfLine
|
移动到当前行的末尾(内容够多的话,效果和end的一样)
|
三、如何设置背景颜色/背景图片
·设置背景颜色
m_recText = new QTextEdit();
m_recText->setReadOnly(true);
QPalette pal = m_recText->palette();
// 设置画刷,填充背景颜色
pal.setBrush(QPalette::Base, QColor("#B4EEB4"));
// 取消继承父类的背景样式
m_recText->setAutoFillBackground(true);
// QTextEdit设置调色板,即填充了背景图片
m_recText->setPalette(pal);
·设置背景图片
// 定义图片路径
const QString fileName = "C:/1.jpg";
QPalette pal = m_recText->palette();
// 设置画刷,填充背景图片,且调整了图片大小
pal.setBrush(QPalette::Base, QPixmap(fileName).scaled(m_recText->size()));
// 取消继承父类的背景样式
m_recText->setAutoFillBackground(true);
// QTextEdit设置调色板,即填充了背景图片
m_recText->setPalette(pal);
t
ext
Browser->append("hello ");
t
ext
Browser->append("world");
appen接口会
自动
换行,所以会在文本框中打印:
hello
world
2.追加文本不
自动
换行
t
ext
Browser->
insert
Pla
inTe
xt
("hello ");
t
ext
Browser->
insert
Pl
QT
ext
Edit
详解
(
设置
显示
内容
的
两种
方式
(
set
Pla
inTe
xt
/
insert
Pla
inTe
xt
、
滚动条
自动
(
往下
、
往上
)
滚动
……)
第一次比较深入地使用
QT
ext
Edit
,发现里面的
内容
十分丰富,官方文档释义:
The
QT
ext
Edit
class provides a widget that is used to
edit
and dis
pla
y both
pla
in and rich t
ext
(用于编辑和
显示
纯文本和富文本)
所以能做很多的事情,现在把我的使用收获记录下来,话不多说,直接进入主题
所属头文件
#include <
QT
ext
Edit
>
// 指定...
最近在使用
QT
ext
Browser的时候,发现append()很奇特:有时候会莫名的换行,使得
显示
很不美观,所以决定小研究了一下,下面是我的研究结果:
append()函数的英文说明:
Appends a new paragraph with t
ext
to the end of the t
ext
edit
.
这段说明在
QT
ext
Browser的说明文档中没有找到,但在它的父级
QT
ext
Edi
Py
Qt
5随笔:
QT
ext
Edit
和
QT
ext
Browser文本框多次
设置
输入
内容
时,
显示
全部
内容
的方法
QT
ext
Edit
和
QT
ext
Browser 文本控件方法基本一样,只不过
QT
ext
Edit
可以程序读写和用户进行输入两个操作。
QT
ext
Browser 只能进行程序读写,用户不能输入,适合用来
显示
多行文本。
在使用
set
Pla
inTe
xt
()或
set
T
ext
()
设置
QT
ext
Edit
和
QT
ext
Browser 文本框
内容
时,后一次
设置
的
内容
会覆盖前一次的
设置
内容
。
ui->t
ext
Dsy->
insert
Pla
inTe
xt
(but);
避免中文
显示
出错的写法如下:
const String strDa=String::fromLocal8Bit(but);
ui->t
ext
Dsy->
insert
Pla
inTe
xt
(strDa);