• 7991阅读
  • 8回复

[提问]QTableWidget求助 [复制链接]

上一主题 下一主题
离线ablo0507
 

只看楼主 倒序阅读 楼主  发表于: 2013-12-24
使用QTableWidget实现:

点击添加:table增加一空行单元格可编辑:编辑后更新数据
现在问题是:
1.我该调用哪个信号来触发更新数据库操作(更新数据库的函数写好了)                  
2.如果用cellChanged或者itemChanged可以实现更新没有问题但添加新行后就会发出cellChanged或itemChanged信号循环触发更新操作然后内存溢出报错
3.如果用currentCellChanged或者currentItemChanged好像不是我要的信号(点击单元格就触发了我还没编辑呢..)
离线ablo0507

只看该作者 1楼 发表于: 2013-12-24
在线等大神
离线XChinux

只看该作者 2楼 发表于: 2013-12-25
你的设计逻辑有问题.最好调整设计逻辑吧.

可以看看这个函数,自己重新实现下.
void QAbstractItemView::commitData ( QWidget * editor ) [virtual protected slot]
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线ablo0507

只看该作者 3楼 发表于: 2013-12-25
回 2楼(XChinux) 的帖子
不用tablewidget了么?
离线ablo0507

只看该作者 4楼 发表于: 2013-12-25
回 2楼(XChinux) 的帖子
给我说说整体是什么个逻辑吧,谢谢了
离线friendbaby

只看该作者 5楼 发表于: 2013-12-25
其实问题很简单,再添加一个编辑行的对话框,不管是新添加还是编辑,都调用该对话框。


点击添加后:弹出对话框,让用户输入,用户点确定后,判断各输入项是否符合要求,符合就添加到表里,并更新数据库,不符合就提示用户。
Smiling is best language , can express everything , also can conceal everything.
离线ablo0507

只看该作者 6楼 发表于: 2013-12-30
回 5楼(friendbaby) 的帖子
你说的这个之前已经实现了,就是觉得操作太繁琐,才设计成直接编辑表格,不过还是谢谢
离线jdwx

只看该作者 7楼 发表于: 2013-12-30
其实可以这样,先在编辑前把单元格内的数据保存到临时变量里,编辑完成,检查数据是否改变了,再去写入数据库,这样就不会循环更新了。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线ablo0507

只看该作者 8楼 发表于: 2013-12-30
回 7楼(jdwx) 的帖子
谢谢  我怎么捕捉这个编辑完成的信号呢?
快速回复
限100 字节
 
上一个 下一个