社区
Qt
帖子详情
请教下各位关于QString按长度分割的问题
nuptbaobao
2013-06-23 09:37:59
工作需要调用Qpainter的drawtext函数,发现很不只能,对于QString不能自动断行,QString中加入"\n"也不行,现在考虑只能把QString多次截断,然后多次调用drawtext,比如一段字符串有中英文,长度很长,在scrollview里显示也很长,需要换行显示全部,不考虑用滚动条,实在太长了,请教有什么办法可以按固定长度进行截断重组?
...全文
611
4
打赏
收藏
请教下各位关于QString按长度分割的问题
工作需要调用Qpainter的drawtext函数,发现很不只能,对于QString不能自动断行,QString中加入"\n"也不行,现在考虑只能把QString多次截断,然后多次调用drawtext,比如一段字符串有中英文,长度很长,在scrollview里显示也很长,需要换行显示全部,不考虑用滚动条,实在太长了,请教有什么办法可以按固定长度进行截断重组?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suros
2013-06-25
打赏
举报
回复
class FontMetricsEx : public QFontMetrics { public: FontMetricsEx ( const QFont & font ):QFontMetrics(font) { } FontMetricsEx ( const QFont & font, QPaintDevice * paintdevice ) :QFontMetrics(font,paintdevice) { } FontMetricsEx ( const QFontMetrics & fm ):QFontMetrics(fm) { } QString elidedTextEx ( const QString & text, Qt::TextElideMode mode, int width, int flags = 0 ) const { if (mode == Qt::ElideNone) { QString strRet = QFontMetrics::elidedText(text,Qt::ElideRight,width,flags); QChar ellipsisChar(0x2026); QString dotDotDot(QLatin1String("...")); QString elidedString = ellipsisChar; if(strRet.length() < text.length()){ if(strRet.lastIndexOf(ellipsisChar) == -1){ elidedString = dotDotDot; } strRet = strRet.left(strRet.length() -elidedString.length()); } return strRet; } else{ return QFontMetrics::elidedText(text,mode,width,flags); } } }; /////////////////////////////////////////////////////////////////////////// QFont font=_textEdit->font(); FontMetricsEx * Fmt =new FontMetricsEx (font); QString strText = _textEdit->text(); int max_text_width = 64; QStringList list; while(strText != ""){ QString text_line = Fmt->elidedTextEx(strText,Qt::ElideNone,max_text_width); list << text_line; strText = strText.right(strText.length() - text_line.length()); }
ppdayz
2013-06-25
打赏
举报
回复
试试 void QPainter::drawText ( int x, int y, int width, int height, int flags, const QString & text, QRect * boundingRect = 0 ) 或 void QPainter::drawText ( const QRectF & rectangle, const QString & text, const QTextOption & option = QTextOption() )
luoning1217
2013-06-25
打赏
举报
回复
楼上的做法常见
写不动代码的人
2013-06-23
打赏
举报
回复
把QString按一个给定的字符组合,然后用split进行分割
朱老师QT系列课程-1.2.QTWidget的控件式开发详解
本课程是《朱老师QT完全学习系列课程 》的第1部分第2个课程,主要讲了qt的控件式开发,并且以...同时课程中还讲了
QString
类,QList、QMap等QT容器类及其三种遍历方法。总之,学完本课程就基本入门了QT的Widget开发。
QString
按固定
长度
截断重组
工作需要调用Qpainter的drawtext函数,发现很不只能,对于
QString
不能自动断行,
QString
中加入"\n"也不行,现在考虑只能把
QString
多次截断,然后多次调用drawtext,比如一段字符串有中英文,
长度
很长,在scrollview里显示也很长,需要换行显示全部,不考虑用滚动条,实在太长了,
请教
有什么办法可以按固定
长度
进行截断重组? class FontMetric
Qt之
QString
字符串
分割
、截取
在做项目中不可避免的会使用到一串字符串中的一段字符,因此常常需要截取字符串。 有两种方式可以解决这个
问题
: 方法一:
QString
分割
字符串:
QString
date=dateEdit.toString("yyyy/MM/dd");
QString
List list = date.split("/");//
QString
字符串
分割
函数 方法二:正则表达式...
QString
按空格
分割
字符串(split)
QStirng中简单的字符串
分割
可以按照空格(“ ”)、逗号(“,”)、顿号(“、”)等进行
分割
,也可以用复杂的正则表达式。本文主要用简单的按照空格
分割
每个字符串。下面是简单的示例代码:
QString
str="aa bb cc";
QString
List strList = str.split(" "); int a=0; 结果如图所示: 如上图所示,字符串...
Qt
QString
字符串
分割
、截取
在做项目中不可避免的会使用到一串字符串中的一段字符,因此常常需要截取字符串。 有两种方式可以解决这个
问题
: 方法一:
QString
分割
字符串:
QString
date=dateEdit.toString("yyyy/MM/dd");
QString
List list = date.split("/");//
QString
字符串
分割
函数 方法二:正则表达式
分割
字符串: 1、Orcale数据库: 1 Data='12345|耗子|男' 2 select regexp_substr (Da...
Qt
16,213
社区成员
26,593
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章