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

请问怎么将socket收到的数据用qDebug打印,不换行

5
回复
16445
查看
[复制链接]
累计签到:85 天
连续签到:1 天
来源: 2017-11-8 12:16:49 显示全部楼层 |阅读模式
1Qter豆
数据是从socket读取的,想以16进制显示在输出框里,收到就打印,没有就等待。。
我用qDebug打印,每次都换行,好麻烦
谁知道怎么把qDebug的换行符去掉?

最佳答案

查看完整内容

也不算不能改吧,可以尝试重新编译qtcore的模块,替代掉原来的就可以,稍微麻烦了一些但也算是个办法
回复

使用道具 举报

累计签到:35 天
连续签到:1 天
2017-11-8 12:16:50 显示全部楼层
kenneth 发表于 2017-11-9 09:38
的确如此啊
void qt_message_output(QtMsgType msgType, const char *buf)
{

也不算不能改吧,可以尝试重新编译qtcore的模块,替代掉原来的就可以,稍微麻烦了一些但也算是个办法
回复

使用道具 举报

累计签到:35 天
连续签到:1 天
2017-11-8 15:10:38 显示全部楼层
你可以跟踪一下qDebug()的源码,好像它本身就有换行的机制
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2017-11-9 08:51:57 显示全部楼层
本帖最后由 Since 于 2017-11-9 08:53 编辑

你是什么需求要它不换行,什么原因导致说换行了会产生麻烦?如果没有具体需求,请容我道一句,贱 人 就  是 矫 情......
回复

使用道具 举报

累计签到:85 天
连续签到:1 天
2017-11-9 09:36:34 显示全部楼层
本帖最后由 kenneth 于 2017-11-9 09:41 编辑

需求很简单啊,我想把Qt Creator 下方那个应用程序输出框变成一个网络调试助手我之前的做法,是在程序界面角落里,增加一个文本框来打印socket发来的16进制的数据
调试好了之后,再把这个文本框删掉,好麻烦啊
回复

使用道具 举报

累计签到:85 天
连续签到:1 天
2017-11-9 09:38:53 显示全部楼层
bycy0801 发表于 2017-11-8 15:10
你可以跟踪一下qDebug()的源码,好像它本身就有换行的机制

的确如此啊
void qt_message_output(QtMsgType msgType, const char *buf)
{
    if (handler) {
        (*handler)(msgType, buf);
    } else {
        fprintf(stderr, "%s/n", buf);
        fflush(stderr);
    }
这个换行符被写死在里面了,无法改了
回复

使用道具 举报

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

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