简体   繁体   English

如何在PyQt中激活应用程序窗口

[英]How to activate application window in PyQt

I tried to set window flags: 我试图设置窗口标志:

self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)

it works perfectly but event keyPressEvent doesn't firing. 它工作正常,但事件keyPressEvent不会触发。 After I activate window (ALT+TAB) event starts and work. 在我激活窗口(ALT + TAB)之后,事件开始并起作用。

By the way, I tried to activate window with call this event: self.activateWindow() but it doesn't work for me. 顺便说一句,我试图通过调用以下事件来激活窗口: self.activateWindow()但它对我不起作用。

How to fix it? 如何解决?

full-code: 完整代码:

def show(self):
    geometry = QtGui.QApplication.desktop().screenGeometry()
    self.setFixedSize(geometry.width(), geometry.height())
    self.setWindowFlags(self.windowFlags() | QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.FramelessWindowHint)
    self.setWindowOpacity(.3)
    self.setStyleSheet("background: 'black'")

    self.raise_()
    self.show()

def keyPressEvent(self, e):
    key = e.key()
    if key == QtCore.Qt.Key_Escape:
        self.close()

Thanks. 谢谢。

您应该尝试的第一件事是:

self.setFocus(QtCore.Qt.PopupFocusReason)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM