result = ScrollMessageBoxShowResourceContactsAdd(None)
result.exec_()
Das Problem daei ist, dass, wenn ich den "OK" - Button drücke, ein weiteres Widget, also eine weitere Instanz, erscheint. Beim ersten Drücken von "OK" habe ich zwei Widgets / Fenster, dann drei usw. Wie kommt das? Ich habe den Fehler nicht finden können.
Hier der Code:
Ich habe eine Widgetklasse, deren Code ich weiter unten poste. Diese führe ich wie folgt aus:
Code: Alles auswählen
result = ScrollMessageBoxShowResourceContactsAdd(None)
result.exec_()
Das Problem daei ist, dass, wenn ich den
Hier der Code:
[code]
class ScrollMessageBoxShowResourceContactsAdd(QMessageBox):
def __init__(self, *args, **kwargs):
def msgbtn(tf, btn):
if btn.text().upper() == 'SAVE':
#Hier in die DB schreiben, dann das Ding neu aufrufen. #
#dbaccess.updateMainFilterString2("")
self.close()
if btn.text().upper() == 'OK':
#Hier in die DB schreiben, dann das Ding neu aufrufen. #
#dbaccess.updateMainFilterString2(tf.text())
self.close()
print("Warum schließt das Ding nicht?")
result = ScrollMessageBoxShowResourceContactsAdd(None)
result.exec_()
if not (btn.text().upper() == 'OK' or btn.text().upper() == 'SAVE'):
sys.exit(self.exec_())
QMessageBox.__init__(self, *args, **kwargs)
self.setWindowTitle("Ressourcenkontakte einsehen oder hinzufügen.")
self.setStandardButtons(QMessageBox.Ok | QMessageBox.Save)
self.setInformativeText("Filtern: OK drücken. ~ Hinzufügen: Häkchen (od. nicht), dann 'SAVE'")
filtertf = QLineEdit()
filtertf.setStyleSheet("background-color: yellow; max-height: 2em; max-width: 22em;");
self.buttonClicked.connect(partial(msgbtn, filtertf))
scroll = QScrollArea(self)
scroll.setWidgetResizable(True)
self.content = QWidget()
scroll.setWidget(self.content)
lay = QVBoxLayout(self.content)
delendaDict = {}
self.delDict = {}
filterText = "foo" #dbaccess.filterText2()[0][0]
filtertf.setText(filterText)
if filterText == "":
for rc in []: #Dies ist für das Problem irrelevant.
deleteCB = QCheckBox('add', self)
deleteCB.stateChanged.connect(partial(self.btnstateDel, deleteCB, delendaDict))
deleteCB.setObjectName(rc[9])
qb = QPushButton(rc[9], self)
qb.released.connect(partial(self.button_releasedRC, rc[9]))
lay.addWidget(qb)
lay.addWidget(deleteCB)
else:
for rc in []:
deleteCB = QCheckBox('add', self)
deleteCB.stateChanged.connect(partial(self.btnstateDel, deleteCB, delendaDict))
deleteCB.setObjectName(rc[9])
qb = QPushButton(rc[9], self)
qb.released.connect(partial(self.button_releasedRC, rc[9]))
lay.addWidget(qb)
lay.addWidget(deleteCB)
lay.addWidget(filtertf)
delete_all_rc = QPushButton('Alle Ressourcenkontakte hinzufügen.', self)
delete_all_rc.released.connect(partial(self.button_releasedDeAllRC))
lay.addWidget(delete_all_rc)
self.buttonClicked.connect(self.msgButtonClickDel)
self.layout().addWidget(scroll, 0, 0, 1, self.layout().columnCount())
self.setStyleSheet("QScrollArea{min-width:410 px; min-height: 600px}")
def btnstateDel(self, dlt, dlts):
dlts[dlt.objectName()] = False
if dlt.isChecked:
dlts[dlt.objectName()] = True
self.delDict = dlts
def msgButtonClickDel(self, i):
if i.text().upper() == "SAVE":
#Das hier ist noch zu implementieren.
pass
#dbaccess.deleteRCs2(self.delDict)
def button_releasedRC(self, nameshow):
ScrollMessageBoxRCInfo(QMessageBox.Information, nameshow, '')
def button_releasedDeAllRC(self):
#Das hier ist noch zu implementieren.
pass
#dbaccess.deleteAllRCs()
self.close()