社区
Qt
帖子详情
QT中用什么来显示日志最方便?
pang2042
2010-08-31 06:42:51
我想用一个东西显示日志,就是每次往里添加一行文本,然后滚动到末尾这样就行了。
当前我用的是QListWidget 实现的,但是在addItem后马上调用scrollToBottom()经常会出现错误,在其paintEvent里面会出现QVector访问越界,我想可能是因为addItem的线程非主线程导致的,不知道怎么搞。
另外请教各位其它还有没有什么好的QWidget方便显示日志?
...全文
1453
14
打赏
收藏
QT中用什么来显示日志最方便?
我想用一个东西显示日志,就是每次往里添加一行文本,然后滚动到末尾这样就行了。 当前我用的是QListWidget 实现的,但是在addItem后马上调用scrollToBottom()经常会出现错误,在其paintEvent里面会出现QVector访问越界,我想可能是因为addItem的线程非主线程导致的,不知道怎么搞。 另外请教各位其它还有没有什么好的QWidget方便显示日志?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dext
2010-09-03
打赏
举报
回复
怎么回答你?回答 是的 太简单了。
其实 你可以在 emit 之前创建对象, emit 传入指针,在在槽中释放
[Quote=引用 12 楼 pang2042 的回复:]
多谢。如果在非主线程中调emit的时候需要传递参数,因为是异步的,不能保证这参数有效?比如我传一个指针过去,emit后这个指针指向的对象很有可能已经被销毁了,这种情况不就出错了啊?是不是传递参数用值传递方式就能避免这种情况?
[/Quote]
车太靓
2010-09-03
打赏
举报
回复
QTextEdit
pang2042
2010-09-02
打赏
举报
回复
[Quote=引用 11 楼 dext 的回复:]
在 QListWidget 申明 槽,你的做法对了。
[/Quote]
多谢。如果在非主线程中调emit的时候需要传递参数,因为是异步的,不能保证这参数有效?比如我传一个指针过去,emit后这个指针指向的对象很有可能已经被销毁了,这种情况不就出错了啊?是不是传递参数用值传递方式就能避免这种情况?
dext
2010-09-02
打赏
举报
回复
在 QListWidget 申明 槽,你的做法对了。
dext
2010-09-02
打赏
举报
回复
一般的做法是,在你要作出修改的类中(这个类一般不是QListWidget),声明信号
然后 在这个类的构造函数中 连接信号和槽,最后 在要修改的地方 调用 emit
[Quote=引用 9 楼 pang2042 的回复:]
引用 7 楼 dext 的回复:
假设我继承实现一个QListWidget,添加了一个slot叫Log(char*);那么我在非主线程中应该怎么去调用这个Log槽才能保险,是不是得在这个QListWidget中再添加一个相应的singal,然后在这……
[/Quote]
千羽鸣
2010-09-01
打赏
举报
回复
如果你是在Linux下面做的话,在程序运行过程中要出调试信息直接在其中加入像cout,printf这些Console下用的东西,如果是在Creator中运行,这些信息会被打印到下方的框中,如果是在控制台上启动,界面照常用,信息会被打印到控制台上。不知道你做的是什么程序,如果功能实现部分并不需要界面高耦合支持的话,可以把功能实现分离出来单独作为一个线程从界面中启动,这时候你的界面就是主线程,而功能实现是子线程。我最近做的一个联网客户端就是这样实现的,两个线程通过signal-slot通讯,自我感觉耦合度很低……
pang2042
2010-09-01
打赏
举报
回复
[Quote=引用 7 楼 dext 的回复:]
应该在 线程中 使用信号-槽机制 修改 GUI 的内容,至于 是使用 ListWidget 还是 TextWidget 纯属个人喜好了。
[/Quote]
假设我继承实现一个QListWidget,添加了一个slot叫Log(char*);那么我在非主线程中应该怎么去调用这个Log槽才能保险,是不是得在这个QListWidget中再添加一个相应的singal,然后在这个非主线程中使用emit来引发?
dext
2010-09-01
打赏
举报
回复
应该在 线程中 使用信号-槽机制 修改 GUI 的内容,至于 是使用 ListWidget 还是 TextWidget 纯属个人喜好了。
qter_wd007
2010-08-31
打赏
举报
回复
用QTextEdit的更为常见些,个人感觉。
lefttime
2010-08-31
打赏
举报
回复
作为消息的载体, QListWidget还是不错的!
感觉再考虑线程的控制上找问题~``
如果想看其它的QWidget, 估计QTextEdit、QTextBrowser等都应该符合你的要求~``
巴依老爷
2010-08-31
打赏
举报
回复
qDebug()不能满足要求么?
pang2042
2010-08-31
打赏
举报
回复
[Quote=引用 2 楼 tingsking18 的回复:]
搞成console application,直接在command line下打印日志信息。
[/Quote]
不能做成console application,界面的其它部分很多。显示日志信息只是其中一个部分,程序在运行过程中的各类消息提示得有个显示的地方
tingsking18
2010-08-31
打赏
举报
回复
搞成console application,直接在command line下打印日志信息。
pang2042
2010-08-31
打赏
举报
回复
另外加问一下,QT里有没有办法把与界面操作相关的的内容都送到主线程上去执行,有点像win32里SendMessage之类的
Qt
音视频开发实战
课程摘要1
Qt
音视频开发实战 是陈超老师用10年以上音视频一线实战开发经验,四年音视频开发教学经验打造的
Qt
音视频开发课程。2
Qt
音视频开发实战以
Qt
c++开发为中心。所有课程全部围绕
Qt
音视频开发展开。3 非常适合那些只做
Qt
开发的工程师来学习,学习更容易一些。学习目标,培养高级
Qt
音视频开发工程师.4
Qt
音视频开发实战适合那些掌握
Qt
基础开发,初级开发工程师,月薪在20k以下,通过学习,达到更高薪水的
Qt
高级开发工程师。 课程优势1 老师过去15年+ 音视频,网络通讯,数字图像处理一线实战经验。过去四年积累了丰富的音视频开发教学经验,学员从年薪30w~50w,就职于腾讯,阿里等各大互联网公司。2 老师10多年
Qt
开发经验,长期大量使用
Qt
开发项目,国内最早一批使用
Qt
的程序员。3 QQ 一对一教学指导,阶段性作业案例小项目指导,就业面试指导。 课程内容1
Qt
核心基础加强。对于那些学了很多年
Qt
开发而不得要领的学员非常友好。2 音视频开发基础。音视频原理,RGB YUV, 音频原理。图像压缩编码,音频压缩编码,H.264压缩,H.264编码原理 I P B SPS PPS解析, 视频存储容器,mp4 , AAC.
Qt
音频视频采集,FFmpeg编码,解码,x264编码,AAC编码。mp3编码。格式转换。视频播放器内核。图像渲染。3 OpenGL数字图像处理基础。OpenGL基础,渲染管线,shader编程。滤镜,美颜,后期处理。编写渲染引擎。4 网络socket通讯编程,自定义私有协议。TCP/UDP音视频传输。 学员要求1 熟悉c/c++,掌握
Qt
基本控件,类基础。2 每天学习两小时,学习周期3~5个月,做完练习,小项目。
qt
在
qt
extedit
显示
数组_
QT
—
QT
extEdit控件
显示
日志
功能:利用
QT
extEdit开发一个
日志
显示
窗口。没有太多操作,需要实现的是
日志
自动向上滚动,总体的
日志
量可以控制在x行(比如300行)以内;其他的应用功能我后面继续添加#include #include #include #include QString text;text = "1111111111111111111111111111\n"\"2222222222222222222222222...
Qt
之
日志
输出窗口
继上节所讲,
Qt
可以很容易的将一些
日志
信息保存到文件中,那么
日志
信息如何输出到窗口呢? 用过VS或者其他IDE的童鞋对
日志
输出到窗口应该都很熟悉,开发者可以打开一个输出窗口很清晰的查看一些
日志
信息。 例如VS,如下: 代码如下: **********log_browser.cpp********** #include
qt
实现
日志
打印
【代码】
qt
实现
日志
打印。
Qt
CuteLogger
日志
输出文件
Qt
开发过程中,我们经常使用qDebug()来输出一条调试信息,但是,等软件正式发布之后,我们就需要软件运行
日志
功能,使用
日志
功能,能够快速的进行异常错误的跟踪和定位。也能查看软件运行的情况。
Qt
的
日志
工具有很多,log4cplus、log4cxx,Log4
Qt
等等,当然,也可以采用
Qt
的消息输出,重定向到
日志
文件,就可以实现一个简单的
日志
记录系统。具体可参考:使用
Qt
实现简单的
日志
记录功能(qInstallMessageHandler) 下面,介绍一个 CuteLogger :基于
Qt
的应用程序的快速
Qt
16,175
社区成员
26,581
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章