pyrpl.widgets.module_widgets package

Submodules

pyrpl.widgets.module_widgets.acquisition_module_widget module

class pyrpl.widgets.module_widgets.acquisition_module_widget.AcquisitionModuleWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget

init_gui()[source]
restart_clicked()[source]
run_continuous_clicked()[source]

Toggles the button run_continuous to stop or vice versa and starts he acquisition timer

run_single_clicked()[source]
update_current_average()[source]
update_running_buttons()[source]

Change text of Run continuous button and visibility of run single button according to module.running_continuous

class pyrpl.widgets.module_widgets.acquisition_module_widget.CurrentAvgLabel(parent=None)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QWidget

set_value(val)[source]

pyrpl.widgets.module_widgets.asg_widget module

A widget for the scope module

class pyrpl.widgets.module_widgets.asg_widget.AsgWidget(*args, **kwds)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget

pyrpl.widgets.module_widgets.base_module_widget module

ModuleWidgets’s hierarchy is parallel to that of Modules. Each Module instance can have a widget created by calling create_widget. To use a different class of Widget than the preset (for instance subclass it), the attribute ModuleClass.WidgetClass can be changed before calling create_widget()

class pyrpl.widgets.module_widgets.base_module_widget.EditLabel(module_widget)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.MyMenuLabel

“Edit” label

func(state)[source]
get_menu()[source]
text = ' .:Edit:. '
class pyrpl.widgets.module_widgets.base_module_widget.EraseLabel(module_widget)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.MyMenuLabel

“Erase” label

func(state)[source]
text = ' .:Erase:. '
class pyrpl.widgets.module_widgets.base_module_widget.HideShowLabel(module_widget)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.MyMenuLabel

“Hide/Show” label

get_menu()[source]
text = ' .:Hide/Show:. '
class pyrpl.widgets.module_widgets.base_module_widget.LoadLabel(module_widget)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.MyMenuLabel

“Load” label

func(state)[source]
text = ' .:Load:. '
class pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ReducedModuleWidget

Base class for a module Widget. In general, this is one of the DockWidget of the Pyrpl MainWindow.

create_title_bar()[source]
set_title(title)[source]
class pyrpl.widgets.module_widgets.base_module_widget.MyMenuLabel(module_widget)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QLabel

A label on top of the menu widget that is able to display save or load menu.

contextMenuEvent(event)[source]
get_menu()[source]
class pyrpl.widgets.module_widgets.base_module_widget.ReducedModuleWidget(name, module, parent=None)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QGroupBox

Base class for a module Widget.

In general, this is one of the DockWidget of the Pyrpl MainWindow.

attribute_changed = <MagicMock name='mock.QtCore.Signal()' id='140551782370384'>
change_options(select_attribute_name, new_options)[source]

SLOT: don’t change name unless you know what you are doing New options should be displayed for some SelectAttribute.

change_ownership()[source]

SLOT: don’t change name unless you know what you are doing Display the new ownership

create_title_bar()[source]
hide_widget()[source]

shows the widget after it has been hidden

init_attribute_layout()[source]

Automatically creates the gui properties for the register_widgets in register_names. :return:

init_gui()[source]

To be overwritten in derived class :return:

init_main_layout(orientation='horizontal')[source]
refresh_filter_options(filter_attribute_name)[source]

SLOT: don’t change name unless you know what you are doing New options should be displayed for some FilterProperty.

save_curve(x_values, y_values, **attributes)[source]

Saves the curve in some database system. To change the database system, overwrite this function or patch Module.curvedb if the interface is identical.

Parameters:
  • x_values – numpy array with x values
  • y_values – numpy array with y values
  • attributes – extra curve parameters (such as relevant module settings)
set_title(title)[source]
show_widget()[source]

shows the widget after it has been hidden

title_pos = (12, 0)
update_attribute_by_name(name, new_value_list)[source]

SLOT: don’t change name unless you know what you are doing Updates a specific attribute. New value is passed as a 1-element list to avoid typing problems in signal-slot.

class pyrpl.widgets.module_widgets.base_module_widget.SaveLabel(module_widget)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.MyMenuLabel

“Save” label

