1

在 QHeaderView 类的Qt doc 网站上,我发现了两个具有相似描述的信号:

void QHeaderView::sectionDoubleClicked(int logicalIndex)

void QHeaderView::sectionHandleDoubleClicked(int logicalIndex)

这两者有什么区别?我应该什么时候使用第一个,什么时候使用另一个?

4

1 回答 1

1

尽管文档字符串完全相同,

void QHeaderView::sectionDoubleClicked(int logicalIndex) 双击某个部分时会发出此信号。节的逻辑索引由logicalIndex 指定。

[signal]void QHeaderView::sectionHandleDoubleClicked(int logicalIndex) 双击某个部分时会发出此信号。节的逻辑索引由logicalIndex 指定。

信号在不同的情况下发出KDE 的 Qt5 副本中

void QHeaderView::mouseDoubleClickEvent(QMouseEvent *e)
{
...
    int handle = d->sectionHandleAt(pos);
    if (handle > -1 && sectionResizeMode(handle) == Interactive) {
        emit sectionHandleDoubleClicked(handle);
...
    } else {
        emit sectionDoubleClicked(logicalIndexAt(e->position().toPoint()));
    }
}

但是,文档并没有特别清楚地说明何时可能存在“句柄”以及何时不存在。猜测一下,如果您的部分可调整大小,您可能会得到一个句柄——用于调整大小——然后您可以(双击)单击句柄或部分主体。

于 2022-02-16T13:16:46.423 回答