|
|
@ -26,6 +26,41 @@ from PyQt5 import QtCore, QtGui, QtWidgets |
|
|
|
from hashlib import md5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def makeValueWidget(value:any): |
|
|
|
"""Create a widget just from a value. Needs an external label e.g. in a formLayout. |
|
|
|
First usecase was laborejo lilypond metadata and properties where it edited an engine-dict |
|
|
|
directly and inplace. |
|
|
|
Use with getValueFromWidget""" |
|
|
|
types = { |
|
|
|
str : QtWidgets.QLineEdit, |
|
|
|
int : QtWidgets.QSpinBox, |
|
|
|
float : QtWidgets.QDoubleSpinBox, |
|
|
|
bool : QtWidgets.QCheckBox, |
|
|
|
} |
|
|
|
typ = type(value) |
|
|
|
widget = types[typ]() |
|
|
|
|
|
|
|
if typ == str: |
|
|
|
widget.setText(value) |
|
|
|
elif typ == int or typ == float: |
|
|
|
widget.setValue(value) |
|
|
|
elif typ == bool: |
|
|
|
widget.setChecked(value) |
|
|
|
return widget |
|
|
|
|
|
|
|
|
|
|
|
def getValueFromWidget(widget): |
|
|
|
"""Use with makeValueWidget""" |
|
|
|
typ = type(widget) |
|
|
|
if typ == QtWidgets.QLineEdit: |
|
|
|
return widget.text() |
|
|
|
elif typ == QtWidgets.QSpinBox or typ == QtWidgets.QDoubleSpinBox: |
|
|
|
return widget.value() |
|
|
|
elif typ == QtWidgets.QCheckBox: |
|
|
|
return widget.isChecked() |
|
|
|
|
|
|
|
|
|
|
|
def iconFromString(st, size=128): |
|
|
|
px = QtGui.QPixmap(size,size) |
|
|
|
color = stringToColor(st) |
|
|
|