0

メイン ウィンドウから 4 つの子ウィンドウの 1 つにフォーカスを設定する際に問題があります。setFocus を 4 つのうちの 1 つに設定しようとしましたが、メイン ウィンドウはまだフォーカスを保持しています。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)

フォーカスがウィンドウの1つをアクティブにして前面に移動するべきではありませんか?

4

1 に答える 1

0

ドキュメントsetFocus()(強調を追加):

void QWidget::setFocus ( Qt::FocusReason reason )

このウィジェットまたはその親の 1 つがアクティブな window である場合、このウィジェット (またはそのフォーカス プロキシ) にキーボード入力フォーカスを与えます。

私が理解しているようにsetFocus、トップレベルのウィジェット (ウィンドウ) をアクティブにしません。アクティブなウィンドウ内でフォーカスを変更します。

.activateWindow()を、おそらく と一緒に使用し.raise()ます。

于 2012-09-08T02:15:22.770 に答える