From 8432db0f9f3a720bd7ba799ef7980e095f314742 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak <pieter.eendebak@gmail.com> Date: Tue, 7 Jul 2020 10:37:50 +0200 Subject: [PATCH] fix labels of virtual matrix --- .../virt_gate_matrix/virt_gate_matrix_main.py | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/core_tools/GUI/virt_gate_matrix/virt_gate_matrix_main.py b/core_tools/GUI/virt_gate_matrix/virt_gate_matrix_main.py index 0d0f2960..ad42b315 100644 --- a/core_tools/GUI/virt_gate_matrix/virt_gate_matrix_main.py +++ b/core_tools/GUI/virt_gate_matrix/virt_gate_matrix_main.py @@ -1,3 +1,4 @@ +from typing import List from core_tools.GUI.virt_gate_matrix.virt_gate_matrix_window import Ui_MainWindow from PyQt5 import QtCore, QtGui, QtWidgets from functools import partial @@ -18,7 +19,7 @@ class virt_gate_matrix_GUI(QtWidgets.QMainWindow, Ui_MainWindow): self.gates_object.hardware.AWG_to_dac_conversion = pulse_lib.AWG_to_dac_ratio # reassigning since python pointers do not really work in python :( (<3<3<3 c++) pulse_lib.AWG_to_dac_ratio = self.gates_object.hardware.AWG_to_dac_conversion - + # set graphical user interface self.app = QtCore.QCoreApplication.instance() if self.app is None: @@ -31,7 +32,7 @@ class virt_gate_matrix_GUI(QtWidgets.QMainWindow, Ui_MainWindow): for gate in pulse_lib.AWG_to_dac_ratio: if gate not in pulse_lib.awg_markers: self.add_gate(gate) - + self.add_spacer() @@ -80,13 +81,13 @@ class virt_gate_matrix_GUI(QtWidgets.QMainWindow, Ui_MainWindow): db_ratio.setValue(20*np.log10(self.pulse_lib.AWG_to_dac_ratio[gate_name])) db_ratio.valueChanged.connect(partial(self.update_db_ratio, gate_name)) self.verticalLayout_3.addWidget(db_ratio) - + self.AWG_attentuation_local_data[gate_name] = (v_ratio, db_ratio) def update_db_ratio(self, gate_name): ''' On change of the db ratio, update the voltage ratio to the corresponding value + update in the virtual gate matrixes. - + Args: gate_name (str) : name of the gate the is being updated ''' @@ -100,7 +101,7 @@ class virt_gate_matrix_GUI(QtWidgets.QMainWindow, Ui_MainWindow): def update_v_ratio(self, gate_name): ''' On change of the voltage ratio, update the db ratio to the corresponding value + update in the virtual gate matrixes. - + Args: gate_name (str) : name of the gate the is being updated ''' @@ -156,19 +157,19 @@ class virt_gate_matrix_GUI(QtWidgets.QMainWindow, Ui_MainWindow): tableWidget.setRowCount(len(virtual_gate_set)) for i in range(len(virtual_gate_set)): item = QtWidgets.QTableWidgetItem() - tableWidget.setVerticalHeaderItem(i, item) + tableWidget.setHorizontalHeaderItem(i, item) item.setText(_translate("MainWindow", virtual_gate_set.real_gate_names[i])) item = QtWidgets.QTableWidgetItem() - tableWidget.setHorizontalHeaderItem(i, item) + tableWidget.setVerticalHeaderItem(i, item) item.setText(_translate("MainWindow", virtual_gate_set.virtual_gate_names[i])) - + tableWidget.horizontalHeader().setDefaultSectionSize(65) tableWidget.horizontalHeader().setMaximumSectionSize(100) tableWidget.horizontalHeader().setMinimumSectionSize(30) tableWidget.verticalHeader().setDefaultSectionSize(37) gridLayout.addWidget(tableWidget, 0, 0, 1, 1) - + update_list = [] for i in range(len(virtual_gate_set)): for j in range(len(virtual_gate_set)): @@ -192,7 +193,7 @@ class virt_gate_matrix_GUI(QtWidgets.QMainWindow, Ui_MainWindow): doubleSpinBox.setSingleStep(0.01) doubleSpinBox.setDecimals(3) doubleSpinBox.setValue(virtual_gate_set.virtual_gate_matrix[i,j]) - doubleSpinBox.setObjectName("doubleSpinBox") + doubleSpinBox.setObjectName(f'doubleSpinBox-{i}-{j}') doubleSpinBox.valueChanged.connect(partial(self.linked_result, virtual_gate_set.virtual_gate_matrix, i, j, doubleSpinBox)) update_list.append((i,j, doubleSpinBox)) tableWidget.setCellWidget(i, j, doubleSpinBox) @@ -207,16 +208,22 @@ class virt_gate_matrix_GUI(QtWidgets.QMainWindow, Ui_MainWindow): matrix[i,j] = spin_box.value() self.gates_object.hardware.sync_data() - def update_v_gates(self, matrix, update_list): - for i,j, spin_box in update_list: + def update_v_gates(self, matrix : np.ndarray, update_list : List[QtWidgets.QDoubleSpinBox]): + """ Update the virtual gate matrix elements + + Args: + matrix: Array with new values + update_list: List with GUI boxes + """ + for row, column, spin_box in update_list: if not spin_box.hasFocus(): - spin_box.setValue(matrix[i,j]) + spin_box.setValue(matrix[row, column]) if __name__ == "__main__": import sys from V2_software.pulse_lib_config.Init_pulse_lib_debug import return_pulse_lib import qcodes as qc - from V2_software.drivers.virtual_gates.examples.hardware_example import hardware_example + from V2_software.drivers.virtual_gates.examples.hardware_example import hardware_example from V2_software.drivers.virtual_gates.instrument_drivers.virtual_dac import virtual_dac from V2_software.drivers.virtual_gates.instrument_drivers.gates import gates -- GitLab