QT Qtableview 表格点击过再点击后 表格的焦点会自动移动到最后一个是什么原因
时间: 2023-06-26 19:08:56 浏览: 555
这种情况可能是表格的 "EditTriggers" 属性设置了 "CurrentChanged" 或 "SelectedClicked"。这将导致在单元格中编辑后,焦点将自动移动到下一个单元格或表格的最后一行。
可以尝试将 "EditTriggers" 属性设置为 "DoubleClicked",这样只有在第二次单击单元格时才会发生编辑,而不是在第一次单击时。或者可以在点击单元格时手动设置表格的 "CurrentIndex" 属性,以避免焦点自动移动。例如:
```python
table.setCurrentIndex(index) # index 是要设置的单元格的索引
```
另外,也可以查看表格的 "SelectionBehavior" 属性是否设置为 "SelectRows",这可能会影响焦点的行为。
相关问题
Qtableview 表格点击过再点击后 表格的焦点会自动移动到最后一个 C++ QT
您可以在QTableView的槽函数中通过调用QModelIndex的isValid()函数来判断 QModelIndex 对象是否可用。如果可用,可以使用QTableView的scrollTo函数将焦点自动滚动到最后一个单元格。下面是示例代码:
```cpp
void MyTableView::slotClicked(const QModelIndex &index)
{
if (index.isValid()) {
scrollTo(index, QAbstractItemView::EnsureVisible);
}
}
```
在您的代码中,将`MyTableView`替换为您的QTableView子类的名称,并将其与您的槽函数进行连接,如下所示:
```cpp
connect(tableView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(slotClicked(const QModelIndex &)));
```
这样,当用户单击表格中的单元格时,如果该单元格可用,则焦点将滚动到该单元格,并确保该单元格可见。
QT Qtableview 点击两次单元格后 表格的焦点会自动移动到最后一个是什么原因
在默认情况下,当你在QTableView中编辑单元格时,会将单元格的编辑器置于单元格中,此时单元格会失去焦点。如果你不点击任何其他单元格,那么焦点就会被自动移动到最后一个单元格(也就是表格的最后一个单元格)。
这种行为是由QTableView的默认设置决定的,你可以通过设置QTableView的editTriggers属性来改变它的行为。例如,如果你将editTriggers设置为QAbstractItemView::NoEditTriggers,那么当你点击单元格时,焦点就不会自动移动到最后一个单元格。你也可以使用其他的editTriggers选项来实现你想要的行为。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)