我正在研究测试用例编辑器。该编辑器包含USART发送和接收数据包格式。编辑器是一个表视图。
发送和接收数据包长度为8个字节,例如:
0x01 0x02 0x03 ... 0x08
这是我的第五和第六栏。现在,我希望此列中的单元格只读,但是当我双击这些列中的任何单元格时,会显示一个弹出窗口小部件。该小部件将在文本编辑中包含八个框,其中用户可以输入分组格式(即,八个字节长)数据。我可以轻松地将这些数据从弹出窗口小部件复制回后端的只读单元格。
这将取消用户的所有策略,例如每个字节之间是否应该有空格。因此,这将消除潜在的人为错误。
1:是否有用于双击表视图单元格的事件处理程序?
2:我可以为同一列的每个单元格设置一个公共双击处理程序吗?
3:如何在表格视图中只读取特定列的单元格,同时保留最终可以更改其值(即返回)的事实?
答案 0 :(得分:5)
1:是否有用于双击表格单元格的事件处理程序 图。
注意,您应该使用信号而不是事件:
void doubleClicked(const QModelIndex & index)
2:我可以为每个单元格拥有一个通用的双击处理程序 列。
是的,您可以处理上述信号。
3:如何使特定列的单元格仅在表格中读取 查看,同时保留我可以改变他们的价值的事实 结束(即回来)。
这是您需要根据您的愿望为模型索引设置的标志(即只读或读写):
Qt::ItemIsEditable 2 It can be edited.