• 10437阅读
  • 6回复

【已解决】Qt4中怎样从一个表格(QTableWidget)中移动记录到另一个表格中? [复制链接]

上一主题 下一主题
离线txiejun
 
只看楼主 倒序阅读 楼主  发表于: 2008-08-06
— 本帖被 XChinux 执行加亮操作(2008-08-06) —
用Qt4的designer生成一个ui文件,其中有两个表格(QTableWidget)分别命名为:opentable和movetable,在表格一中(opentable)导入以下数据:
列名分别为:
Number  ID            other  ....   
1      quwu          465.1  168.0  1.3  460.1  168.0  1.3  qdz2213P  qdz2213Q  qdz2213I  wqz2213P  wqz2213Q
2      liuquyi      465.1  100.0  4.9  460.1  100.0  1.2  ylq2217P  ylq2217Q  ylq2217I  qdz2216P  qdz2216Q
3      shengsan_1    564    264    6.2  561    191    6.2  bhz2218P  bhz2218Q  bhz2218I  pyl2215P  pyl2215Q
4      shengsan_2    42.7  31.8  1.3  42.6    128    1.3  bhz2217P  bhz2217Q  bhz2217I  pyl2214P  pyl2214Q 
5      shengsan_3    137    114.6  1.9  138    138.3  1.9  pyl121P  pyl121Q  pyl121I    kfq113P  kfq113Q     
6      housheng_1    240    100    2.7  239    98    2.7  pyl115P  pyl115Q  pyl115I    kfq117P  kfq117Q 
7      housheng_2    203    90    2.3  200    99    2.3  wuz2218P  wuz2218Q  wuz2218I  sgz2213P  sgz2213Q 
8      housheng_3    78    -14    0.8  78      -15    0.8  wuz2219P  wuz2219Q  wuz2219I  sgz2214P  sgz2214Q 
9      nhzqlh1_1    -122.4 -53.9  1.4  -123.2  -52.7  1.4  bjz2214P  bjz2214Q  bjz2214I  yjd2212P  yjd2212Q 
10      nhzqlh1_2    -354.9 -251.5 4.6  -354.2  -250.5 4.6  sgl2231P  sgl2231Q  sgl2231I  wuz2220P  wuz2220Q 
我想实现这样的功能:在表格二中(movetable)中的第二列(ID)输入相应的字符串(比如:liuquyi)后,按回车键就会把opentable中的第二行中的记录
2      liuquyi      465.1  100.0  4.9  460.1  100.0  1.2  ylq2217P  ylq2217Q  ylq2217I  qdz2216P  qdz2216Q  移到下面的表格(movetable)中来。
这个机理我理解是这样的:当你在movetable中的ID列中输入相应的字符串后按回车就发送一个消息(signal)然后通过自己定义一个槽函数(slot)来接收这个消息(signal)并做相应移动记录的事情。
问题描述已经完成,现在我开始提问:
1.在movetable(Qt4中的一个QTableWidget)的一个单元格(cell)中输入相应的字符串后,按回车键所激发的消息(signal)应该是哪个?(是该用:void QTableWidget::itemPressed ( QTableWidgetItem * item )  [signal] 还是void QTableWidget::cellPressed ( int row, int column )  [signal] 还是其他哪个函数?)
在这个功能的实现上似乎还要判断cell是否改变,只有当cell改变并按了回车键 都满足时才能执行移动操作。判断cell是否改变是不是应该用void QTableWidget::cellChanged ( int row, int column )  [signal] 这个函数还是其他什么函数?
2.怎么通过所输入的那个值来确定整个一行的值。
[ 此贴被txiejun在2008-08-08 11:32重新编辑 ]
三分天注定,七分靠打拼,爱拼才会赢!
离线txiejun
只看该作者 1楼 发表于: 2008-08-06
希望各位大虾指教
三分天注定,七分靠打拼,爱拼才会赢!
离线mecland
只看该作者 2楼 发表于: 2008-08-06
使用Model/View模型, 使用Delegate, 实现setModelData函数, 在其中来处理
离线txiejun
只看该作者 3楼 发表于: 2008-08-07
引用第2楼mecland于2008-08-06 13:49发表的  :
使用Model/View模型, 使用Delegate, 实现setModelData函数, 在其中来处理

我接触Qt不久,了解还不深入,对Model/View模型很陌生,你能讲具体一些吗?
不过我已解决一些问题了,比如按我的思路的话,按回车键激发的是cellActivated( int ,int)函数
现在正在继续解决中...希望大家多多支持
三分天注定,七分靠打拼,爱拼才会赢!
离线txiejun
只看该作者 4楼 发表于: 2008-08-08
谢谢各位了,问题解决了!
谢谢各位的关心,这个问题我自己解决了,如果有人想要源代码的,可以在这儿下啊,大家相互交流吧!
附件: Open_Text.rar (36 K) 下载次数:123
三分天注定,七分靠打拼,爱拼才会赢!
离线downstairs

只看该作者 5楼 发表于: 2011-04-15
感谢分享
喜爱编程的猫头鹰
离线zhangshan594

只看该作者 6楼 发表于: 2011-07-30
谢谢,我也在学习Qt
快速回复
限100 字节
 
上一个 下一个