func(state)[source]
get_menu()[source]
new_state()[source]
text = ' .:Save:. '

pyrpl.widgets.module_widgets.curve_viewer_widget module

class pyrpl.widgets.module_widgets.curve_viewer_widget.CurveViewerWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ReducedModuleWidget

init_attribute_layout()[source]
init_gui()[source]

To be overwritten in derived class :return:

pyrpl.widgets.module_widgets.iir_widget module

The Iir widget allows to dynamically select zeros and poles of the iir filter

class pyrpl.widgets.module_widgets.iir_widget.IirBottomWidget(parent)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QGroupBox

BUTTONWIDTH = 300
class pyrpl.widgets.module_widgets.iir_widget.IirButtonWidget(parent)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QGroupBox

BUTTONWIDTH = 100
class pyrpl.widgets.module_widgets.iir_widget.IirGraphWidget(parent)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QGroupBox

xlog = True
class pyrpl.widgets.module_widgets.iir_widget.IirWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget

frequencies
init_gui()[source]
keyPressEvent(event)[source]

not working properly yet

keyReleaseEvent(event)[source]

not working properly yet

select_pole(plot_item, spots)[source]
select_zero(plot_item, spots)[source]
update_plot()[source]

pyrpl.widgets.module_widgets.iq_widget module

A widget for the iq modules

class pyrpl.widgets.module_widgets.iq_widget.IqWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget

Widget for the IQ module

init_gui()[source]

pyrpl.widgets.module_widgets.lockbox_widget module

The lockbox widget is composed of all the submodules widgets

class pyrpl.widgets.module_widgets.lockbox_widget.AnalogTfSpec(parent)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QWidget

A button + label that allows to display and change the transfer function specification

change(ev)[source]
change_analog_tf()[source]
class pyrpl.widgets.module_widgets.lockbox_widget.InputsWidget(all_sig_widget)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QWidget

A widget to represent all input signals on the same tab

add_input(input)[source]
input_calibrated(inputs)[source]
name = 'inputs'
remove_input(input)[source]
class pyrpl.widgets.module_widgets.lockbox_widget.LockboxInputWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget

A widget to represent a single lockbox input

hide_lock()[source]
init_gui()[source]
input_calibrated(input=None)[source]
show_lock(stage)[source]
class pyrpl.widgets.module_widgets.lockbox_widget.LockboxSequenceWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget

A widget to represent all lockbox stages

hide_widget()[source]
init_gui()[source]
show_widget()[source]
stage_created(stage)[source]
stage_deleted(stage)[source]

removes the widget corresponding to stage

update_stage_names()[source]
class pyrpl.widgets.module_widgets.lockbox_widget.LockboxStageWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ReducedModuleWidget

A widget representing a single lockbox stage

close()[source]
create_title_bar()[source]
init_gui()[source]
name
resizeEvent(evt)[source]
show_lock()[source]
class pyrpl.widgets.module_widgets.lockbox_widget.LockboxWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget

The LockboxWidget combines the lockbox submodules widget: model, inputs, outputs, lockbox_control

add_input(inputs)[source]

SLOT: don’t change name unless you know what you are doing Adds an input to the widget

button_hide1_clicked()[source]

Hide/show the signal part of the widget :return:

button_hide2_clicked()[source]

Hide/show the signal part of the widget :return:

delete_widget()[source]
hide_lock()[source]
init_gui()[source]
input_calibrated(inputs)[source]

SLOT: don’t change name unless you know what you are doing updates the plot of the input expected signal for input inputs[0]

output_created(outputs)[source]

SLOT: don’t change name unless you know what you are doing Adds an output to the widget, outputs is a singleton [outpout]

output_deleted(outputs)[source]

SLOT: don’t change name unless you know what you are doing Removes an output to the widget, outputs is a singleton [outpout]

output_renamed()[source]

SLOT: don’t change name unless you know what you are doing Refresh all output name tabs in the widget

remove_input(inputs)[source]

SLOT: don’t change name unless you know what you are doing Remove an input to the widget

state_changed(statelist)[source]

SLOT: don’t change name unless you know what you are doing Basically painting some button in green is required

update_lockstatus(islockedlist=[None])[source]
update_transfer_function(outputs)[source]

