diff --git a/examples/simple.py b/examples/simple.py index d706d4e..ca77066 100644 --- a/examples/simple.py +++ b/examples/simple.py @@ -19,7 +19,7 @@ (None, 'Information:'), ('Password', 'password'), ('Age', 30), - ('Strength', 'slider'), + ('volume.png', 'slider'), ('Sex', [0, 'Male', 'Female']), ('Sex', (0, 'Male', 'Female')), ('Size', 12.1), diff --git a/examples/volume.png b/examples/volume.png new file mode 100644 index 0000000..e92cdb8 Binary files /dev/null and b/examples/volume.png differ diff --git a/formlayout.py b/formlayout.py index 0153078..55812d7 100644 --- a/formlayout.py +++ b/formlayout.py @@ -553,6 +553,9 @@ def get_dialog(self): return dialog def setup(self): + global img_fmt + img_fmt = tuple(['.'+str(bytes(ext).decode()) for ext + in QImageReader.supportedImageFormats()]) for label, value in self.data: if DEBUG_FORMLAYOUT: print("value:", value) @@ -569,8 +572,6 @@ def setup(self): field = PushLayout(value, self) self.formlayout.addRow(field) else: - img_fmt = tuple(['.'+str(bytes(ext).decode()) for ext - in QImageReader.supportedImageFormats()]) if value.endswith(img_fmt): # Image pixmap = QPixmap(value) @@ -752,10 +753,16 @@ def setup(self): style = "background-color:" + self.widget_color + ";" field.setStyleSheet(style) + if label.endswith(img_fmt): + pixmap = QPixmap(label) + label = QLabel() + label.setPixmap(pixmap) + else: + label = QLabel(label) if self.type == 'form': self.formlayout.addRow(label, field) elif self.type == 'questions': - self.formlayout.addRow(QLabel(label)) + self.formlayout.addRow(label) self.formlayout.addRow(field) self.widgets.append(field) @@ -856,7 +863,12 @@ def get(self): if label.endswith(' *'): label = label[:-2] required = 'true' - child = ET.SubElement(form, label) + if label.endswith(img_fmt): + rdot = label.rfind('.') + child = ET.SubElement(form, label[:rdot]) + child.attrib['format'] = label[rdot+1:] + else: + child = ET.SubElement(form, label) if isinstance(value, tuple): child.text = to_text_string(value[0]) child.attrib['amount'] = to_text_string(value[1])