Я делаю пользовательские формы для qgis 3, используя qt designer и некоторый код на python для проверки.
Однако у меня проблема с отображением кнопки «OK» и «Отмена».Сначала я отключаю кнопку, а затем соединяю их с другой функцией для проверки данных в форме.
Однако, когда я пытаюсь вызвать функцию закрытия (чтобы закрыть форму окна), она только заставляет форму исчезнуть, но окно все еще там
Вот мой код:
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import QLineEdit, QDialogButtonBox, QComboBox, QLabel, QPushButton
import psycopg2
myDialog = None
cbb_implant = None
Validat = 0
def formOpen(dialog,layerid,featureid):
bdd = psycopg2.connect("host=localhost")
cursor = bdd.cursor()
global myDialog
myDialog = dialog
dialog.hideButtonBox()
global cbb_implant
cbb_implant = dialog.findChild(QComboBox, "cbb_implantation")
cursor.execute('SELECT * FROM l_implantation_type')
fetch = cursor.fetchall()
if len(fetch)>0:
for i in range(0,len(fetch)) :
cbb_implant.addItem(fetch[i][1])
cbb_implant.setCurrentIndex(7)
ok_chem = dialog.findChild(QPushButton, "ok_chem")
ok_chem.clicked.connect(validate)
def validate():
global Validat
if Validat == 0 :
print("HELLO")
Validat = 1
else :
myDialog.save()
myDialog.close()
Спасибо за помощь