我正在使用PyQt编写一个非常小的应用程序。目前为止,我所有的测试都在Ubuntu / gnome上进行。
我想要一个单独的“弹出”样式窗口,没有任务栏/面板条目,一旦失去焦点就会关闭自己(和应用程序)。
Qt.Popup标志似乎符合要求,但我遇到了奇怪的问题。我注意到,在应用程序启动时很容易将焦点从应用程序中移开,留下一个没有焦点的弹出窗口,现在无法关闭它,因为它无法失去焦点。
下面是一个简化的示例:
我想要一个单独的“弹出”样式窗口,没有任务栏/面板条目,一旦失去焦点就会关闭自己(和应用程序)。
Qt.Popup标志似乎符合要求,但我遇到了奇怪的问题。我注意到,在应用程序启动时很容易将焦点从应用程序中移开,留下一个没有焦点的弹出窗口,现在无法关闭它,因为它无法失去焦点。
下面是一个简化的示例:
#!/usr/bin/python
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QDialog()
w.setWindowFlags(Qt.Popup)
w.exec_()
如果在程序启动的同时点击一下,QDialog将出现但没有焦点,并且无论如何都不会关闭。点击弹出窗口无法恢复焦点或关闭它。
我可以在弹出窗口上添加一个关闭按钮(我打算这样做!),但这并不能修复失去焦点时关闭的问题。我应该在Qt.Popup窗口中做些什么来防止这种情况发生,或者有没有什么方法可以解决这个问题?