forked from M-Labs/artiq
Compare commits
4 Commits
88ec806879
...
b5e762854b
Author | SHA1 | Date |
---|---|---|
Simon Renblad | b5e762854b | |
Simon Renblad | d6c396fc69 | |
Simon Renblad | 5ad4199668 | |
Simon Renblad | 2d8a3d14a6 |
|
@ -8,7 +8,6 @@ from PyQt5 import QtCore, QtWidgets
|
|||
from artiq.coredevice.comm_moninj import CommMonInj, TTLOverride, TTLProbe
|
||||
from artiq.coredevice.ad9912_reg import AD9912_SER_CONF
|
||||
from artiq.gui.tools import LayoutWidget
|
||||
from artiq.gui.flowlayout import FlowLayout
|
||||
from artiq.gui.models import DictSyncTreeSepModel
|
||||
|
||||
|
||||
|
@ -36,18 +35,15 @@ class _TTLWidget(QtWidgets.QFrame):
|
|||
self.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
|
||||
grid = QtWidgets.QGridLayout()
|
||||
grid.setContentsMargins(0, 0, 0, 0)
|
||||
grid.setHorizontalSpacing(0)
|
||||
grid.setContentsMargins(2, 2, 2, 2)
|
||||
grid.setHorizontalSpacing(2)
|
||||
grid.setVerticalSpacing(0)
|
||||
self.setLayout(grid)
|
||||
label = QtWidgets.QLabel(title)
|
||||
label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
label.setSizePolicy(QtWidgets.QSizePolicy.Ignored,
|
||||
QtWidgets.QSizePolicy.Preferred)
|
||||
grid.addWidget(label, 1, 1)
|
||||
grid.addWidget(label, 0, 0)
|
||||
|
||||
self.stack = QtWidgets.QStackedWidget()
|
||||
grid.addWidget(self.stack, 2, 1)
|
||||
grid.addWidget(self.stack, 0, 1)
|
||||
|
||||
self.direction = QtWidgets.QLabel()
|
||||
self.direction.setAlignment(QtCore.Qt.AlignCenter)
|
||||
|
@ -61,22 +57,21 @@ class _TTLWidget(QtWidgets.QFrame):
|
|||
self.override.setText("OVR")
|
||||
self.override.setCheckable(True)
|
||||
self.override.setToolTip("Override")
|
||||
grid_cb.addWidget(self.override, 3, 1)
|
||||
grid_cb.addWidget(self.override, 0, 0)
|
||||
self.level = QtWidgets.QToolButton()
|
||||
self.level.setText("LVL")
|
||||
self.level.setCheckable(True)
|
||||
self.level.setToolTip("Level")
|
||||
grid_cb.addWidget(self.level, 3, 2)
|
||||
grid_cb.addWidget(self.level, 0, 1)
|
||||
self.stack.addWidget(grid_cb)
|
||||
|
||||
self.value = QtWidgets.QLabel()
|
||||
self.value.setAlignment(QtCore.Qt.AlignCenter)
|
||||
grid.addWidget(self.value, 3, 1)
|
||||
self.value.setAlignment(QtCore.Qt.AlignRight)
|
||||
grid.addWidget(self.value, 0, 2)
|
||||
|
||||
grid.setRowStretch(1, 1)
|
||||
grid.setRowStretch(2, 0)
|
||||
grid.setRowStretch(3, 0)
|
||||
grid.setRowStretch(4, 1)
|
||||
grid.setColumnStretch(0, 1)
|
||||
grid.setColumnStretch(1, 1)
|
||||
grid.setColumnStretch(2, 1)
|
||||
|
||||
self.override.clicked.connect(self.override_toggled)
|
||||
self.level.clicked.connect(self.level_toggled)
|
||||
|
@ -174,13 +169,12 @@ class _DDSWidget(QtWidgets.QFrame):
|
|||
self.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
|
||||
grid = QtWidgets.QGridLayout()
|
||||
grid.setContentsMargins(0, 0, 0, 0)
|
||||
grid.setHorizontalSpacing(0)
|
||||
grid.setVerticalSpacing(0)
|
||||
grid.setContentsMargins(2, 2, 2, 2)
|
||||
grid.setHorizontalSpacing(2)
|
||||
self.setLayout(grid)
|
||||
label = QtWidgets.QLabel(title)
|
||||
label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
grid.addWidget(label, 1, 1)
|
||||
grid.addWidget(label, 0, 0)
|
||||
|
||||
# FREQ DATA/EDIT FIELD
|
||||
self.data_stack = QtWidgets.QStackedWidget()
|
||||
|
@ -189,15 +183,14 @@ class _DDSWidget(QtWidgets.QFrame):
|
|||
grid_disp = LayoutWidget()
|
||||
grid_disp.layout.setContentsMargins(0, 0, 0, 0)
|
||||
grid_disp.layout.setHorizontalSpacing(0)
|
||||
grid_disp.layout.setVerticalSpacing(0)
|
||||
|
||||
self.value_label = QtWidgets.QLabel()
|
||||
self.value_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
grid_disp.addWidget(self.value_label, 0, 1, 1, 2)
|
||||
self.value_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
|
||||
grid_disp.addWidget(self.value_label, 0, 0, 1, 4)
|
||||
|
||||
unit = QtWidgets.QLabel("MHz")
|
||||
unit.setAlignment(QtCore.Qt.AlignCenter)
|
||||
grid_disp.addWidget(unit, 0, 3, 1, 1)
|
||||
grid_disp.addWidget(unit, 0, 4, 1, 1)
|
||||
|
||||
self.data_stack.addWidget(grid_disp)
|
||||
|
||||
|
@ -209,13 +202,13 @@ class _DDSWidget(QtWidgets.QFrame):
|
|||
|
||||
self.value_edit = _CancellableLineEdit(self)
|
||||
self.value_edit.setAlignment(QtCore.Qt.AlignRight)
|
||||
grid_edit.addWidget(self.value_edit, 0, 1, 1, 2)
|
||||
grid_edit.addWidget(self.value_edit, 0, 0, 1, 4)
|
||||
unit = QtWidgets.QLabel("MHz")
|
||||
unit.setAlignment(QtCore.Qt.AlignCenter)
|
||||
grid_edit.addWidget(unit, 0, 3, 1, 1)
|
||||
grid_edit.addWidget(unit, 0, 4, 1, 1)
|
||||
self.data_stack.addWidget(grid_edit)
|
||||
|
||||
grid.addWidget(self.data_stack, 2, 1)
|
||||
grid.addWidget(self.data_stack, 0, 2)
|
||||
|
||||
# BUTTONS
|
||||
self.button_stack = QtWidgets.QStackedWidget()
|
||||
|
@ -226,14 +219,14 @@ class _DDSWidget(QtWidgets.QFrame):
|
|||
set_btn = QtWidgets.QToolButton()
|
||||
set_btn.setText("Set")
|
||||
set_btn.setToolTip("Set frequency")
|
||||
set_grid.addWidget(set_btn, 0, 1, 1, 1)
|
||||
set_grid.addWidget(set_btn, 0, 0, 1, 1)
|
||||
|
||||
# for urukuls also allow switching off RF
|
||||
if is_urukul:
|
||||
off_btn = QtWidgets.QToolButton()
|
||||
off_btn.setText("Off")
|
||||
off_btn.setToolTip("Switch off the output")
|
||||
set_grid.addWidget(off_btn, 0, 2, 1, 1)
|
||||
set_grid.addWidget(off_btn, 0, 1, 1, 1)
|
||||
|
||||
self.button_stack.addWidget(set_grid)
|
||||
|
||||
|
@ -242,17 +235,13 @@ class _DDSWidget(QtWidgets.QFrame):
|
|||
apply = QtWidgets.QToolButton()
|
||||
apply.setText("Apply")
|
||||
apply.setToolTip("Apply changes")
|
||||
apply_grid.addWidget(apply, 0, 1, 1, 1)
|
||||
apply_grid.addWidget(apply, 0, 0, 1, 1)
|
||||
cancel = QtWidgets.QToolButton()
|
||||
cancel.setText("Cancel")
|
||||
cancel.setToolTip("Cancel changes")
|
||||
apply_grid.addWidget(cancel, 0, 2, 1, 1)
|
||||
apply_grid.addWidget(cancel, 0, 1, 1, 1)
|
||||
self.button_stack.addWidget(apply_grid)
|
||||
grid.addWidget(self.button_stack, 3, 1)
|
||||
|
||||
grid.setRowStretch(1, 1)
|
||||
grid.setRowStretch(2, 1)
|
||||
grid.setRowStretch(3, 1)
|
||||
grid.addWidget(self.button_stack, 0, 1)
|
||||
|
||||
set_btn.clicked.connect(self.set_clicked)
|
||||
apply.clicked.connect(self.apply_changes)
|
||||
|
@ -366,21 +355,16 @@ class _DACWidget(QtWidgets.QFrame):
|
|||
self.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||
|
||||
grid = QtWidgets.QGridLayout()
|
||||
grid.setContentsMargins(0, 0, 0, 0)
|
||||
grid.setHorizontalSpacing(0)
|
||||
grid.setVerticalSpacing(0)
|
||||
grid.setContentsMargins(2, 2, 2, 2)
|
||||
grid.setHorizontalSpacing(2)
|
||||
self.setLayout(grid)
|
||||
label = QtWidgets.QLabel("{} ch{}".format(title, channel))
|
||||
label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
grid.addWidget(label, 1, 1)
|
||||
label.setAlignment(QtCore.Qt.AlignLeft)
|
||||
grid.addWidget(label, 0, 1)
|
||||
|
||||
self.value = QtWidgets.QLabel()
|
||||
self.value.setAlignment(QtCore.Qt.AlignCenter)
|
||||
grid.addWidget(self.value, 2, 1, 6, 1)
|
||||
|
||||
grid.setRowStretch(1, 1)
|
||||
grid.setRowStretch(2, 0)
|
||||
grid.setRowStretch(3, 1)
|
||||
self.value.setAlignment(QtCore.Qt.AlignRight)
|
||||
grid.addWidget(self.value, 0, 2, 1, 1)
|
||||
|
||||
def set_value(self, value):
|
||||
self.value.setText("<font size=\"4\">{:.3f}</font><font size=\"2\"> %</font>"
|
||||
|
@ -860,15 +844,19 @@ class MonInjDock(QtWidgets.QDockWidget):
|
|||
layout.addWidget(add_channel_btn, 0, 0, colspan=1)
|
||||
scroll_area = QtWidgets.QScrollArea()
|
||||
layout.addWidget(scroll_area, 1, 0, colspan=10)
|
||||
self.grid = FlowLayout()
|
||||
self.grid = QtWidgets.QVBoxLayout()
|
||||
self.spacer = QtWidgets.QSpacerItem(50, 500, QtWidgets.QSizePolicy.Ignored,
|
||||
QtWidgets.QSizePolicy.Fixed)
|
||||
grid_widget = QtWidgets.QWidget()
|
||||
grid_widget.setLayout(self.grid)
|
||||
scroll_area.setWidgetResizable(True)
|
||||
scroll_area.setWidget(grid_widget)
|
||||
|
||||
def layout_widgets(self, handlers):
|
||||
self.grid.removeItem(self.spacer)
|
||||
for handler in handlers:
|
||||
self.grid.addWidget(handler.widget)
|
||||
self.grid.insertItem(-1, self.spacer)
|
||||
|
||||
def set_channels(self, handlers):
|
||||
self._channel_model.update(handlers)
|
||||
|
|
Loading…
Reference in New Issue