PyQt5 - 同时闪烁两个游标

时间:2017-02-26 23:35:13

标签: python pyqt cursor

这是一个有趣的症状:

当对话框本身具有焦点时,同一对话框中的两个不同QLineEdit字段同时闪烁光标。

video

(目标是停止没有焦点的字段中的闪烁,因为它会导致用户混淆和潜在的用户错误。)

当您选择其他窗口(即从相关对话框中删除焦点)时,其中一个字段仍然有一个闪烁的光标。

再次激活该对话框时,两个字段再次闪烁。

如果您在任一字段中单击鼠标左键,则闪烁的光标将停止在另一个字段中,如预期的那样。

焦点(即捕获键盘输入的字段)似乎表现得像您期望的那样,即一次只有一个字段接收键盘输入。

标签序列按预期工作。

这是在QtDesigner中构建的,但在下游代码中经过了大量修改。任何想法如何发生这种情况?

有些类似的问题是关于对话框有自己的事件循环还是有什么效果?

1 个答案:

答案 0 :(得分:0)

通过反复试验偶然发现了这个解决方案:只是打嗝'焦点,即将其设置为您不想闪烁的那个(在这种情况下为messageField),然后将其设置为您想要闪烁的那个(teamField):

self.newEntryWidget.ui.messageField.setFocus()
self.newEntryWidget.ui.teamField.setFocus()

我不确定为什么会这样,但它确实有效。希望其他人会觉得这很有用。