在以下代码段中,PyQt5
的行为与PyQt4
和PySide
不同。在PyQt5
按下按钮时,'无'打印到控制台,这意味着删除小部件时信号未断开。在PyQt4
和PySide
中,一切都很好,没有打印出来,即信号断开连接。这是一个错误还是我做错了什么?我有PyQt5 v5.7.0
。
import sys
from PyQt5 import QtCore, QtWidgets # for PyQt5
#from PyQt4 import QtCore, QtGui # for PyQt4
#from PySide import QtCore, QtGui # for PySide
#QtWidgets = QtGui # for PySide and PyQt4
class MyWidget(QtCore.QObject):
def doChange(self):
print(self)
app = QtWidgets.QApplication([])
w = MyWidget()
button = QtWidgets.QPushButton("Push me")
button.clicked.connect(w.doChange)
del w
button.show()
sys.exit(app.exec_())
更新:此问题仅在Linux上可观察到。 Windows似乎工作正常。似乎这是一个错误。