pyfda.input_widgets package¶
Submodules¶
pyfda.input_widgets.amplitude_specs module¶
Widget for entering amplitude specifications
Author: Christian Münker
- class pyfda.input_widgets.amplitude_specs.AmplitudeSpecs(parent=None, title='Amplitude Specs', objectName='')[source]¶
Bases:
QWidgetBuild and update widget for entering the amplitude specifications like A_SB, A_PB etc.
- emit(dict_sig: dict = {}, sig_name: str = 'sig_tx') None¶
Emit a signal self.<sig_name> (defined as a class attribute) with a dict dict_sig using Qt’s emit().
Add the keys ‘id’ and ‘class’ with id resp. class name of the calling instance if not contained in the dict
If key ‘ttl’ is in the dict and its value is less than one, terminate the signal. Otherwise, reduce the value by one.
If the sender has passed an objectName, add it with the key “sender_name” to the dict.
- eventFilter(source, event)[source]¶
Filter all events generated by the QLineEdit widgets. Source and type of all events generated by monitored objects are passed to this eventFilter, evaluated and passed on to the next hierarchy level.
When a QLineEdit widget gains input focus (QEvent.FocusIn`), display the stored value from filter dict with full precision
When a key is pressed inside the text field, set the spec_edited flag to True.
When a QLineEdit widget loses input focus (QEvent.FocusOut`), store current value in linear format with full precision (only if `spec_edited`== True) and display the stored value in selected format
- load_dict()[source]¶
Reload and reformat the amplitude textfields from filter dict when a new filter design algorithm is selected or when the user has changed the unit (V / W / dB):
Reload amplitude entries from filter dictionary and convert to selected to reflect changed settings unit.
Update the lineedit fields, rounded to specified format.
- sig_rx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sig_tx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- update_UI(new_labels=())[source]¶
Called from filter_specs.update_UI() and target_specs.update_UI(). Set labels and get corresponding values from filter dictionary. When number of entries has changed, the layout of subwidget is rebuilt, using
self.qlabels, a list with references to existing QLabel widgets,
new_labels, a list of strings from the filter_dict for the current filter design
‘num_new_labels`, their number
self.n_cur_labels, the number of currently visible labels / qlineedit fields
pyfda.input_widgets.freq_specs module¶
Subwidget for entering frequency specifications
- class pyfda.input_widgets.freq_specs.FreqSpecs(parent=None, title='Frequency Specs', objectName='')[source]¶
Bases:
QWidgetBuild and update widget for entering the frequency specifications like F_sb, F_pb etc.
- emit(dict_sig: dict = {}, sig_name: str = 'sig_tx') None¶
Emit a signal self.<sig_name> (defined as a class attribute) with a dict dict_sig using Qt’s emit().
Add the keys ‘id’ and ‘class’ with id resp. class name of the calling instance if not contained in the dict
If key ‘ttl’ is in the dict and its value is less than one, terminate the signal. Otherwise, reduce the value by one.
If the sender has passed an objectName, add it with the key “sender_name” to the dict.
- eventFilter(source, event)[source]¶
Filter all events generated by the QLineEdit widgets. Source and type of all events generated by monitored objects are passed to this eventFilter, evaluated and passed on to the next hierarchy level.
When a QLineEdit widget gains input focus (QEvent.FocusIn`), display the stored value from filter dict with full precision
When a key is pressed inside the text field, set the spec_edited flag to True.
When a QLineEdit widget loses input focus (QEvent.FocusOut`), store current value normalized to f_S with full precision (only if `spec_edited`== True) and display the stored value in selected format
- load_dict()[source]¶
Triggered by FocusIn, FocusOut and ESC-Key in LineEdit fields and by `sort_dict_freqs():
- load_dict() is called during init and when the frequency unit or the
sampling frequency have been changed via filter_specs.update_UI() -> self.update_UI() -> self.sort_dict_freqs()
Reload textfields from filter dictionary
Transform the displayed frequency spec input fields according to the units setting (i.e. f_S). Spec entries are always stored normalized w.r.t. f_S in the dictionary; when f_S or the unit are changed, only the displayed values of the frequency entries are updated, not the dictionary!
Update the displayed frequency unit
It should be called when specs_changed or data_changed is emitted at another place, indicating that a reload is required.
- recalc_freqs()[source]¶
Update normalized frequencies when absolute frequencies are locked and update frequency unit. This is called by via signal {‘view_changed’: ‘f_S’}.
- sig_rx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sig_tx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sort_dict_freqs()[source]¶
- Sort visible filter dict frequency spec entries with ascending frequency if
the sort button is activated
Update the visible QLineEdit frequency widgets
The method is called when: - update_UI has been called after changing the filter design algorithm
that the response type has been changed eg. from LP -> HP, requiring a different order of frequency entries
a frequency spec field has been edited
the sort button has been clicked (from filter_specs.py)
- update_UI(new_labels=())[source]¶
Called by input_specs.update_UI() and target_specs.update_UI() Set labels and get corresponding values from filter dictionary. When number of entries has changed, the layout of subwidget is rebuilt, using
self.qlabels, a list with references to existing QLabel widgets,
new_labels, a list of strings from the filter_dict for the current filter design
‘num_new_labels`, their number
self.n_cur_labels, the number of currently visible labels / qlineedit fields
pyfda.input_widgets.freq_units module¶
Subwidget for entering frequency units
- class pyfda.input_widgets.freq_units.FreqUnits(parent=None, title='Frequency Units', objectName='')[source]¶
Bases:
QWidgetBuild and update widget for entering frequency unit, frequency range and sampling frequency f_S
The following key-value pairs of the fb.fil[0] dict are modified:
‘freq_specs_unit’ : The unit (‘f_S’, ‘f_Ny’, ‘Hz’ etc.) as a string
- ‘freqSpecsRange’A list with two entries for minimum and maximum frequency
values for labelling the frequency axis
‘f_S’ : The sampling frequency for referring frequency values to as a float
‘f_max’ : maximum frequency for scaling frequency axis
‘plt_fUnit’: frequency unit as string
‘plt_tUnit’: time unit as string
‘plt_fLabel’: label for frequency axis
‘plt_tLabel’: label for time axis
- emit(dict_sig: dict = {}, sig_name: str = 'sig_tx') None¶
Emit a signal self.<sig_name> (defined as a class attribute) with a dict dict_sig using Qt’s emit().
Add the keys ‘id’ and ‘class’ with id resp. class name of the calling instance if not contained in the dict
If key ‘ttl’ is in the dict and its value is less than one, terminate the signal. Otherwise, reduce the value by one.
If the sender has passed an objectName, add it with the key “sender_name” to the dict.
- eventFilter(source, event)[source]¶
Filter all events generated by the QLineEdit f_S widget. Source and type of all events generated by monitored objects are passed to this eventFilter, evaluated and passed on to the next hierarchy level.
When a QLineEdit widget gains input focus (QEvent.FocusIn`), display the stored value from filter dict with full precision
When a key is pressed inside the text field, set the spec_edited flag to True.
When a QLineEdit widget loses input focus (QEvent.FocusOut`), store current value with full precision (only if `spec_edited`== True) and display the stored value in selected format. Emit ‘view_changed’:’f_S’
When f_S has been changed, update fb.fil[0][‘f_S’], emit {‘view_changed’: ‘f_S’} to update other widgets and only then update {‘f_S_prev’: fb.fil[0][‘f_S’]} to allow correction of normalized frequency with the old value of f_S.
- load_dict()[source]¶
Reload comboBox settings and textfields from filter dictionary Block signals during update of combobox / lineedit widgets This is called from input_specs.load_dict()
- process_sig_rx(dict_sig=None)[source]¶
Process signals coming from - FFT window widget - qfft_win_select
- sig_rx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sig_tx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- update_UI(emit=True)[source]¶
update_UI is called - during init (direct call) - when the unit combobox is changed (signal-slot) - when a signal {‘view_changed’: ‘f_S’} or {‘data_changed’: …} has been
received. In this case, the UI is updated from the fb.fil[0] dictionary and no signal is emitted (emit==False).
Set various scale factors and labels depending on the setting of the unit combobox.
Update the freqSpecsRange and finally, emit ‘view_changed’:’f_S’ signal
pyfda.input_widgets.input_coeffs module¶
pyfda.input_widgets.input_coeffs_ui module¶
pyfda.input_widgets.input_fixpoint_specs module¶
pyfda.input_widgets.input_info module¶
Widget for displaying infos about filter and filter design method and debugging infos
- class pyfda.input_widgets.input_info.Input_Info(parent=None)[source]¶
Bases:
QWidgetCreate widget for displaying infos about filter specs and filter design method
- emit(dict_sig: dict = {}, sig_name: str = 'sig_tx') None¶
Emit a signal self.<sig_name> (defined as a class attribute) with a dict dict_sig using Qt’s emit().
Add the keys ‘id’ and ‘class’ with id resp. class name of the calling instance if not contained in the dict
If key ‘ttl’ is in the dict and its value is less than one, terminate the signal. Otherwise, reduce the value by one.
If the sender has passed an objectName, add it with the key “sender_name” to the dict.
- sig_rx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sig_tx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- pyfda.input_widgets.input_info.classes = {'Input_Info': 'Info'}¶
display name
- Type:
Dict containing class name
pyfda.input_widgets.input_info_about module¶
Widget for exporting / importing and saving / loading filter data
- class pyfda.input_widgets.input_info_about.AboutWindow(parent=None)[source]¶
Bases:
QDialogCreate a pop-up widget for the About Window.
pyfda.input_widgets.input_pz module¶
pyfda.input_widgets.input_pz_ui module¶
Create the UI for the FilterPZ class
- class pyfda.input_widgets.input_pz_ui.Input_PZ_UI(parent=None)[source]¶
Bases:
QWidgetCreate the UI for the InputPZ class
- emit(dict_sig: dict = {}, sig_name: str = 'sig_tx') None¶
Emit a signal self.<sig_name> (defined as a class attribute) with a dict dict_sig using Qt’s emit().
Add the keys ‘id’ and ‘class’ with id resp. class name of the calling instance if not contained in the dict
If key ‘ttl’ is in the dict and its value is less than one, terminate the signal. Otherwise, reduce the value by one.
If the sender has passed an objectName, add it with the key “sender_name” to the dict.
- sig_rx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sig_tx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
pyfda.input_widgets.input_specs module¶
pyfda.input_widgets.input_tab_widgets module¶
Tabbed container for all input widgets
- class pyfda.input_widgets.input_tab_widgets.InputTabWidgets(parent=None, objectName='input_tab_widgets_inst')[source]¶
Bases:
QWidgetCreate a tabbed widget for all input subwidgets in the list
fb.input_widgets_list. This list is compiled at startup inpyfda.libs.tree_builder.Tree_Builder.- emit(dict_sig: dict = {}, sig_name: str = 'sig_tx') None¶
Emit a signal self.<sig_name> (defined as a class attribute) with a dict dict_sig using Qt’s emit().
Add the keys ‘id’ and ‘class’ with id resp. class name of the calling instance if not contained in the dict
If key ‘ttl’ is in the dict and its value is less than one, terminate the signal. Otherwise, reduce the value by one.
If the sender has passed an objectName, add it with the key “sender_name” to the dict.
- sig_rx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sig_tx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
pyfda.input_widgets.select_filter module¶
Subwidget for selecting the filter, consisting of combo boxes for: - Response Type (LP, HP, Hilbert, …) - Filter Type (IIR, FIR, CIC …) - Filter Class (Butterworth, …)
- class pyfda.input_widgets.select_filter.SelectFilter(parent=None, objectName='select_filter_inst')[source]¶
Bases:
QWidgetConstruct and read combo boxes for selecting the filter, consisting of the following hierarchy:
Response Type rt (LP, HP, Hilbert, …)
Filter Type ft (IIR, FIR, CIC …)
Filter Class (Butterworth, …)
Every time a combo box is changed manually, the filter tree for the selected response resp. filter type is read and the combo box(es) further down in the hierarchy are populated according to the available combinations.
sig_tx({‘filt_changed’}) is emitted and propagated to input_filter_specs.py where it triggers the recreation of all subwidgets.
- emit(dict_sig: dict = {}, sig_name: str = 'sig_tx') None¶
Emit a signal self.<sig_name> (defined as a class attribute) with a dict dict_sig using Qt’s emit().
Add the keys ‘id’ and ‘class’ with id resp. class name of the calling instance if not contained in the dict
If key ‘ttl’ is in the dict and its value is less than one, terminate the signal. Otherwise, reduce the value by one.
If the sender has passed an objectName, add it with the key “sender_name” to the dict.
- load_dict()[source]¶
Reload comboboxes from filter dictionary to update changed settings after loading a filter design from disk. load_dict uses the automatism of _set_response_type etc. of checking whether the previously selected filter design method is also available for the new combination.
- load_filter_order(enb_signal=False)[source]¶
- Called by set_design_method or from InputSpecs (with enb_signal = False),
load filter order setting from fb.fil[0] and update widgets
- process_sig_rx(dict_sig)[source]¶
Process signals coming in via sig_rx
All signals terminate here.
The sender name of signals coming in from local subwidgets is changed to its parent widget to prevent infinite loops.
- sig_rx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sig_tx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
pyfda.input_widgets.target_specs module¶
Widget collecting subwidgets for the target filter specifications (currently only amplitude and frequency specs.)
- class pyfda.input_widgets.target_specs.TargetSpecs(parent=None, title='Target Specs', objectName='')[source]¶
Bases:
QWidgetBuild and update widget for entering the target specifications (frequencies and amplitudes) like F_SB, F_PB, A_SB, etc.
- emit(dict_sig: dict = {}, sig_name: str = 'sig_tx') None¶
Emit a signal self.<sig_name> (defined as a class attribute) with a dict dict_sig using Qt’s emit().
Add the keys ‘id’ and ‘class’ with id resp. class name of the calling instance if not contained in the dict
If key ‘ttl’ is in the dict and its value is less than one, terminate the signal. Otherwise, reduce the value by one.
If the sender has passed an objectName, add it with the key “sender_name” to the dict.
- sig_rx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sig_tx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sig_tx_local¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- update_UI(new_labels=())[source]¶
Called when a new filter design algorithm has been selected - Pass new frequency and amplitude labels to the amplitude and frequency
spec widgets. The first element of the ‘amp’ and the ‘freq’ tuple is the state with ‘u’ for ‘unused’ and ‘d’ for disabled
The filt_changed signal is emitted already by select_filter.py
pyfda.input_widgets.weight_specs module¶
Widget for entering weight specifications
- class pyfda.input_widgets.weight_specs.WeightSpecs(parent=None, objectName='')[source]¶
Bases:
QWidgetBuild and update widget for entering the weight specifications like W_SB, W_PB etc.
- emit(dict_sig: dict = {}, sig_name: str = 'sig_tx') None¶
Emit a signal self.<sig_name> (defined as a class attribute) with a dict dict_sig using Qt’s emit().
Add the keys ‘id’ and ‘class’ with id resp. class name of the calling instance if not contained in the dict
If key ‘ttl’ is in the dict and its value is less than one, terminate the signal. Otherwise, reduce the value by one.
If the sender has passed an objectName, add it with the key “sender_name” to the dict.
- eventFilter(source, event)[source]¶
Filter all events generated by the QLineEdit widgets. Source and type of all events generated by monitored objects are passed to this eventFilter, evaluated and passed on to the next hierarchy level.
When a QLineEdit widget gains input focus (QEvent.FocusIn`), display the stored value from filter dict with full precision
When a key is pressed inside the text field, set the spec_edited flag to True.
When a QLineEdit widget loses input focus (QEvent.FocusOut`), store current value in linear format with full precision (only if `spec_edited`== True) and display the stored value in selected format
- sig_rx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- sig_tx¶
int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- Type:
pyqtSignal(*types, name
- Type:
str = …, revision
- update_UI(new_labels=[])[source]¶
Called from filter_specs.update_UI() Set labels and get corresponding values from filter dictionary. When number of entries has changed, the layout of subwidget is rebuilt, using
self.qlabels, a list with references to existing QLabel widgets,
- new_labels, a list of strings from the filter_dict for the current
filter design
‘num_new_labels`, their number
self.n_cur_labels, the number of currently visible labels / qlineedit fields