注意该代码段属于无赖式表白,并不可用于正式表白场合。纯属娱乐,简单演示信号槽。
如果没有安装pyqt5的话,使用如下安装一下。安装的忽略下面命令
pip install PyQt5 -i https://pypi.douban.com/simple
代码如下,从窗口退出只能选择yes同意,或者retry重选。怎么样?无赖吧。代码如下:演示效果也见下图。
import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication
from PyQt5.QtGui import QPainter, QColor
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(500,360,600,300) #设置窗口的位置和大小
self.setWindowTitle('点击关闭选择') #设置窗口的标题
self.show()
def closeEvent(self,event):
reply = QMessageBox.question(self,'选一个吧',
"喜欢我吗?",QMessageBox.Yes|
QMessageBox.Retry, QMessageBox.Yes)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
def paintEvent(self, e):
qp = QPainter()
qp.begin(self)
self.drawRectangles(qp)
qp.end()
def drawRectangles(self, qp):
col = QColor(0, 0, 0)
col.setNamedColor('#d4d4d4')
qp.setPen(col)
qp.setBrush(QColor(255, 150, 100))
qp.drawRect(0, 0, 600,300)
if __name__ == "__main__":
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
点击关闭后出现
选择Yes是,触发事件 event.accept(),关闭widget窗口并终止应用程序的动作会被允许执行。
如果没有选Yes,比如选择Retry重试,则关闭窗口的动作会被忽略。继续跳回主页面。
即只有选择yes才能从界面关闭程序。
怎么样,无赖吧。纯属娱乐,不建议使用。