PyQt:如何在启动时清除焦点?

3
当我启动我的PyQt GUI时,焦点立即转移到文本框上。
我希望程序开始时不要聚焦于任何按钮,特别是不要聚焦于文本框。
是否有一种方法可以完全移除焦点或将焦点移动到按钮或其他位置?
谢谢。

mytextbox.clearFocus() 或者 someotherwidget.setFocus() - ekhumoro
1
@ekhumoro 谢谢,clearFocus() 没有起作用,但是 setFocus() 起了作用。 - charlee
2个回答

1
在窗口可见后一定的延迟时间后,clearFocus() 似乎可以起作用。我还在 QMainWindow 上使用了 setFocus(),然后文本编辑字段失去了焦点。

1
创建一个宽度为0,高度为0的按钮。
将其设置为默认按钮,并在其他接受焦点的控件之前尽早出现在选项卡顺序中;但请注意,如果用户在某些编辑控件中按下ENTER,则会触发该按钮。
如果需要,在从最小化状态还原后,可以调用self.ui.yourbutton.setFocus()。

1
在PYQT5中,我有一个QMessagebox,似乎需要控件具有焦点。 MyControl.clearFocus()没有解决问题,因此我创建了一个带有空字符串的标签小部件,将焦点放在该小部件上,然后在空标签小部件上绘制了一个“OK”按钮。现在看起来好像没有任何焦点,并且按下“Enter”键会关闭消息框。 - DaveL17

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接