QTextEdit 是一个控件,是Qt为用户提供的一个展示型控件,它主要就是把用户的数据进行展示,同时提供可编辑功能。那qt中如何读取qtextedit中的文本?下面来我们就来给大家讲解一下。
代码如下:
int buf_OUT[65]; QString sendStr = ui - > sendTextEdit - > toPlainText(); for (int i = 0; i < sendStr.length(); ++i) { QChar t = sendStr.at(i); buf_OUT[i] = t.toLatin1() - '0'; }
qtextedit字符串的长度怎么弄?
你需要根据QFontMetrics类来计算当前字符串的长度。
例如:
QFont font("times", 24); QFontMetrics fm(font); int pixelsWide = fm.width("What's the width of this text?"); int pixelsHigh = fm.height();
计算当前文本的宽度用于来换行,这种计算的方式还是不是很精准,会致使文字换行长短不一。
当然也有简单的方式实现文本的换行,让看起开就像label标签的形式一样,那就是用qtextedit,让它自动换行,但是也是有问题的就是当视口的大小小于文本显示的内容高度的时候就会出滚动条,
,这样很影响美观,就比如我在一个qtablewidget的某个单元格内需要一个能够支持换行功能的节点,我们都知道,qtablewidgeitem是不支持换行功能的,即使+‘\n’也是不支持的,因此我们在
qtablewidget中调用setcellwidget就可以把我们能够支持换行的界面放进去了,这时我们可以放入qtextedit,为了不使qtextedit出现滚动条,我们可以是指定行高为qtextedit的高度+
qtextedit的maximumHeight高度值,并且使qtextedit的滚动条隐藏,这样就可以使qtablewidget的节点为支持换行的节点。
example:
QTextEdit *pEdit = new QTextEdit(); pEdit->verticalScrollBar()->hide(); pText->setReadOnly(true); pEdit->setText(str); QTableWidget *pTableWgt = new QTableWidget(this); pTableWgt->setColumnCount(1); pTableWgt->insertRow(0); pTableWgt->setCellWidget(0, 0, pEdit); pTableWgt->setRowHeight(pEdit->height() + pEdit->verticalScrollBar()+maximum()); 记得是指样式表: QTextEdit{border:none;}
qtextedit字符串的长度主要是需要根据QFontMetrics类来计算的,我们可以使用以上方法去完成,如果你感兴趣的话,可以自己尝试一下!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: