• 3015阅读
  • 7回复

[讨论]在多线程中QTreeView怎么添加节点? [复制链接]

上一主题 下一主题
离线c698592
 

只看楼主 倒序阅读 楼主  发表于: 2019-02-16
在工作线程中用这种方式添加节点,可以正常添加,但是由于节点数较多,容易卡死。
QStandardItem* itemProject = new QStandardItem("节点名");
        
Public::model_TreeFile->appendRow(itemProject);

===================================================

所以想用下面的方式,但输出的b为false,QTreeView中也没有节点增加。困扰我一天了,请知道的朋友帮我下 
QStandardItem* itemProject = new QStandardItem("节点名");
        
bool b=QMetaObject::invokeMethod(Public::model_TreeFile, "appendRow", Qt::AutoConnection, Q_ARG(QStandardItem*,itemProject));
qDebug()<<b;

离线songhuirong1

只看该作者 1楼 发表于: 2019-02-17
将Qt::AutoConnection改成Qt::QueuedConnection即可
离线c698592

只看该作者 2楼 发表于: 2019-02-18
试过了  不行的
离线liudianwu

只看该作者 3楼 发表于: 2019-02-18
只能在主线程中使用控件。
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线yanche

只看该作者 4楼 发表于: 2019-02-18
转换下思路就可以了,实现的方式方法很多,Qt本身就可以实现
具有十年研发经验的团队,专注于C++、Qt、Python等语言,专业软件开发团队,致力于完美解决客户的需求,我们期待与您的洽谈。
业务范畴:应用软件定制、UI定制、各类管理系统定制、仿真设计、三维开发、通信SDK定制、Logo设计等等
QQ:548725431
微信:yanche521
离线c698592

只看该作者 5楼 发表于: 2019-02-18
在主线程中使用控件添加大量节点时窗口会卡死,所以想通过线程解决。
离线fu22507411

只看该作者 6楼 发表于: 2019-02-18
回 c698592 的帖子
c698592:在主线程中使用控件添加大量节点时窗口会卡死,所以想通过线程解决。 (2019-02-18 16:58) 

要效率高就用modelview模式
邮箱jiahao_coffee@foxmail.com 有问题可以免费咨询,有空都会回答,不过太难了我答不上来不要介意哈
离线c698592

只看该作者 7楼 发表于: 2019-02-19
谢谢各位了,我再研究下
快速回复
限100 字节
 
上一个 下一个