pyqt4:为单亲派生的4个子窗口设置焦点



我在主窗口的四个子窗口之一上设置焦点时遇到问题。我尝试将焦点设置为四个中的一个,但主窗口仍然保持焦点。我有一个组合框,可以让你选择四个窗口中的哪一个。每个寡妇都在一个单独的监视器上。

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()一起使用。

最新更新