我在主窗口的四个子窗口之一上设置焦点时遇到问题。我尝试将焦点设置为四个中的一个,但主窗口仍然保持焦点。我有一个组合框,可以让你选择四个窗口中的哪一个。每个寡妇都在一个单独的监视器上。
from PyQt4 import QtGui, QtCore
import numpy as np
from ui_GuiMask import Ui_MainWindow
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QMainWindow.__init__(self, parent)
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.cb_projectorSelector, QtCore.SIGNAL("currentIndexChanged(int)"), self.setProjectorFocus)
self.maskProjector_1 = MaskWindow(screen = 0)
self.maskProjector_1.show()
self.maskProjector_2 = MaskWindow(screen = 0)
self.maskProjector_2.show()
def setProjectorFocus(self):
whichProj = self.ui.cb_projectorSelector.currentIndex()
if whichProj == 0:
self.maskProjector_1.setFocus(True)
self.maskProjector_2.setFocus(False)
elif whichProj == 1:
self.maskProjector_1.setFocus(False)
self.maskProjector_2.setFocus(True)
焦点不应该激活其中一个窗口并将其移动到前面吗?
setFocus()
的文档(添加了强调):
void QWidget::setFocus ( Qt::FocusReason reason )
如果此小部件或其父窗口之一是活动窗口。
据我所知,setFocus
不会激活顶级小部件(窗口)。它会更改活动窗口中的焦点。
使用.activateWindow()
,可能与.raise()
一起使用。