我有一个UI,我想实现一个表单的自动填充。我已经通过使用事件过滤器来实现了这一点,当QLineEdit基于之前关注的QLineEdit被赋予焦点时,它会填充QLineEdit。
问题是,我只希望只有当用户使用制表键循环浏览表单时才进行自动填充。如果他们手动点击,那么自动填充可能会成为障碍。
def eventFilter(self, selected_input, event):
if event.type() == QEvent.FocusIn:
if (self.previous_input is not None
#and selected_via_tab_key
and selected_input.text() == ""):
new_value = int(self.previous_input.text()) + 1
selected_input.setText(str(new_value))
self.previous_input = selected_input
return False
有没有任何方法可以检测焦点在这个事件中是如何变化的,或者我可以监测另一个事件中的焦点变化?