我有一个 QDialog 对象。当用户单击X
按钮或按下Ctrl+Q
时,我希望对话框转到最小化视图或系统托盘图标,而不是关闭。我怎么做?
问问题
24286 次
1 回答
22
一个最小化而不是关闭的简单子类如下:
class MyDialog(QtGui.QDialog):
# ...
def __init__(self, parent=None):
super(MyDialog, self).__init__(parent)
# when you want to destroy the dialog set this to True
self._want_to_close = False
def closeEvent(self, evnt):
if self._want_to_close:
super(MyDialog, self).closeEvent(evnt)
else:
evnt.ignore()
self.setWindowState(QtCore.Qt.WindowMinimized)
您可以在交互式解释器中使用此代码段对其进行测试:
>>> from PyQt4 import QtCore, QtGui
>>> app = QtGui.QApplication([])
>>> win = MyDialog()
>>> win.show()
>>> app.exec_() #after this try to close the dialog, it wont close bu minimize
于 2012-09-11T09:29:52.503 回答