Estoy creando plugin de QGIS y estoy informando al usuario sobre el progreso de la computación a través de QProgressBar, que se muestra en messageBar. He añadido botón Cancelar, que proporciona al usuario la posibilidad de la final de la computación (muestra QMessageBox con la pregunta si el usuario desea final de computación o no). Me gustaría implementar la misma funcionalidad como botón Cancelar botón x, que se crea automáticamente como parte de messageBar o borrar completamente, por lo que habrá sólo botón Cancelar.
¿Alguien tiene una idea de cómo deshacerse de los botones x, o lo que se emite la señal, cuando se hace clic? He encontrado una señal en QObject clase destruido, pero si he entendido bien a partir de la documentación, el proceso de destrucción de QObject no puede ser detenido de esta manera.
Para la ilustración, mi código es este:
def progressBar(self):
"""Initializing progress bar.
"""
self.progressMessageBar = iface.messageBar().createMessage(u"Ground Radiation Monitoring:",u" Computing...")
self.progress = QProgressBar()
self.progress.setMaximum(100)
self.progress.setAlignment(Qt.AlignLeft|Qt.AlignVCenter)
self.cancelButton = QtGui.QPushButton()
self.cancelButton.setText('Cancel')
self.progressMessageBar.layout().addWidget(self.cancelButton)
self.progressMessageBar.layout().addWidget(self.progress)
self.iface.messageBar().pushWidget(self.progressMessageBar, iface.messageBar().INFO)
self.cancelButton.clicked.connect(self.onCancelButton)
Y messageBar: