QTextEdit详解(设置显示内容的两种方式(setPlainText/insertPlainText、滚动条自动(往下、往上)滚动……)
·
目录
一、设置显示内容的两种方式(setPlainText/insertPlainText)
一、设置显示内容的两种方式(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);
更多推荐
已为社区贡献9条内容
所有评论(0)