找回密码
 立即注册
收起左侧

怎么在lineEdit中显示数字?

9
回复
10265
查看
[复制链接]
累计签到:27 天
连续签到:1 天
来源: 2015-11-17 23:21:14 显示全部楼层 |阅读模式
1Qter豆
比如:
byte[0] = 12;
byte[1] = 06;
byte[2] = 21;
请问怎么在lineEdit中显示"12.06.21"?

Best regards!

最佳答案

查看完整内容

使用QString的公有函数arg,详见文档
回复

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-11-17 23:21:15 显示全部楼层
使用QString的公有函数arg,详见文档
回复

使用道具 举报

累计签到:27 天
连续签到:1 天
2015-11-17 23:42:50 显示全部楼层
                    string = QString::number(byte[0], 'd', 0);
                    string += '.';
                    string += QString::number(byte[1], 'd', 0);
                    string += '.';
                    string += QString::number(byte[2], 'd', 0);
                    ui->lineEditRevision->setText(string);

结果显示:12.6.21,怎么显示"12.06.21"呢?
回复

使用道具 举报

累计签到:13 天
连续签到:1 天
2015-11-18 10:48:19 显示全部楼层
板凳是正解,arg()很强大
回复

使用道具 举报

累计签到:894 天
连续签到:1 天
2015-11-18 11:52:26 显示全部楼层
tr("1%.2%.3%").arg(byte[0] ).arg(byte[1] ).arg(byte[2] )
回复

使用道具 举报

累计签到:27 天
连续签到:1 天
2015-11-18 22:35:54 显示全部楼层
问题解决,谢谢大家!
结果是这样的:
string = QString("%1.%2.%3").arg(QString::number(byte[0], 'd', 0), 2, QLatin1Char('0'))\
                                                .arg(QString::number(byte[1], 'd', 0), 2, QLatin1Char('0'))\
                                                .arg(QString::number(byte[2], 'd', 0), 2, QLatin1Char('0'));
显示“12.06.21”

不过有点儿疑问:
网上都可以这样
string = QSring("%1.%2.%3").arg(byte[0]).arg(byte[1]).arg(byte[2]);
为什么我的需要QString::number转换呢?是因为QT版本不同的原因吗?
回复

使用道具 举报

累计签到:27 天
连续签到:1 天
2015-11-18 22:39:57 显示全部楼层
Syylc120317 发表于 2015-11-18 11:52
tr("1%.2%.3%").arg(byte[0] ).arg(byte[1] ).arg(byte[2] )

a: 貌似应该是"%1.%2.%3"
b: tr换成QString也是可以的,求指点
c: 为什么我的arg参数需要把byte[0]用QString::number(byte[0])做转换才行呢?不转换的话显示空白。。。
回复

使用道具 举报

累计签到:27 天
连续签到:1 天
2015-11-18 22:42:27 显示全部楼层
一叶知秋 发表于 2015-11-18 09:27
使用QString的公有函数arg,详见文档

谢谢你的回复,最后的解决办法已经发出来了,若有不妥请指点。
回复

使用道具 举报

累计签到:27 天
连续签到:1 天
2015-11-18 22:43:52 显示全部楼层
艾晓宇ABC 发表于 2015-11-18 10:48
板凳是正解,arg()很强大

3Q,按大家的回复已解决问题,好人有好报!
回复

使用道具 举报

累计签到:894 天
连续签到:1 天
2015-11-19 09:17:48 显示全部楼层
tovax 发表于 2015-11-18 22:39
a: 貌似应该是"%1.%2.%3"
b: tr换成QString也是可以的,求指点
c: 为什么我的arg参数需要把byte[0]用QStr ...

嗯,才发现写错了。tr的完整形式是QObject::tr()。很明显,06不是number。我们没有这么写的。你这更像是日期类型。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了