本文整理汇总了Python中qtpy.QtWidgets.QComboBox.findText方法的典型用法代码示例。如果您正苦于以下问题:Python QComboBox.findText方法的具体用法?Python QComboBox.findText怎么用?Python QComboBox.findText使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qtpy.QtWidgets.QComboBox
的用法示例。
在下文中一共展示了QComboBox.findText方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: IntensityIDWidget
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class IntensityIDWidget(_ConditionWidget):
def __init__(self, parent=None):
_ConditionWidget.__init__(self, IntensityID, parent)
def _init_ui(self):
print("TEST HUHU")
# Controls
self._cb_type = QComboBox()
self._cb_type.addItems([None] + list(_INTENSITY_TYPES))
self._cb_measure = QComboBox()
self._cb_measure.addItems([None] + list(_INTENSITY_MEASURES))
# Layouts
layout = _ConditionWidget._init_ui(self)
layout.addRow("<i>Type</i>", self._cb_type)
layout.addRow("<i>Measure</i>", self._cb_measure)
# Signals
self._cb_type.currentIndexChanged.connect(self.edited)
self._cb_measure.currentIndexChanged.connect(self.edited)
return layout
def _create_parameter(self):
return self.CLASS(None, None)
def parameter(self, parameter=None):
parameter = _ConditionWidget.parameter(self, parameter)
parameter.type = self._cb_type
parameter.measure = self._cb_measure
return parameter
def setParameter(self, condition):
_ConditionWidget.setParameter(self, condition)
self._cb_type.setCurrentIndex(self._cb_type.findText(condition.type))
self._cb_measure.setCurrentIndex(self._cb_measure.findText(condition.measure))
def setReadOnly(self, state):
_ConditionWidget.setReadOnly(self, state)
self._cb_type.setEnabled(not state)
self._cb_measure.setEnabled(not state)
def isReadOnly(self):
return _ConditionWidget.isReadOnly(self) and \
not self._cb_type.isEnabled() and \
not self._cb_measure.isEnabled()
def hasAcceptableInput(self):
return _ConditionWidget.hasAcceptableInput(self)
示例2: _AcquisitionRasterWidget
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class _AcquisitionRasterWidget(_AcquisitionWidget):
def _init_ui(self):
# Widgets
self._cb_raster_mode = QComboBox()
self._cb_raster_mode.addItems([None] + list(_RASTER_MODES))
# Layouts
layout = _AcquisitionWidget._init_ui(self)
layout.addRow('Raster mode', self._cb_raster_mode)
# Singals
self._cb_raster_mode.currentIndexChanged.connect(self.edited)
return layout
def parameter(self, parameter=None):
parameter = _AcquisitionWidget.parameter(self, parameter)
parameter.raster_mode = self._cb_raster_mode.currentText()
return parameter
def setParameter(self, condition):
_AcquisitionWidget.setParameter(self, condition)
self._cb_raster_mode.setCurrentIndex(self._cb_raster_mode.findText(condition.raster_mode))
def setReadOnly(self, state):
_AcquisitionWidget.setReadOnly(self, state)
self._cb_raster_mode.setEnabled(not state)
def isReadOnly(self):
return _AcquisitionWidget.isReadOnly(self) and \
not self._cb_raster_mode.isEnabled()
示例3: _CompositionWidget
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class _CompositionWidget(_ConditionWidget):
def _init_ui(self):
# Widgets
self._cb_unit = QComboBox()
self._cb_unit.addItems(list(_COMPOSITION_UNITS))
# Layouts
layout = _ConditionWidget._init_ui(self)
layout.addRow('<i>Unit</i>', self._cb_unit)
# Signals
self._cb_unit.currentIndexChanged.connect(self.edited)
return layout
def parameter(self, parameter=None):
parameter = _ConditionWidget.parameter(self, parameter)
parameter.unit = self._cb_unit.currentText()
return parameter
def setParameter(self, condition):
_ConditionWidget.setParameter(self, condition)
self._cb_unit.setCurrentIndex(self._cb_unit.findText(condition.unit))
def setReadOnly(self, state):
_ConditionWidget.setReadOnly(self, state)
self._cb_unit.setEnabled(not state)
def isReadOnly(self):
return _ConditionWidget.isReadOnly(self) and \
not self._cb_unit.isEnabled()
示例4: DetectorSpectrometerWidget
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class DetectorSpectrometerWidget(_DetectorWidget):
def __init__(self, parent=None):
_DetectorWidget.__init__(self, DetectorSpectrometer, parent)
def _init_ui(self):
# Widgets
self._txt_channel_count = NumericalAttributeLineEdit(self.CLASS.channel_count)
self._txt_channel_count.setFormat('{0:d}')
self._wdg_calibration = CalibrationWidget()
self._cb_collection_mode = QComboBox()
self._cb_collection_mode.addItems([None] + list(_COLLECTION_MODES))
# Layout
layout = _DetectorWidget._init_ui(self)
layout.insertRow(0, '<i>Channel count</i>', self._txt_channel_count)
layout.insertRow(1, '<i>Calibration</i>', self._wdg_calibration)
layout.addRow('Collection mode', self._cb_collection_mode)
# Signals
self._txt_channel_count.textEdited.connect(self.edited)
self._wdg_calibration.edited.connect(self.edited)
self._cb_collection_mode.currentIndexChanged.connect(self.edited)
return layout
def _create_parameter(self):
return self.CLASS(1, CalibrationConstant('Quantity', 'm', 0.0))
def parameter(self, parameter=None):
parameter = _DetectorWidget.parameter(self, parameter)
parameter.channel_count = self._txt_channel_count.text()
parameter.calibration = self._wdg_calibration.calibration()
parameter.collection_mode = self._cb_collection_mode.currentText()
return parameter
def setParameter(self, condition):
_DetectorWidget.setParameter(self, condition)
self._txt_channel_count.setText(condition.channel_count)
self._wdg_calibration.setCalibration(condition.calibration)
self._cb_collection_mode.setCurrentIndex(self._cb_collection_mode.findText(condition.collection_mode))
def setReadOnly(self, state):
_DetectorWidget.setReadOnly(self, state)
self._txt_channel_count.setReadOnly(state)
self._wdg_calibration.setReadOnly(state)
self._cb_collection_mode.setEnabled(not state)
def isReadOnly(self):
return _DetectorWidget.isReadOnly(self) and \
self._txt_channel_count.isReadOnly() and \
self._wdg_calibration.isReadOnly() and \
not self._cb_collection_mode.isEnabled()
def hasAcceptableInput(self):
return _DetectorWidget.hasAcceptableInput(self) and \
self._txt_channel_count.hasAcceptableInput() and \
self._wdg_calibration.hasAcceptableInput()
示例5: BackgroundIDWidget
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class BackgroundIDWidget(_ConditionWidget):
def __init__(self, parent=None):
_ConditionWidget.__init__(self, BackgroundID, parent)
def _init_ui(self):
# Controls
self._cb_interpolation = QComboBox()
self._cb_interpolation.addItems([None] + list(_BACKGROUND_INTERPOLATIONS))
# Layouts
layout = _ConditionWidget._init_ui(self)
layout.addRow("<i>Interpolation</i>", self._cb_interpolation)
# Signals
self._cb_interpolation.currentIndexChanged.connect(self.edited)
return layout
def _create_parameter(self):
return self.CLASS(None)
def parameter(self, parameter=None):
parameter = _ConditionWidget.parameter(self, parameter)
parameter.interpolation = self._cb_interpolation
return parameter
def setParameter(self, condition):
_ConditionWidget.setParameter(self, condition)
self._cb_interpolation.setCurrentIndex(self._cb_interpolation.findText(condition.interpolation))
def setReadOnly(self, state):
_ConditionWidget.setReadOnly(self, state)
self._cb_interpolation.setEnabled(not state)
def isReadOnly(self):
return _ConditionWidget.isReadOnly(self) and \
not self._cb_interpolation.isEnabled()
def hasAcceptableInput(self):
return _ConditionWidget.hasAcceptableInput(self)
示例6: ConfigDialog
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class ConfigDialog(QDialog):
"""
Dialog window for specifying test configuration.
The window contains a combobox with all the frameworks, a line edit box for
specifying the working directory, a button to use a file browser for
selecting the directory, and OK and Cancel buttons. Initially, no framework
is selected and the OK button is disabled. Selecting a framework enables
the OK button.
"""
def __init__(self, frameworks, config, parent=None):
"""
Construct a dialog window.
Parameters
----------
frameworks : dict of (str, type)
Names of all supported frameworks with their associated class
(assumed to be a subclass of RunnerBase)
config : Config
Initial configuration
parent : QWidget
"""
super(ConfigDialog, self).__init__(parent)
self.setWindowTitle(_('Configure tests'))
layout = QVBoxLayout(self)
framework_layout = QHBoxLayout()
framework_label = QLabel(_('Test framework'))
framework_layout.addWidget(framework_label)
self.framework_combobox = QComboBox(self)
for ix, (name, runner) in enumerate(sorted(frameworks.items())):
installed = runner.is_installed()
if installed:
label = name
else:
label = '{} ({})'.format(name, _('not available'))
self.framework_combobox.addItem(label)
self.framework_combobox.model().item(ix).setEnabled(installed)
framework_layout.addWidget(self.framework_combobox)
layout.addLayout(framework_layout)
layout.addSpacing(10)
wdir_label = QLabel(_('Directory from which to run tests'))
layout.addWidget(wdir_label)
wdir_layout = QHBoxLayout()
self.wdir_lineedit = QLineEdit(self)
wdir_layout.addWidget(self.wdir_lineedit)
self.wdir_button = QPushButton(ima.icon('DirOpenIcon'), '', self)
self.wdir_button.setToolTip(_("Select directory"))
self.wdir_button.clicked.connect(lambda: self.select_directory())
wdir_layout.addWidget(self.wdir_button)
layout.addLayout(wdir_layout)
layout.addSpacing(20)
self.buttons = QDialogButtonBox(QDialogButtonBox.Ok |
QDialogButtonBox.Cancel)
layout.addWidget(self.buttons)
self.buttons.accepted.connect(self.accept)
self.buttons.rejected.connect(self.reject)
self.ok_button = self.buttons.button(QDialogButtonBox.Ok)
self.ok_button.setEnabled(False)
self.framework_combobox.currentIndexChanged.connect(
self.framework_changed)
self.framework_combobox.setCurrentIndex(-1)
if config.framework:
index = self.framework_combobox.findText(config.framework)
if index != -1:
self.framework_combobox.setCurrentIndex(index)
self.wdir_lineedit.setText(config.wdir)
@Slot(int)
def framework_changed(self, index):
"""Called when selected framework changes."""
if index != -1:
self.ok_button.setEnabled(True)
def select_directory(self):
"""Display dialog for user to select working directory."""
basedir = to_text_string(self.wdir_lineedit.text())
if not osp.isdir(basedir):
basedir = getcwd()
title = _("Select directory")
directory = getexistingdirectory(self, title, basedir)
if directory:
self.wdir_lineedit.setText(directory)
def get_config(self):
"""
Return the test configuration specified by the user.
Returns
-------
#.........这里部分代码省略.........
示例7: CSVSettingsDialog
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class CSVSettingsDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.settings = QSettings()
# decimal
self.decimalLabel = QLabel(self.tr("decimal:"))
self.decimalComboBox = QComboBox()
self.decimalLabel.setBuddy(self.decimalComboBox)
self.decimalComboBox.addItems([",", "."])
# separator
self.separatorLabel = QLabel(self.tr("separator:"))
self.separatorComboBox = QComboBox()
self.separatorLabel.setBuddy(self.separatorComboBox)
self.separatorComboBox.addItem("Semicolon ';'", ';')
self.separatorComboBox.addItem("Comma ','", ',')
self.separatorComboBox.addItem("Tabulator '\\t'", '\t')
self.separatorComboBox.addItem("Whitespace ' '", ' ')
# buttons
self.buttons = QDialogButtonBox(
QDialogButtonBox.Ok | QDialogButtonBox.Cancel
)
self.buttons.accepted.connect(self.accept)
self.buttons.rejected.connect(self.reject)
# layout
layout = QGridLayout()
layout.addWidget(self.decimalLabel, 0, 0)
layout.addWidget(self.decimalComboBox, 0, 1)
layout.addWidget(self.separatorLabel, 1, 0)
layout.addWidget(self.separatorComboBox, 1, 1)
layout.addWidget(self.buttons, 2, 0, 1, 2)
self.setLayout(layout)
# settings
self.decimalComboBox.setCurrentIndex(
self.decimalComboBox.findText(
self.settings.value(DECIMAL_SETTING, ","))
)
self.separatorComboBox.setCurrentIndex(
self.separatorComboBox.findData(
self.settings.value(SEPARATOR_SETTING, ";"))
)
self.setWindowTitle(self.tr("record settings"))
def accept(self):
self.settings.setValue(DECIMAL_SETTING, self.decimal)
self.settings.setValue(SEPARATOR_SETTING, self.separator)
super().accept()
# decimal property
@property
def decimal(self):
return self.decimalComboBox.currentText()
# seperator property
@property
def separator(self):
return self.separatorComboBox.itemData(
self.separatorComboBox.currentIndex())
示例8: AcquisitionRasterXYZWidget
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class AcquisitionRasterXYZWidget(_AcquisitionRasterWidget):
def __init__(self, parent=None):
_AcquisitionRasterWidget.__init__(self, AcquisitionRasterXYZ, parent)
def _init_ui(self):
# Widgets
self._txt_step_count_x = NumericalAttributeLineEdit(self.CLASS.step_count_x)
self._txt_step_count_x.setFormat('{0:d}')
self._txt_step_count_y = NumericalAttributeLineEdit(self.CLASS.step_count_y)
self._txt_step_count_y.setFormat('{0:d}')
self._txt_step_count_z = NumericalAttributeLineEdit(self.CLASS.step_count_z)
self._txt_step_count_z.setFormat('{0:d}')
self._txt_step_size_x = NumericalAttributeLineEdit(self.CLASS.step_size_x)
self._txt_step_size_y = NumericalAttributeLineEdit(self.CLASS.step_size_y)
self._txt_step_size_z = NumericalAttributeLineEdit(self.CLASS.step_size_z)
self._cb_raster_mode_z = QComboBox()
self._cb_raster_mode_z.addItems([None] + list(_RASTER_MODES_Z))
self._cb_location = QComboBox()
self._cb_location.addItems(list(_POSITION_LOCATIONS))
self._wdg_position = SpecimenPositionWidget(inline=True)
# Layouts
layout = _AcquisitionRasterWidget._init_ui(self)
layout.insertRow(0, '<i>Step count (x)</i>', self._txt_step_count_x)
layout.insertRow(1, '<i>Step count (y)</i>', self._txt_step_count_y)
layout.insertRow(2, '<i>Step count (z)</i>', self._txt_step_count_z)
layout.insertRow(3, 'Step size (x)', self._txt_step_size_x)
layout.insertRow(4, 'Step size (y)', self._txt_step_size_y)
layout.insertRow(5, 'Step size (z)', self._txt_step_size_z)
layout.addRow('Raster mode (z)', self._cb_raster_mode_z)
layout.addRow('Position', self._cb_location)
layout.addWidget(self._wdg_position)
# Signals
self._txt_step_count_x.textEdited.connect(self.edited)
self._txt_step_count_y.textEdited.connect(self.edited)
self._txt_step_count_z.textEdited.connect(self.edited)
self._txt_step_size_x.textEdited.connect(self.edited)
self._txt_step_size_y.textEdited.connect(self.edited)
self._txt_step_size_z.textEdited.connect(self.edited)
self._cb_raster_mode_z.currentIndexChanged.connect(self.edited)
self._cb_location.currentIndexChanged.connect(self.edited)
self._wdg_position.edited.connect(self.edited)
return layout
def _create_parameter(self):
return self.CLASS(1, 1, 1)
def parameter(self, parameter=None):
parameter = _AcquisitionRasterWidget.parameter(self, parameter)
parameter.step_count_x = self._txt_step_count_x.text()
parameter.step_count_y = self._txt_step_count_y.text()
parameter.step_count_z = self._txt_step_count_z.text()
parameter.step_size_x = self._txt_step_size_x.text()
parameter.step_size_y = self._txt_step_size_y.text()
parameter.step_size_z = self._txt_step_size_z.text()
parameter.raster_mode_z = self._cb_raster_mode_z.currentText()
parameter.position = (self._wdg_position.condition(),
self._cb_location.currentText())
return parameter
def setParameter(self, condition):
_AcquisitionRasterWidget.setParameter(self, condition)
self._txt_step_count_x.setText(condition.step_count_x)
self._txt_step_count_y.setText(condition.step_count_y)
self._txt_step_count_z.setText(condition.step_count_z)
self._txt_step_size_x.setText(condition.step_size_x)
self._txt_step_size_y.setText(condition.step_size_y)
self._txt_step_size_z.setText(condition.step_size_z)
self._cb_raster_mode_z.setCurrentIndex(self._cb_raster_mode_z.findText(condition.raster_mode_z))
position, location = condition.get_position(True)
self._cb_location.setCurrentIndex(self._cb_location.findText(location))
if position is not None:
self._wdg_position.setParameter(position)
def setReadOnly(self, state):
_AcquisitionRasterWidget.setReadOnly(self, state)
self._txt_step_count_x.setReadOnly(state)
self._txt_step_count_y.setReadOnly(state)
self._txt_step_count_z.setReadOnly(state)
self._txt_step_size_x.setReadOnly(state)
self._txt_step_size_y.setReadOnly(state)
self._txt_step_size_z.setReadOnly(state)
self._cb_raster_mode_z.setEnabled(not state)
self._cb_location.setEnabled(not state)
self._wdg_position.setReadOnly(state)
def isReadOnly(self):
return _AcquisitionRasterWidget.isReadOnly(self) and \
self._txt_step_count_x.isReadOnly() and \
self._txt_step_count_y.isReadOnly() and \
self._txt_step_count_z.isReadOnly() and \
self._txt_step_size_x.isReadOnly() and \
self._txt_step_size_y.isReadOnly() and \
self._txt_step_size_z.isReadOnly() and \
not self._cb_raster_mode_z.isEnabled() and \
not self._cb_location.isEnabled() and \
#.........这里部分代码省略.........
示例9: ItemPropertyDialog
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class ItemPropertyDialog(QDialog):
def __init__(self, jsonitem: JsonItem, parent=None):
super().__init__(parent)
assert jsonitem is not None
self.item = jsonitem
# name
self.nameLabel = QLabel(self.tr("name:"))
self.nameLineEdit = QLineEdit(self.item.name or "")
self.nameLabel.setBuddy(self.nameLineEdit)
# unit
self.unitLabel = QLabel(self.tr("unit:"))
self.unitLineEdit = QLineEdit(self.item.unit or "")
self.unitLabel.setBuddy(self.unitLineEdit)
# type
self.typeLabel = QLabel(self.tr("type:"))
self.typeComboBox = QComboBox()
self.typeComboBox.addItems([k for k, t in VALUETYPES])
self.typeComboBox.setCurrentIndex(
self.typeComboBox.findText(self.item.type))
self.typeComboBox.currentIndexChanged.connect(self.data_changed)
self.typeLabel.setBuddy(self.typeComboBox)
# decimals
self.decimalsLabel = QLabel(self.tr("decimals:"))
self.decimalsSpinBox = QSpinBox()
self.decimalsSpinBox.setRange(0, 10)
self.decimalsSpinBox.setValue(self.item.decimals or 0)
self.decimalsLabel.setBuddy(self.decimalsSpinBox)
self.decimalsSpinBox.valueChanged.connect(self.data_changed)
self.last_decimals = self.decimalsSpinBox.value()
# min
self.minLabel = QLabel(self.tr("minimum:"))
self.minSpinBox =QDoubleSpinBox()
self.minSpinBox.setRange(-sys.maxsize, sys.maxsize)
self.minLabel.setBuddy(self.minSpinBox)
self.minSpinBox.setValue(self.item.min or 0.0)
# max
self.maxLabel = QLabel(self.tr("maximum:"))
self.maxSpinBox = QDoubleSpinBox()
self.maxSpinBox.setRange(-sys.maxsize, sys.maxsize)
self.maxSpinBox.setValue(self.item.max or 100.0)
# numerator
self.scalefactorLabel = QLabel(self.tr("scalefactor:"))
self.scalefactorSpinBox = NoZerosDoubleSpinBox()
self.scalefactorSpinBox.setRange(-sys.maxsize, sys.maxsize)
self.scalefactorSpinBox.setButtonSymbols(QSpinBox.NoButtons)
self.scalefactorSpinBox.setDecimals(10)
self.scalefactorSpinBox.setValue(self.item.scalefactor or 1)
self.scalefactorLabel.setBuddy(self.scalefactorSpinBox)
# readonly
self.readonlyCheckBox = QCheckBox(self.tr("readonly"))
self.readonlyCheckBox.setChecked(Qt.Checked if self.item.readonly
else Qt.Unchecked)
self.readonlyCheckBox.stateChanged.connect(self.data_changed)
# buttons
self.buttons = QDialogButtonBox(
QDialogButtonBox.Ok | QDialogButtonBox.Cancel,
Qt.Horizontal
)
self.buttons.accepted.connect(self.accept)
self.buttons.rejected.connect(self.reject)
# layout
layout = QGridLayout()
layout.addWidget(self.nameLabel, 0, 0)
layout.addWidget(self.nameLineEdit, 0, 1)
layout.addWidget(self.unitLabel, 1, 0)
layout.addWidget(self.unitLineEdit, 1, 1)
layout.addWidget(self.typeLabel, 2, 0)
layout.addWidget(self.typeComboBox, 2, 1)
layout.addWidget(self.decimalsLabel, 3, 0)
layout.addWidget(self.decimalsSpinBox, 3, 1)
layout.addWidget(self.minLabel, 4, 0)
layout.addWidget(self.minSpinBox, 4, 1)
layout.addWidget(self.maxLabel, 5, 0)
layout.addWidget(self.maxSpinBox, 5, 1)
layout.addWidget(self.scalefactorLabel, 6, 0)
layout.addWidget(self.scalefactorSpinBox, 6, 1)
layout.addWidget(self.readonlyCheckBox, 7, 0, 1, 2)
layout.addWidget(self.buttons, 8, 0, 1, 2)
self.setLayout(layout)
# misc
self.setWindowTitle("Edit JsonItem '%s'" % self.item.key)
self.data_changed()
def accept(self):
self.item.name = self.nameLineEdit.text()
self.item.unit = self.unitLineEdit.text()
self.item.decimals = self.decimalsSpinBox.value()
self.item.min = self.minSpinBox.value()
#.........这里部分代码省略.........
示例10: SerialDialog
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class SerialDialog(QDialog):
def __init__(self, settings, parent=None):
super().__init__(parent)
self.settings = settings
self.serialports = []
# port
self.portLabel = QLabel(self.tr("COM Port:"))
self.portComboBox = QComboBox()
self.portLabel.setBuddy(self.portComboBox)
self.refresh_comports(self.portComboBox)
# baudrate
self.baudrateLabel = QLabel(self.tr("Baudrate:"))
self.baudrateComboBox = QComboBox()
self.baudrateLabel.setBuddy(self.baudrateComboBox)
for br in BAUDRATES:
self.baudrateComboBox.addItem(str(br), br)
# buttons
self.dlgbuttons = QDialogButtonBox(
QDialogButtonBox.Ok | QDialogButtonBox.Cancel, Qt.Horizontal)
self.dlgbuttons.rejected.connect(self.reject)
self.dlgbuttons.accepted.connect(self.accept)
# layout
layout = QGridLayout()
layout.addWidget(self.portLabel, 0, 0)
layout.addWidget(self.portComboBox, 0, 1)
layout.addWidget(self.baudrateLabel, 1, 0)
layout.addWidget(self.baudrateComboBox, 1, 1)
layout.addWidget(self.dlgbuttons, 2, 0, 1, 2)
self.setLayout(layout)
self.setWindowTitle(self.tr("Serial Settings"))
# settings
defaults = {
PORT_SETTING: "",
BAUDRATE_SETTING: "115200"
}
self.tmp_settings = ConfigManager()
self.tmp_settings.set_defaults(defaults)
self.tmp_settings.set_many(
{key: self.settings.get(key) for key in defaults.keys()}
)
self.tmp_settings.add_handler(PORT_SETTING, self.portComboBox)
self.tmp_settings.add_handler(BAUDRATE_SETTING, self.baudrateComboBox)
def accept(self):
d = self.tmp_settings.as_dict()
self.settings.set_many(d)
super().accept()
def refresh_comports(self, combobox):
self.serialports = serial_ports()
for port in self.serialports:
combobox.addItem(port)
@property
def port(self):
return self.portComboBox.currentText()
@port.setter
def port(self, value):
if value in self.serialports:
self.portComboBox.setCurrentIndex(
self.portComboBox.findText(value))
else:
raise ValueError("serial port '%s' not available" % value)
@property
def baudrate(self):
return self.baudrateComboBox.currentData()
示例11: DetectorSpectrometerXEDSWidget
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class DetectorSpectrometerXEDSWidget(DetectorSpectrometerWidget):
def __init__(self, parent=None):
_DetectorWidget.__init__(self, DetectorSpectrometerXEDS, parent)
def _init_ui(self):
# Widgets
self._cb_technology = QComboBox()
self._cb_technology.addItems([None] + list(_XEDS_TECHNOLOGIES))
self._txt_nominal_throughput = NumericalAttributeLineEdit(self.CLASS.nominal_throughput)
self._txt_time_constant = NumericalAttributeLineEdit(self.CLASS.time_constant)
self._txt_strobe_rate = NumericalAttributeLineEdit(self.CLASS.strobe_rate)
self._wdg_window = WindowWidget()
# Layout
form = DetectorSpectrometerWidget._init_ui(self)
form.addRow('Technology', self._cb_technology)
form.addRow('Nominal throughput', self._txt_nominal_throughput)
form.addRow('Time constant', self._txt_time_constant)
form.addRow('Strobe rate', self._txt_strobe_rate)
form.addRow('Window', self._wdg_window)
# Signals
self._cb_technology.currentIndexChanged.connect(self.edited)
self._txt_nominal_throughput.textEdited.connect(self.edited)
self._txt_time_constant.textEdited.connect(self.edited)
self._txt_strobe_rate.textEdited.connect(self.edited)
self._wdg_window.edited.connect(self.edited)
return form
def _create_parameter(self):
return self.CLASS(1, CalibrationConstant('Quantity', 'm', 0.0))
def parameter(self, parameter=None):
parameter = DetectorSpectrometerWidget.parameter(self, parameter)
parameter.technology = self._cb_technology.currentText()
parameter.nominal_throughput = self._txt_nominal_throughput.text()
parameter.time_constant = self._txt_time_constant.text()
parameter.strobe_rate = self._txt_strobe_rate.text()
parameter.window = self._wdg_window.window()
return parameter
def setParameter(self, condition):
DetectorSpectrometerWidget.setParameter(self, condition)
self._cb_technology.setCurrentIndex(self._cb_technology.findText(condition.technology))
self._txt_nominal_throughput.setText(condition.nominal_throughput)
self._txt_time_constant.setText(condition.time_constant)
self._txt_strobe_rate.setText(condition.strobe_rate)
self._wdg_window.setWindow(condition.window)
def setReadOnly(self, state):
DetectorSpectrometerWidget.setReadOnly(self, state)
self._cb_technology.setEnabled(not state)
self._txt_nominal_throughput.setReadOnly(state)
self._txt_time_constant.setReadOnly(state)
self._txt_strobe_rate.setReadOnly(state)
self._wdg_window.setReadOnly(state)
def isReadOnly(self):
return DetectorSpectrometerWidget.isReadOnly(self) and \
not self._cb_technology.isEnabled() and \
self._txt_nominal_throughput.isReadOnly() and \
self._txt_time_constant.isReadOnly() and \
self._txt_strobe_rate.isReadOnly() and \
self._wdg_window.isReadOnly()
def hasAcceptableInput(self):
return DetectorSpectrometerWidget.hasAcceptableInput(self) and \
self._txt_nominal_throughput.hasAcceptableInput() and \
self._txt_time_constant.hasAcceptableInput() and \
self._txt_strobe_rate.hasAcceptableInput() and \
self._wdg_window.hasAcceptableInput()
示例12: _DetectorWidget
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class _DetectorWidget(_ConditionWidget):
def _init_ui(self):
# Widgets
self._cb_signal_type = QComboBox()
self._cb_signal_type.addItems([None] + list(_SIGNAL_TYPES))
self._txt_manufacturer = TextAttributeLineEdit(self.CLASS.manufacturer)
self._txt_model = TextAttributeLineEdit(self.CLASS.model)
self._txt_serial_number = TextAttributeLineEdit(self.CLASS.serial_number)
self._txt_measurement_unit = UnitAttributeLineEdit(self.CLASS.measurement_unit)
self._txt_elevation = NumericalAttributeLineEdit(self.CLASS.elevation)
self._txt_azimuth = NumericalAttributeLineEdit(self.CLASS.azimuth)
self._txt_distance = NumericalAttributeLineEdit(self.CLASS.distance)
self._txt_area = NumericalAttributeLineEdit(self.CLASS.area)
self._txt_solid_angle = NumericalAttributeLineEdit(self.CLASS.solid_angle)
self._txt_semi_angle = NumericalAttributeLineEdit(self.CLASS.semi_angle)
self._txt_temperature = NumericalAttributeLineEdit(self.CLASS.temperature)
# Layout
layout = _ConditionWidget._init_ui(self)
layout.addRow('Type of signal', self._cb_signal_type)
layout.addRow('Manufacturer', self._txt_manufacturer)
layout.addRow('Model', self._txt_model)
layout.addRow('Serial number', self._txt_serial_number)
layout.addRow('Measurement unit', self._txt_measurement_unit)
layout.addRow('Elevation', self._txt_elevation)
layout.addRow('Azimuth', self._txt_azimuth)
layout.addRow('Distance', self._txt_distance)
layout.addRow('Area', self._txt_area)
layout.addRow('Solid angle', self._txt_solid_angle)
layout.addRow('Semi angle', self._txt_semi_angle)
layout.addRow('Temperature', self._txt_temperature)
# Signals
self._cb_signal_type.currentIndexChanged.connect(self.edited)
self._txt_manufacturer.textEdited.connect(self.edited)
self._txt_model.textEdited.connect(self.edited)
self._txt_serial_number.textEdited.connect(self.edited)
self._txt_measurement_unit.textEdited.connect(self.edited)
self._txt_elevation.textEdited.connect(self.edited)
self._txt_azimuth.textEdited.connect(self.edited)
self._txt_distance.textEdited.connect(self.edited)
self._txt_area.textEdited.connect(self.edited)
self._txt_solid_angle.textEdited.connect(self.edited)
self._txt_semi_angle.textEdited.connect(self.edited)
self._txt_temperature.textEdited.connect(self.edited)
return layout
def parameter(self, parameter=None):
parameter = _ConditionWidget.parameter(self, parameter)
parameter.signal_type = self._cb_signal_type.currentText()
parameter.manufacturer = self._txt_manufacturer.text()
parameter.model = self._txt_model.text()
parameter.serial_number = self._txt_serial_number.text()
parameter.measurement_unit = self._txt_measurement_unit.text()
parameter.elevation = self._txt_elevation.text()
parameter.azimuth = self._txt_azimuth.text()
parameter.distance = self._txt_distance.text()
parameter.area = self._txt_area.text()
parameter.solid_angle = self._txt_solid_angle.text()
parameter.semi_angle = self._txt_semi_angle.text()
parameter.temperature = self._txt_temperature.text()
return parameter
def setParameter(self, condition):
_ConditionWidget.setParameter(self, condition)
self._cb_signal_type.setCurrentIndex(self._cb_signal_type.findText(condition.signal_type))
self._txt_manufacturer.setText(condition.manufacturer)
self._txt_model.setText(condition.model)
self._txt_serial_number.setText(condition.serial_number)
self._txt_measurement_unit.setText(condition.measurement_unit)
self._txt_elevation.setText(condition.elevation)
self._txt_azimuth.setText(condition.azimuth)
self._txt_distance.setText(condition.distance)
self._txt_area.setText(condition.area)
self._txt_solid_angle.setText(condition.solid_angle)
self._txt_semi_angle.setText(condition.semi_angle)
self._txt_temperature.setText(condition.temperature)
def setReadOnly(self, state):
_ConditionWidget.setReadOnly(self, state)
self._cb_signal_type.setEnabled(not state)
self._txt_manufacturer.setReadOnly(state)
self._txt_model.setReadOnly(state)
self._txt_serial_number.setReadOnly(state)
self._txt_measurement_unit.setReadOnly(state)
self._txt_elevation.setReadOnly(state)
self._txt_azimuth.setReadOnly(state)
self._txt_distance.setReadOnly(state)
self._txt_area.setReadOnly(state)
self._txt_solid_angle.setReadOnly(state)
self._txt_semi_angle.setReadOnly(state)
self._txt_temperature.setReadOnly(state)
def isReadOnly(self):
return _ConditionWidget.isReadOnly(self) and \
not self._cb_signal_type.isEnabled() and \
self._txt_manufacturer.isReadOnly() and \
self._txt_model.isReadOnly() and \
#.........这里部分代码省略.........
示例13: PulseHeightAnalyserWidget
# 需要导入模块: from qtpy.QtWidgets import QComboBox [as 别名]
# 或者: from qtpy.QtWidgets.QComboBox import findText [as 别名]
class PulseHeightAnalyserWidget(ParameterWidget):
def __init__(self, parent=None):
ParameterWidget.__init__(self, PulseHeightAnalyser, parent)
def _init_ui(self):
# Widgets
self._txt_bias = NumericalAttributeLineEdit(self.CLASS.bias)
self._txt_gain = NumericalAttributeLineEdit(self.CLASS.gain)
self._txt_base_level = NumericalAttributeLineEdit(self.CLASS.base_level)
self._txt_window = NumericalAttributeLineEdit(self.CLASS.window)
self._cb_mode = QComboBox()
self._cb_mode.addItems([None] + list(_PHA_MODES))
# Layouts
layout = ParameterWidget._init_ui(self)
layout.addRow('Bias', self._txt_bias)
layout.addRow('Gain', self._txt_gain)
layout.addRow('Base level', self._txt_base_level)
layout.addRow('Window', self._txt_window)
layout.addRow('Mode', self._cb_mode)
# Signals
self._txt_bias.textEdited.connect(self.edited)
self._txt_gain.textEdited.connect(self.edited)
self._txt_base_level.textEdited.connect(self.edited)
self._txt_window.textEdited.connect(self.edited)
self._cb_mode.currentIndexChanged.connect(self.edited)
return layout
def parameter(self, parameter=None):
parameter = ParameterWidget.parameter(self, parameter)
parameter.bias = self._txt_bias.text()
parameter.gain = self._txt_gain.text()
parameter.base_level = self._txt_base_level.text()
parameter.window = self._txt_window.text()
parameter.mode = self._cb_mode.currentText()
return parameter
def setParameter(self, parameter):
ParameterWidget.setParameter(self, parameter)
self._txt_bias.setText(parameter.bias)
self._txt_gain.setText(parameter.gain)
self._txt_base_level.setText(parameter.base_level)
self._txt_window.setText(parameter.window)
self._cb_mode.setCurrentIndex(self._cb_mode.findText(parameter.mode))
def pulseHeightAnalyser(self):
return self.parameter()
def setPulseHeightAnalyser(self, pha):
self.setParameter(pha)
pha = pulseHeightAnalyser
setPha = setPulseHeightAnalyser
def setReadOnly(self, state):
ParameterWidget.setReadOnly(self, state)
self._txt_bias.setReadOnly(state)
self._txt_gain.setReadOnly(state)
self._txt_base_level.setReadOnly(state)
self._txt_window.setReadOnly(state)
self._cb_mode.setEnabled(not state)
def isReadOnly(self):
return ParameterWidget.isReadOnly(self) and \
self._txt_bias.isReadOnly() and \
self._txt_gain.isReadOnly() and \
self._txt_base_level.isReadOnly() and \
self._txt_window.isReadOnly() and \
not self._cb_mode.isEnabled()
def hasAcceptableInput(self):
return ParameterWidget.hasAcceptableInput(self) and \
self._txt_bias.hasAcceptableInput() and \
self._txt_gain.hasAcceptableInput() and \
self._txt_base_level.hasAcceptableInput() and \
self._txt_window.hasAcceptableInput()