10

ユーザーが別のウィンドウをクリックすると、ウィンドウにフォーカスを移そうとしています。

現在、2 つのウィンドウがあります。ウィンドウ 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 にフォーカスが戻りませんでした。

助言がありますか?

4

4 に答える 4

13

常にトップに留まるようwindow_bにするには、 windowflag を追加する必要がありますQtCore.Qt.WindowStaysOnTopHint。あなたの__init__追加で呼び出し

self.setWindowFlags(PyQt4.QtCore.Qt.WindowStaysOnTopHint)

これはウィンドウ マネージャへのヒントにすぎず、成功する保証はないことを付け加えておきます。

于 2012-09-05T12:00:03.753 に答える