SLOT: don’t change name unless you know what you are doing updates the plot of the transfer function for output outputs[0]

class pyrpl.widgets.module_widgets.lockbox_widget.MainOutputProperties(parent)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QGroupBox

change_analog_tf()[source]
class pyrpl.widgets.module_widgets.lockbox_widget.OutputSignalWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget

change_analog_tf()[source]
init_gui()[source]
name
update_transfer_function()[source]

Updates the transfer function curve of the output.

class pyrpl.widgets.module_widgets.lockbox_widget.PidProperties(parent)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QGroupBox

toggle_mode()[source]
update_assisted_design()[source]

Does what must be done when manual/assisted design radio button was clicked

class pyrpl.widgets.module_widgets.lockbox_widget.PlusTab[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QWidget

name = '+'
class pyrpl.widgets.module_widgets.lockbox_widget.PostFiltering(parent)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QGroupBox

class pyrpl.widgets.module_widgets.lockbox_widget.StageOutputWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ReducedModuleWidget

init_attribute_layout()[source]
update_attribute_by_name(name, new_value_list)[source]
update_offset_visibility()[source]
class pyrpl.widgets.module_widgets.lockbox_widget.SweepOutputProperties(parent)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QGroupBox

class pyrpl.widgets.module_widgets.lockbox_widget.WidgetAssisted(parent)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QWidget

class pyrpl.widgets.module_widgets.lockbox_widget.WidgetManual(parent)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QWidget

pyrpl.widgets.module_widgets.module_manager_widget module

ModuleManagerWidgets are just a frame containing several identical module widgets such as iqs, pids or asgs

class pyrpl.widgets.module_widgets.module_manager_widget.AsgManagerWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.module_manager_widget.ModuleManagerWidget

class pyrpl.widgets.module_widgets.module_manager_widget.IirManagerWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.module_manager_widget.ModuleManagerWidget

class pyrpl.widgets.module_widgets.module_manager_widget.IqManagerWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.module_manager_widget.ModuleManagerWidget

adjust_drawing()[source]

When the user resizes the window, the drawing elements follow the x-positions of the corresponding attribute_widgets.

button_hide_clicked()[source]
connect(widget1, widget2, h_first=True)[source]

Connects 2 blocks with an arrow h_first means the first line originating from widget1 is horizontal.

init_gui()[source]

In addition to the normal ModuleManagerWidget stacking of module attributes, the IqManagerWidget displays a schematic of the iq module internal logic.

make_drawing()[source]

Uses the primitives defined in schematics.py to draw the diagram.

resizeEvent(event)[source]

call adjust_drawing upon resize.

class pyrpl.widgets.module_widgets.module_manager_widget.ModuleManagerWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget

add_stretch = True
contextMenuEvent(event)[source]
create_title_bar()[source]

ModuleManagerWidgets don’t have a title bar

init_gui()[source]
class pyrpl.widgets.module_widgets.module_manager_widget.PidManagerWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.module_manager_widget.ModuleManagerWidget

class pyrpl.widgets.module_widgets.module_manager_widget.ScopeManagerWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.module_manager_widget.ModuleManagerWidget

add_stretch = False

pyrpl.widgets.module_widgets.na_widget module

A widget fot the network analyzer

class pyrpl.widgets.module_widgets.na_widget.NaWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.acquisition_module_widget.AcquisitionModuleWidget

Network Analyzer Tab.

CHUNK_SIZE = 500
autoscale()[source]

log_mode = self.module.logscale self.plot_item.setLogMode(x=log_mod, y=None) # this seems also needed self.plot_item_phase.setLogMode(x=log_mod, y=None)

clear_curve()[source]

Clear all chunks

display_state(running_state)[source]

Displays one of the possible states “running_continuous”, “running_single”, “paused_continuous”, “paused_single”, “stopped”

init_gui()[source]

Sets up the gui

scan_finished()[source]

if in run continuous, needs to redisplay the number of averages

set_benchmark_text(text)[source]
starting_update_rate = 0.2
update_attribute_by_name(name, new_value_list)[source]
update_chunk(chunk_index)[source]

updates curve # chunk_index with the data from the module

update_point(index, force=False)[source]

To speed things up, the curves are plotted by chunks of self.CHUNK_SIZE points. All points between last_updated_point and index will be redrawn.

x_log_toggled()[source]

change x_log of axis

pyrpl.widgets.module_widgets.pid_widget module

A widget for pid modules.

class pyrpl.widgets.module_widgets.pid_widget.PidWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ModuleWidget

Widget for a single PID.

init_gui()[source]
update_ival()[source]

pyrpl.widgets.module_widgets.pyrpl_config_widget module

class pyrpl.widgets.module_widgets.pyrpl_config_widget.PyrplConfigWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.base_module_widget.ReducedModuleWidget

init_attribute_layout()[source]

pyrpl.widgets.module_widgets.schematics module

This file defines some primitives to draw a circuit schematic on Widgets. For now it is only used in IqManagerWidget.

class pyrpl.widgets.module_widgets.schematics.Connection(widget1, widget2, h_first, parent, show_arrow=True)[source]

Bases: object

adjust()[source]
arrow_height = 10
arrow_width = 15
margin = 15
class pyrpl.widgets.module_widgets.schematics.MyImage(widget_name, y, filename, label, parent, x_offset=0)[source]

Bases: pyrpl.widgets.module_widgets.schematics.MyItem

class pyrpl.widgets.module_widgets.schematics.MyItem(widget_name, y, label, parent, x_offset=0)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QWidget

item_x()[source]
item_y()[source]
move_to_right_position()[source]
class pyrpl.widgets.module_widgets.schematics.MyLabel(widget_name, y, label, parent, x_offset=0)[source]

Bases: pyrpl.widgets.module_widgets.schematics.MyItem

class pyrpl.widgets.module_widgets.schematics.MyLabelSignal[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QLabel

pyrpl.widgets.module_widgets.scope_widget module

A widget for the scope module

class pyrpl.widgets.module_widgets.scope_widget.ScopeWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.acquisition_module_widget.AcquisitionModuleWidget

Widget for scope

autoscale_x()[source]

Autoscale pyqtgraph. The current behavior is to autoscale x axis and set y axis to [-1, +1]

change_ownership()[source]

For some reason the visibility of the rolling mode panel is not updated when the scope becomes free again unless we ask for it explicitly...

display_channel(ch)[source]

Displays channel ch (1 or 2) on the graph :param ch:

display_curve(list_of_arrays)[source]

Displays all active channels on the graph.

init_gui()[source]

sets up all the gui for the scope.

rolling_mode
rolling_mode_toggled()[source]
save_clicked()[source]
set_rolling_mode()[source]

Set rolling mode on or off based on the module’s attribute “rolling_mode”

update_attribute_by_name(name, new_value_list)[source]

Updates all attributes on the gui when their values have changed.

update_rolling_mode_visibility()[source]

Hide rolling mode checkbox for duration < 100 ms

pyrpl.widgets.module_widgets.spec_an_widget module

A widget for the spectrum analyzer

class pyrpl.widgets.module_widgets.spec_an_widget.BasebandAttributesWidget(specan_widget)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QWidget

class pyrpl.widgets.module_widgets.spec_an_widget.IqModeAttributesWidget(specan_widget)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QWidget

class pyrpl.widgets.module_widgets.spec_an_widget.OtherAttributesWidget(specan_widget)[source]

Bases: <MagicMock name='mock.QtWidgets' id='140551784033040'>.QWidget

class pyrpl.widgets.module_widgets.spec_an_widget.SpecAnWidget(name, module, parent=None)[source]

Bases: pyrpl.widgets.module_widgets.acquisition_module_widget.AcquisitionModuleWidget

autoscale_x()[source]

Autoscale pyqtgraph

display_curve(datas)[source]
display_curve_old(datas)[source]

Displays all active channels on the graph.

init_gui()[source]

Sets up the gui.

run_continuous_clicked()[source]

Toggles the button run_continuous to stop or vice versa and starts the acquisition timer

run_single_clicked()[source]
unit_changed()[source]
update_attribute_by_name(name, new_value_list)[source]
update_baseband_visibility()[source]

Module contents

This package defines all the widgets to control the different modules of pyrpl.