forked from M-Labs/artiq
gui/entries: split widget styling into separate color setting methods
This commit is contained in:
parent
c8d0ab9afe
commit
d9cc35c724
@ -31,23 +31,53 @@ class EntryTreeWidget(QtWidgets.QTreeWidget):
|
|||||||
self.setHorizontalScrollMode(self.ScrollMode.ScrollPerPixel)
|
self.setHorizontalScrollMode(self.ScrollMode.ScrollPerPixel)
|
||||||
self.setVerticalScrollMode(self.ScrollMode.ScrollPerPixel)
|
self.setVerticalScrollMode(self.ScrollMode.ScrollPerPixel)
|
||||||
|
|
||||||
self.setStyleSheet("QTreeWidget {background: " +
|
|
||||||
self.palette().midlight().color().name() + " ;}")
|
|
||||||
|
|
||||||
self.viewport().installEventFilter(WheelFilter(self.viewport(), True))
|
self.viewport().installEventFilter(WheelFilter(self.viewport(), True))
|
||||||
|
|
||||||
self._groups = dict()
|
self._groups = dict()
|
||||||
self._arg_to_widgets = dict()
|
self._arg_to_widgets = dict()
|
||||||
self._arguments = dict()
|
self._arguments = dict()
|
||||||
|
|
||||||
|
self.set_background_color()
|
||||||
self.gradient = QtGui.QLinearGradient(
|
self.gradient = QtGui.QLinearGradient(
|
||||||
0, 0, 0, QtGui.QFontMetrics(self.font()).lineSpacing() * 2.5)
|
0, 0, 0, QtGui.QFontMetrics(self.font()).lineSpacing() * 2.5)
|
||||||
self.gradient.setColorAt(0, self.palette().base().color())
|
self.set_gradient_color()
|
||||||
self.gradient.setColorAt(1, self.palette().midlight().color())
|
self.set_group_color()
|
||||||
|
|
||||||
self.bottom_item = QtWidgets.QTreeWidgetItem()
|
self.bottom_item = QtWidgets.QTreeWidgetItem()
|
||||||
self.addTopLevelItem(self.bottom_item)
|
self.addTopLevelItem(self.bottom_item)
|
||||||
|
|
||||||
|
def set_background_color(self, color=None):
|
||||||
|
if color is None:
|
||||||
|
base_color = self.palette().base().color()
|
||||||
|
else:
|
||||||
|
base_color = QtGui.QColor(color)
|
||||||
|
self.palette().setColor(QtGui.QPalette.ColorRole.Base, base_color)
|
||||||
|
|
||||||
|
def set_gradient_color(self, color=None):
|
||||||
|
if color is None:
|
||||||
|
start_color = self.palette().base().color()
|
||||||
|
end_color = self.palette().midlight().color()
|
||||||
|
else:
|
||||||
|
start_color = QtGui.QColor(color)
|
||||||
|
end_color = start_color.toHsv()
|
||||||
|
end_color.setHsv(end_color.hue(),
|
||||||
|
int(end_color.saturation() * 0.8),
|
||||||
|
min(255, int(end_color.value() * 1.2)))
|
||||||
|
self.gradient.setColorAt(0, start_color)
|
||||||
|
self.gradient.setColorAt(1, end_color)
|
||||||
|
for widgets in self._arg_to_widgets.values():
|
||||||
|
for col in range(3):
|
||||||
|
widgets["widget_item"].setBackground(col, self.gradient)
|
||||||
|
|
||||||
|
def set_group_color(self, color=None):
|
||||||
|
if color is None:
|
||||||
|
group_color = self.palette().mid().color()
|
||||||
|
else:
|
||||||
|
group_color = QtGui.QColor(color)
|
||||||
|
for group in self._groups.values():
|
||||||
|
for col in range(3):
|
||||||
|
group.setBackground(col, group_color)
|
||||||
|
|
||||||
def set_argument(self, key, argument):
|
def set_argument(self, key, argument):
|
||||||
self._arguments[key] = argument
|
self._arguments[key] = argument
|
||||||
widgets = dict()
|
widgets = dict()
|
||||||
@ -63,8 +93,7 @@ class EntryTreeWidget(QtWidgets.QTreeWidget):
|
|||||||
widgets["entry"] = entry
|
widgets["entry"] = entry
|
||||||
widgets["widget_item"] = widget_item
|
widgets["widget_item"] = widget_item
|
||||||
|
|
||||||
for col in range(3):
|
self.set_gradient_color()
|
||||||
widget_item.setBackground(col, self.gradient)
|
|
||||||
font = widget_item.font(0)
|
font = widget_item.font(0)
|
||||||
font.setBold(True)
|
font.setBold(True)
|
||||||
widget_item.setFont(0, font)
|
widget_item.setFont(0, font)
|
||||||
@ -108,12 +137,12 @@ class EntryTreeWidget(QtWidgets.QTreeWidget):
|
|||||||
return self._groups[key]
|
return self._groups[key]
|
||||||
group = QtWidgets.QTreeWidgetItem([key])
|
group = QtWidgets.QTreeWidgetItem([key])
|
||||||
for col in range(3):
|
for col in range(3):
|
||||||
group.setBackground(col, self.palette().mid())
|
|
||||||
font = group.font(col)
|
font = group.font(col)
|
||||||
font.setBold(True)
|
font.setBold(True)
|
||||||
group.setFont(col, font)
|
group.setFont(col, font)
|
||||||
self.insertTopLevelItem(self.indexFromItem(self.bottom_item).row(), group)
|
self.insertTopLevelItem(self.indexFromItem(self.bottom_item).row(), group)
|
||||||
self._groups[key] = group
|
self._groups[key] = group
|
||||||
|
self.set_group_color()
|
||||||
return group
|
return group
|
||||||
|
|
||||||
def _disable_other_scans(self, current_key):
|
def _disable_other_scans(self, current_key):
|
||||||
|
Loading…
Reference in New Issue
Block a user