Справочная информация:
Я пытаюсь использовать QT конструктор в качестве формы атрибута QGIS (это нормально и работает), но код для этого не следует ни за какой документацией или примерами, которые я смог найти. Я нашел немного с 2007 года, который, по крайней мере, позволил мне много работать, но я чувствую, что это ужасно неэффективно.
Проблема:
Получение доступа к событиям (closeEvent) из диалоговой формы в QGIS.
import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Message box')
self.show()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message',
"Are you sure to quit?", QMessageBox.Yes |
QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
Я получил этот код от Zetcode Link , который наверняка будет работать для автономной версии pyqt5, но если я попытаюсь использовать его в qgis, это приведет к сбою всего приложения. Я полагаю, что это потому, что QGIS является приложением, и диалог каким-то образом находится под этим, поэтому событие может быть связано с диалогом по-другому, и я не уверен, как получить к нему доступ. Кто-нибудь имеет представление о том, как я могу получить доступ к событию закрытия для диалога, созданного с использованием форм атрибутов QGIS.