Es kommt aber ein Fehler, der verschwindet, wenn ich die beiden letzten Leerststrings wegmache, also wenn ich es so aufrufe: ScrollMessageBox(QMessageBox.Information, title, date)
Wieso ist dem so? ich dachte, mit *args kann ich eine beliebige Anzahl n an Argumenten übergeben.
Code: Alles auswählen
class ScrollMessageBox(QMessageBox):
def btnstate(self,b,date):
name = b.objectName()
date = date.split("_")[0]
if b.isChecked():
dbaccess.insertIntoCresWith(name, date)
if not b.isChecked():
dbaccess.deleteFromCresWith(name, date)
def __init__(self, *args, **kwargs):
QMessageBox.__init__(self, *args, **kwargs)
scroll = QScrollArea(self)
scroll.setWidgetResizable(True)
self.content = QWidget()
scroll.setWidget(self.content)
scroll.setMinimumSize (400,200)
lay = QVBoxLayout(self.content)
d = args[1].split("_")[0]
description = args[1].split("_")[1]
lay.addWidget(QLabel(description))
uncheckedResContacts = dbaccess.getUncheckedResContactsFor(d)
checkedResContacts = dbaccess.getCheckedResContactsFor(d)
self.chckBoxes = {}
for d, nme in checkedResContacts.items():
cb = QCheckBox("Check to connect " + d)
cb.setChecked(True)
cb.setObjectName(d)
cb.stateChanged.connect(partial(self.btnstate, cb, nme))
self.chckBoxes[d] = True
lay.addWidget(cb)
for entry in checkedResContacts:
if entry in uncheckedResContacts:
uncheckedResContacts.pop(entry)
for d, nme in uncheckedResContacts.items():
cb = QCheckBox("Check to connect " + d)
cb.setChecked(False)
cb.setObjectName(d)
cb.stateChanged.connect(partial(self.btnstate, cb, args[1]))
self.chckBoxes[d] = False
lay.addWidget(cb)
cbfilter = QTextEdit()
cbfilter.setStyleSheet("background-color: yellow; height: 10px; max-width: 22em;");
cbfilter.setPlaceholderText("Xyz")
lay.addWidget(cbfilter)
self.layout().addWidget(scroll, 0, 0, 1, self.layout().columnCount())
self.exec_()