TreeWidget、ListWidgetなどで項目選択時にそのノードを選択する、って時々やりますよね?よね?
このとき、特に設定をしないと選択直後に「F」キーを押したりしても対象ノードにViewPortがフィットしません。
ので、この場合はMayaのメインウィンドウを一度クリックしたりしてから「F」を押す必要があります。
keyPressEventを乗っ取ったりしてなければCTRL+Fでうまくいったりもしますが、不親切感…😇
というわけで解決していきましょう。
具体的にはこんな感じのコードです。
(略) tree_widget = QtWidgets.QTreeWidget() tree_widget.itemClicked.connect(self._on_tree_item_clicked) (略) def _on_tree_item_clicked(self, current, previous): cmds.select(current.text(0))
どうやらQTreeWidget自体にフォーカスが移ってしまうので、これによってViewPortのショートカットキーが効かない形になっていると思われます。
というわけでフォーカスのポリシーを変えてやりましょう。
tree_widget.setFocusPolicy(QtCore.Qt.NoFocus)
直りました!かんたん…!