UID:163171
UID:97396
UID:121167
UID:2
UID:155383
UID:165399
roywillow:接收到的不一般是QByteArray吗?直接把这个提供给QTextStream作为device读取难道不可以? (2015-11-16 19:59)
圣域天子:5M读取要4秒,这个时间不正常的。远程的吗?不在局域网内? (2015-11-16 20:23)
XChinux:如果是网络传输,你的常用数据,都可采用QVariant保存的吧?那你可以使用QDataStream,将其保存成二进制的,用char*或std::string来传输,下面是我写的两个模板函数: template <typename T> T bin2var(const std::string &str)& .. (2015-11-16 21:57)
yanwuyue:接收数据是不是在主线程里了,刷GUI是很慢的 (2015-11-16 22:07)
z609932088:[表情] 睡觉 (2015-11-16 22:20)
圣域天子:没用子线程啊?几十个用户保管死翘翘, 呵呵 (2015-11-17 10:45)
蚂蚁power:先谢谢总教头!发现是服务器发送的慢,经过修改已经达到400毫秒了。但是我的处理速度上model->setData()要用2.8-3秒的时间。setData貌似本身就慢吧。 (2015-11-17 10:32)
蚂蚁power:发送和接受都是在主线程,次线程只是控制循环调用主线程的发送方法,和将接收到的数据显示到表格中。 (2015-11-17 10:34)
XChinux:setData()....你用的model是哪个?如果你要高效,就得自己写model而不能直接用现成的model了。一方面是为了model数据存储高效,另一方面是要正确的时间通知view更新界面。 (2015-11-17 20:39)
yanwuyue:我有点看不懂你讲什么,前面说接收在主线程里,最后一句又说次线程接收数据并刷表格(就是gui),到底接受函数是在主线程里,还是次线程里,如果是在主线程里(我觉得楼主的现象应该就是写在主线程里了),net口接收到数据,刷gui,net卡住(也就是暂停了数据传输),刷完gui,net又激活,以此 .. (2015-11-17 21:39)
XChinux:QStandardItemModel效率很低的,你每次更新item属性,它都会通知view刷新界面,所以才需要你自己写model,一方面是简化数据存储,另一方面是可以控制刷新时间,比如你新增100条数据,那这100条数据全放到model里后,再通知view刷新对应的区域。 (2015-11-18 11:35)
UID:161606
蚂蚁power:OK 我重写一个model吧,继承QAbstractItemModel,应该可以吧 (2015-11-19 09:59)
z55716368:楼主可以吧你重写的model发出来看看吗 这个还真不是太懂 (2015-11-28 16:37)
XChinux:看《Qt高级编程》中3、4、5、6章节,专门讲model/view编程的。 (2015-11-28 20:28)
蚂蚁power:你看看Qt高级编程吧。我也是看着那个写的。 (2015-11-30 09:26)