[英]how to get row number after comboBox item in QTableWidget in qt
[英]How to get the correct row from QTableWidget::item after sortting by column (Qt BUG ?)?
我正在Qt C++
做一些表操作,今天我在设置sortEnabled(true)
之后发现了一些可疑的东西。 我想按列对QTableWidget
进行排序,这就是为什么将该属性设置为true
。 从逻辑上讲,我已经有了想要的东西,但是我注意到,当我double click
row of a table
的row of a table
,对应于另一行的模式对话框正在打开。 我把那个表放在QTableWidgetItem-s
。
QTableWidgetItem* widgetItem = new QTableWidgetItem();
widgetItem->setData(Qt::UserRole, it->id);
在double click signal
我要使用QTableWidget::item(int aRow, int aCol)
提取行项目,然后获取自定义唯一ID(在我分配了唯一ID的每一行中)。
关键是:在单击列标题并进行排序后,我将获得排序之前该位置的行的ID。 我现在获得的ID对应于另一行,因为我已经按另一列进行了排序。
我如何摆脱这个问题? 我做错什么了吗。 还是我忘记将某些属性设置为true / false?
我认为这种sort
只会影响桌子的视觉效果,而不会影响结构...
我只想要适当的ID,别无其他。
这是表格情况的简短示例:
排序之前:
===id=======category==
| 47 | b |
| 48 | a |
| 49 | c |
| 50 | d |
======================
当双击b
item(1,1)返回correct QTableWidget*
并且ID = 47
现在,我单击目录标题进行排序
排序后:
===id=======category==
| 48 | a |
| 47 | b |
| 49 | c |
| 50 | d |
======================
当双击a
项目(1,1)返回the old one QTableWidget*
和ID = 47
了 ! 我要48而不是47
谁能帮我?
我不知道为什么它不能为您提供正确的项目,但是您应该只听QTableWidget::itemDoubleClicked()
信号,该信号会向您发送实际的项目,因此您不必四处寻找。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.