我正在用PyQt编写一个非常小的应用程序.到目前为止,我的所有测试都在Ubuntu / gnome上.
我想要一个单独的“Popup”样式窗口,没有任务栏/面板条目,它会在失去焦点时关闭自己(和应用程序).
Qt.Popup标志似乎符合要求,但我有一个奇怪的问题.我注意到,当应用程序开始时,将焦点从应用程序中移开是可能的(实际上非常简单),使得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窗口来防止这种情况,或者有什么方法可以解决它吗?