Hello World / plɹoM ollǝH

Programmers Live in Vain

QListWidgetItemの位置やサイズを調べる

QListWidget::visualItemRectを使う。 例えばキーボードでコンテキストメニューを出したいとき等に使える。

class MyList(QListWidget):
    def __init__(self):
        super().__init__()

    def keyPressEvent(self, event):
        if event.key() == Qt.Key_Backspace:
            item = self.currentItem()
            if item:
                rect = self.visualItemRect(item)
                self.customContextMenuRequested.emit(
                    QPoint(rect.x() + rect.width() / 2, rect.y() + rect.height() / 2))
        return super().keyPressEvent(event)