【发布时间】:2012-08-30 03:16:04
【问题描述】:
如果用户点击另一个窗口,我会尝试将焦点放在一个窗口上。
现在我有两个窗口:窗口 A 在后面,窗口 B 在前面。当窗口 B 出现时,它会禁用窗口 A。现在我想要的是,每当用户在窗口 B 之外单击时,它应该将焦点返回给窗口 B。
这是窗口 B 的代码:
class window_b(QtGui.QDialog):
def __init__(self,parent=None):
super(window_b, self).__init__(parent)
window_a.setEnabled(False)
self.ui = Ui_Form_window_b()
self.ui.setupUi(self)
self.setFocusPolicy(QtCore.Qt.StrongFocus)
def focusOutEvent(self,event):
self.setFocus(True)
self.activateWindow()
self.raise_()
self.show()
我尝试了setFocus 和activateWindow,但没有将焦点返回到窗口 B。
有什么建议吗?
【问题讨论】:
-
您希望这种行为适用于所有其他窗口还是仅适用于窗口 A。如果您想要后者,您可以将窗口 B 设置为模态窗口 en.wikipedia.org/wiki/Modal_window。然后窗口 B 是窗口 A 的子窗口,只要窗口 B 打开,它就不能被聚焦。
标签: python window focus pyqt pyqt4