QStandarditemmodel 和 Qtableview 动态更新的问题

chyond 2015-06-16 12:38:58
现在遇到这样一个问题,调用了QStandarditemmodel 中的 setData后emit了dataChanged,tableview不能时时更新


1.主窗体中有个Qtableview 用来显示数据

2.封装了了个类叫dataModel
class dataModel
{
public:
void setModelData(int row,int col,QVariant data);
private:
QStandarditemmodel *m_model;
}
dataModel::dataModel()
{
m_model= new QStandarditemmodel(10,10);
并在这里进行了m_model的添加item等操作。
}
void dataModel::setModelData(int row,int col,QVariant data);
{
m_model->setData(m_model->index(row,col),data);
emit m_model->dataChanged(m_model->index(row,col),m_model->index(row,col));
}

3.主窗体的tableview->setmodel(dataModel的m_model),这样item中原始添加的值显示都没问题。
但是我在另外一个线程中改变dataModel中m_model的数据时主窗体的tableview不会一起刷新。

另外一个线程是这样的调用dataModel::setModelData(0,1,5);这样,
请问上述有什么不妥吗?


...全文
2143 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiqiang01234 2015-06-16
  • 打赏
  • 举报
回复
请移入“Qt版块”
chyond 2015-06-16
  • 打赏
  • 举报
回复
解决了,是多线程的问题,我在另外一个线程中直接更新model的值会有问题,view不能实时刷新, 用信号和槽解决了此问题,在更新数据线程发射一个信号到界面线程,由界面线程跟新界面解决了问题。
chyond 2015-06-16
  • 打赏
  • 举报
回复
引用 2 楼 czyt1988 的回复:
你确定你这个能编译通过?
说啦 是伪代码 就是表达一下逻辑是这样的,其中一些指针返回之类的没有详细写!
尘中远 2015-06-16
  • 打赏
  • 举报
回复
你确定你这个能编译通过?

16,817

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