本文整理汇总了Python中PyQt4.QtGui.QDoubleSpinBox.setValue方法的典型用法代码示例。如果您正苦于以下问题:Python QDoubleSpinBox.setValue方法的具体用法?Python QDoubleSpinBox.setValue怎么用?Python QDoubleSpinBox.setValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.QtGui.QDoubleSpinBox
的用法示例。
在下文中一共展示了QDoubleSpinBox.setValue方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _getSpinbox
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
def _getSpinbox(self, minvalue, maxvalue, step, nullable = True, value = 0):
'''
Get a combobox filled with the given values
:param values: The values as key = value, value = description or text
:type values: Dict
:returns: A combobox
:rtype: QWidget
'''
widget = QWidget()
spinbox = QDoubleSpinBox()
spinbox.setMinimum(minvalue)
spinbox.setMaximum(maxvalue)
spinbox.setSingleStep(step)
spinbox.setDecimals(len(str(step).split('.')[1]) if len(str(step).split('.'))==2 else 0)
if nullable:
spinbox.setMinimum(minvalue - step)
spinbox.setValue(spinbox.minimum())
spinbox.setSpecialValueText(str(QSettings().value('qgis/nullValue', 'NULL' )))
if value is not None:
spinbox.setValue(value)
layout = QHBoxLayout(widget)
layout.addWidget(spinbox, 1);
layout.setAlignment(Qt.AlignCenter);
layout.setContentsMargins(5,0,5,0);
widget.setLayout(layout);
return widget
示例2: _refresh_widgets_from_axistags
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
def _refresh_widgets_from_axistags(self):
axiskeys = [tag.key for tag in self.axistags]
row_widgets = collections.OrderedDict()
for key in axiskeys:
tag_info = self.axistags[key]
resolution_box = QDoubleSpinBox(parent=self)
resolution_box.setRange(0.0, numpy.finfo(numpy.float32).max)
resolution_box.setValue( tag_info.resolution )
resolution_box.valueChanged.connect( self._update_axistags_from_widgets )
resolution_box.installEventFilter(self)
description_edit = QLineEdit(tag_info.description, parent=self)
description_edit.textChanged.connect( self._update_axistags_from_widgets )
description_edit.installEventFilter(self)
row_widgets[key] = RowWidgets( resolution_box, description_edit )
# Clean up old widgets (if any)
for row in range(self.rowCount()):
for col in range(self.columnCount()):
w = self.cellWidget( row, col )
if w:
w.removeEventFilter(self)
# Fill table with widgets
self.setRowCount( len(row_widgets) )
self.setVerticalHeaderLabels( row_widgets.keys() )
for row, widgets in enumerate(row_widgets.values()):
self.setCellWidget( row, 0, widgets.resolution_box )
self.setCellWidget( row, 1, widgets.description_edit )
示例3: ConfigWidget
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
class ConfigWidget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
layout = QFormLayout()
self.setLayout(layout)
self.label_ip = QLabel("IP")
self.lineedit_ip = QLineEdit()
layout.addRow(self.label_ip, self.lineedit_ip)
self.label_port = QLabel("Port")
self.spinbox_port = QSpinBox()
self.spinbox_port.setMinimum(0)
self.spinbox_port.setMaximum(65535)
layout.addRow(self.label_port, self.spinbox_port)
self.label_password = QLabel("Password")
self.lineedit_password = QLineEdit()
layout.addRow(self.label_password, self.lineedit_password)
self.label_mount = QLabel("Mount")
self.lineedit_mount = QLineEdit()
layout.addRow(self.label_mount, self.lineedit_mount)
#
# Audio Quality
#
self.label_audio_quality = QLabel("Audio Quality")
self.spinbox_audio_quality = QDoubleSpinBox()
self.spinbox_audio_quality.setMinimum(0.0)
self.spinbox_audio_quality.setMaximum(1.0)
self.spinbox_audio_quality.setSingleStep(0.1)
self.spinbox_audio_quality.setDecimals(1)
self.spinbox_audio_quality.setValue(0.3) # Default value 0.3
#
# Video Quality
#
self.label_video_quality = QLabel("Video Quality (kb/s)")
self.spinbox_video_quality = QSpinBox()
self.spinbox_video_quality.setMinimum(0)
self.spinbox_video_quality.setMaximum(16777215)
self.spinbox_video_quality.setValue(2400) # Default value 2400
def get_video_quality_layout(self):
layout_video_quality = QHBoxLayout()
layout_video_quality.addWidget(self.label_video_quality)
layout_video_quality.addWidget(self.spinbox_video_quality)
return layout_video_quality
def get_audio_quality_layout(self):
layout_audio_quality = QHBoxLayout()
layout_audio_quality.addWidget(self.label_audio_quality)
layout_audio_quality.addWidget(self.spinbox_audio_quality)
return layout_audio_quality
示例4: FloatParameterWidget
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
class FloatParameterWidget(NumericParameterWidget):
"""Widget class for Float parameter."""
def __init__(self, parameter, parent=None):
"""Constructor
.. versionadded:: 2.2
:param parameter: A FloatParameter object.
:type parameter: FloatParameter
"""
super(FloatParameterWidget, self).__init__(parameter, parent)
self._input = QDoubleSpinBox()
self._input.setDecimals(self._parameter.precision)
self._input.setMinimum(self._parameter.minimum_allowed_value)
self._input.setMaximum(self._parameter.maximum_allowed_value)
self._input.setValue(self._parameter.value)
self._input.setSingleStep(
10 ** -self._parameter.precision)
# is it possible to use dynamic precision ?
string_min_value = '%.*f' % (
self._parameter.precision, self._parameter.minimum_allowed_value)
string_max_value = '%.*f' % (
self._parameter.precision, self._parameter.maximum_allowed_value)
tool_tip = 'Choose a number between %s and %s' % (
string_min_value, string_max_value)
self._input.setToolTip(tool_tip)
self._input.setSizePolicy(self._spin_box_size_policy)
self.inner_input_layout.addWidget(self._input)
self.inner_input_layout.addWidget(self._unit_widget)
示例5: ChangeConfLevelDlg
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
class ChangeConfLevelDlg(QDialog):
''' Dialog for changing confidence level '''
def __init__(self, previous_value=DEFAULT_CONF_LEVEL, parent=None):
super(ChangeConfLevelDlg, self).__init__(parent)
cl_label = QLabel("Global Confidence Level:")
self.conf_level_spinbox = QDoubleSpinBox()
self.conf_level_spinbox.setRange(50, 99.999 )
self.conf_level_spinbox.setSingleStep(0.1)
self.conf_level_spinbox.setSuffix(QString("%"))
self.conf_level_spinbox.setValue(previous_value)
self.conf_level_spinbox.setDecimals(1)
buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
hlayout = QHBoxLayout()
hlayout.addWidget(cl_label)
hlayout.addWidget(self.conf_level_spinbox)
vlayout = QVBoxLayout()
vlayout.addLayout(hlayout)
vlayout.addWidget(buttonBox)
self.setLayout(vlayout)
self.connect(buttonBox, SIGNAL("accepted()"), self, SLOT("accept()"))
self.connect(buttonBox, SIGNAL("rejected()"), self, SLOT("reject()"))
self.setWindowTitle("Change Confidence Level")
def get_value(self):
return self.conf_level_spinbox.value()
示例6: XicWidget
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
class XicWidget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
v = QVBoxLayout()
f = QFormLayout()
self.mzTolSpinBox = QDoubleSpinBox(self)
self.mzTolSpinBox.setMaximum(100)
self.mzTolSpinBox.setMinimum(1)
self.mzTolSpinBox.setValue(10)
f.addRow("mz tolerance(ppm):", self.mzTolSpinBox)
self.mzSpinBox = QDoubleSpinBox(self)
self.mzSpinBox.setMaximum(2000.0)
self.mzSpinBox.setMinimum(300.0)
self.mzSpinBox.setValue(500.0)
f.addRow("requested m/z:", self.mzSpinBox)
v.addLayout(f)
self.plotButton = QPushButton("Plot")
v.addWidget(self.plotButton)
self.setLayout(v)
示例7: __init__
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
def __init__(self, parent, prefix = None, suffix = None, option = None, min_ = None, max_ = None,
step = None, tip = None, value = None, changed =None):
super(MyDoubleSpinBox, self).__init__(parent)
if prefix:
plabel = QLabel(prefix)
else:
plabel = None
if suffix:
slabel = QLabel(suffix)
else:
slabel = None
spinbox = QDoubleSpinBox(parent)
if min_ is not None:
spinbox.setMinimum(min_)
if max_ is not None:
spinbox.setMaximum(max_)
if step is not None:
spinbox.setSingleStep(step)
if tip is not None:
spinbox.setToolTip(tip)
layout = QHBoxLayout()
for subwidget in (plabel, spinbox, slabel):
if subwidget is not None:
layout.addWidget(subwidget)
if value is not None:
spinbox.setValue(value)
if changed is not None:
self.connect(spinbox, SIGNAL('valueChanged(double)'), changed)
layout.addStretch(1)
layout.setContentsMargins(0, 0, 0, 0)
self.setLayout(layout)
self.spin = spinbox
示例8: float_widget
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
def float_widget(self, start_val, min_val, max_val, step):
""" Returns a float widget with the given values.
"""
box = QDoubleSpinBox()
box.setRange(min_val, max_val)
box.setValue(start_val)
box.setSingleStep(step)
return box
示例9: createDoubleSpinBox
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
def createDoubleSpinBox(self, variable_name, variable_value, variable_type, analysis_module_variables_model):
spinner = QDoubleSpinBox()
spinner.setMinimumWidth(75)
spinner.setMaximum(analysis_module_variables_model.getVariableMaximumValue(variable_name))
spinner.setMinimum(analysis_module_variables_model.getVariableMinimumValue(variable_name))
spinner.setSingleStep(analysis_module_variables_model.getVariableStepValue(variable_name))
spinner.setValue(variable_value)
spinner.valueChanged.connect(partial(self.valueChanged,variable_name, variable_type, spinner))
return spinner;
示例10: ConfigWidget
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
class ConfigWidget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
layout = QFormLayout()
self.setLayout(layout)
#
# Audio Quality
#
self.label_audio_quality = QLabel("Audio Quality")
self.spinbox_audio_quality = QDoubleSpinBox()
self.spinbox_audio_quality.setMinimum(0.0)
self.spinbox_audio_quality.setMaximum(1.0)
self.spinbox_audio_quality.setSingleStep(0.1)
self.spinbox_audio_quality.setDecimals(1)
self.spinbox_audio_quality.setValue(0.3) # Default value 0.3
#
# Video Quality
#
self.label_video_quality = QLabel("Video Quality (kb/s)")
self.spinbox_video_quality = QSpinBox()
self.spinbox_video_quality.setMinimum(0)
self.spinbox_video_quality.setMaximum(16777215)
self.spinbox_video_quality.setValue(2400) # Default value 2400
#
# Misc.
#
self.label_matterhorn = QLabel("Matterhorn Metadata")
self.label_matterhorn.setToolTip("Generates Matterhorn Metadata in XML format")
self.checkbox_matterhorn = QCheckBox()
layout.addRow(self.label_matterhorn, self.checkbox_matterhorn)
def get_video_quality_layout(self):
layout_video_quality = QHBoxLayout()
layout_video_quality.addWidget(self.label_video_quality)
layout_video_quality.addWidget(self.spinbox_video_quality)
return layout_video_quality
def get_audio_quality_layout(self):
layout_audio_quality = QHBoxLayout()
layout_audio_quality.addWidget(self.label_audio_quality)
layout_audio_quality.addWidget(self.spinbox_audio_quality)
return layout_audio_quality
示例11: EkdTimePropertie
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
class EkdTimePropertie(EkdPropertie):
"""
Définition de la propriété correspondant à un conteur ou une valeur de temps
"""
def __init__(self, prop, name, value, minimum=0, maximum=100, section=None ):
super(EkdTimePropertie, self).__init__(prop, name, value, EkdPropertie.TIME, section)
self.label = QLabel(name)
self.widget = QDoubleSpinBox()
self.widget.setValue(float(value))
self.widget.setMaximum(maximum)
self.widget.setMinimum(minimum)
# Quand on change la valeur de la propriété, on met à jour EkdConfig
self.connect(self.widget, SIGNAL("valueChanged(double)"), self.updateNum)
def updateNum(self, val):
self.value = val
EkdConfig.set(self.section, self.id, self.value)
#print "Debug:: TIMER %s | value %s | value Ekd config %s | section %s" % (self.id, self.value, EkdConfig.get(self.section, self.id), self.section)
EkdPrint(u"Debug:: TIMER %s | value %s | value Ekd config %s | section %s" % (self.id, self.value, EkdConfig.get(self.section, self.id), self.section))
示例12: IntervalSpinner
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
class IntervalSpinner(QWidget):
def __init__(self, parent, min_=1, max_=1000, step=1, round_option=True):
QWidget.__init__(self, parent)
layout = QVBoxLayout(self)
hlayout = QHBoxLayout()
self.start = QDoubleSpinBox(self)
self.start.setMinimum(min_)
self.start.setMaximum(max_)
self.end = QDoubleSpinBox(self)
self.end.setMinimum(min_)
self.end.setMaximum(max_)
self.end.setValue(max_)
self.start.setSingleStep(step)
self.end.setSingleStep(step)
self.start.valueChanged.connect(self.on_value_start_changed)
self.end.valueChanged.connect(self.on_value_end_changed)
hlayout.addWidget(self.start)
hlayout.addWidget(self.end)
layout.addLayout(hlayout)
if round_option:
self.integerCheckBox = QCheckBox("Round to integer values", self)
layout.addWidget(self.integerCheckBox)
def on_value_start_changed(self, val):
if self.end.value() < val:
self.end.setValue(val)
def on_value_end_changed(self, val):
if self.start.value() > val:
self.start.setValue(val)
def getMin(self):
return self.start.value()
def getMax(self):
return self.end.value()
def getRound(self):
return self.integerCheckBox.isChecked()
示例13: DefaultValueParameterWidget
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
class DefaultValueParameterWidget(GenericParameterWidget):
"""Widget class for Default Value Parameter."""
def __init__(self, parameter, parent=None):
"""Constructor.
:param parameter: A DefaultValueParameter object.
:type parameter: DefaultValueParameter
"""
super(DefaultValueParameterWidget, self).__init__(parameter, parent)
self.radio_button_layout = QHBoxLayout()
# Create radio button group
self.input_button_group = QButtonGroup()
for i in range(len(self._parameter.labels)):
if '%s' in self._parameter.labels[i]:
label = (
self._parameter.labels[i] %
self._parameter.options[i])
else:
label = self._parameter.labels[i]
radio_button = QRadioButton(label)
self.radio_button_layout.addWidget(radio_button)
self.input_button_group.addButton(radio_button, i)
if self._parameter.value == \
self._parameter.options[i]:
radio_button.setChecked(True)
# Create double spin box for custom value
self.custom_value = QDoubleSpinBox()
self.custom_value.setSingleStep(0.1)
if self._parameter.options[-1]:
self.custom_value.setValue(self._parameter.options[-1])
self.radio_button_layout.addWidget(self.custom_value)
self.toggle_custom_value()
self.inner_input_layout.addLayout(self.radio_button_layout)
# Connect
# noinspection PyUnresolvedReferences
self.input_button_group.buttonClicked.connect(
self.toggle_custom_value)
def raise_invalid_type_exception(self):
"""Raise invalid type."""
message = 'Expecting element type of %s' % (
self._parameter.element_type.__name__)
err = ValueError(message)
return err
def get_parameter(self):
"""Obtain list parameter object from the current widget state.
:returns: A DefaultValueParameter from the current state of widget
:rtype: DefaultValueParameter
"""
radio_button_checked_id = self.input_button_group.checkedId()
# No radio button checked, then default value = None
if radio_button_checked_id == -1:
self._parameter.value = None
# The last radio button (custom) is checked, get the value from the
# line edit
elif radio_button_checked_id == len(self._parameter.options) - 1:
self._parameter.options[radio_button_checked_id] = \
self.custom_value.value()
self._parameter.value = self.custom_value.value()
else:
self._parameter.value = self._parameter.options[
radio_button_checked_id]
return self._parameter
def set_value(self, value):
"""Set value by item's string.
:param value: The value.
:type value: str, int
:returns: True if success, else False.
:rtype: bool
"""
# Find index of choice
try:
value_index = self._parameter.options.index(value)
self.input_button_group.button(value_index).setChecked(True)
except ValueError:
last_index = len(self._parameter.options) - 1
self.input_button_group.button(last_index).setChecked(
True)
self.custom_value.setValue(value)
self.toggle_custom_value()
def toggle_custom_value(self):
#.........这里部分代码省略.........
示例14: ItemTreeWidget
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
class ItemTreeWidget(GenericTreeWidget):
def __init__(self, session, parent, creator):
GenericTreeWidget.__init__(self, session, parent)
self.creator = creator
self.setTitle('Tuotteet')
self.setButtons([ButtonType.add,ButtonType.open,ButtonType.remove])
self.setHeader(headertexts=['id', 'Nimi', 'Tyyppi', 'Hinta', 'Määrä'], hidecolumns=[0])
from mainwindowtabs.itemcreatordialog import ItemCreatorDialog
self.setInputMethod(tabcreator=ItemCreatorDialog, autoAdd=True, function=SqlHandler.searchItem)
self.countSpinBox = QDoubleSpinBox(parent=self)
self.countSpinBox.setRange(0.01, 99999999)
self.countSpinBox.setValue(1)
if self.ui.topLayout.count() > 0 or self.ui.bottomLayout.count() == 0:
self.ui.topLayout.insertWidget(self.ui.topLayout.count(), self.countSpinBox)
else:
self.ui.bottomLayout.incertWidget(self.ui.bottomLayout.count(), self.countSpinBox)
self.setUpTreewidget()
self.countSpinBox.valueChanged['double'].connect(self.updateItemCount)
self.ui.treeWidget.currentItemChanged.connect(self.handleChange)
def setUpTreewidget(self):
if self.ui.treeWidget.currentItem() != None:
#set item count to countSpinBox
self.countSpinBox.setValue(self.ui.treeWidget.currentItem().data(0,0).count)
def updateItemCount(self,count):
current = self.ui.treeWidget.currentItem()
if current.data(0,0).count != count:
current.data(0,0).count = count
current.setText(3, '%.2f' % (current.data(0,0).item.price*count))
current.setText(4, str(count))
def handleChange(self, current, previous):
if current != None:
self.countSpinBox.setValue(self.ui.treeWidget.currentItem().data(0,0).count)
'''
This function is called when:
1. searchLineEdit returns new item (Item)
2. list of items is loaded from Surgery or SurgeryBase object
3. just wanted to increase count of current item.
item is type of Item/SurgeryItem/SurgetyBaseItem
'''
def addItemToTree(self, item):
if item != None:
if self.creator and item.getType() == self.creator.getType():
#Now we are loading data from Surgery or Surgery base object
#So we make new tree objects and add counts to them
treeItem = self.makeTreeItem(item)
self.ui.treeWidget.addTopLevelItem(treeItem)
self.ui.treeWidget.setCurrentItem(treeItem)
else:
item_index = self.itemInList(item)
if item_index < 1:
#Item isnt found from list so we make new
treeItem = self.makeTreeItem(item)
self.ui.treeWidget.addTopLevelItem(treeItem)
self.ui.treeWidget.setCurrentItem(treeItem)
else:
#item is in list and it is just returned from Itemcreator and data is needed to be edited
#or it it is tryed to add by searchline edit
removedItem = self.ui.treeWidget.takeTopLevelItem(item_index) #take line from list
item_data = item.stringList() #get item new string list
#update data, only item data not
for i in range(1,len(item_data)):
removedItem.setText(i,item_data[i]) #set updated text to line
self.ui.treeWidget.addTopLevelItem(removedItem) #add line back to list
self.ui.treeWidget.setCurrentItem(removedItem) #set it current item
def getItemsFromList(self):
itemList = []
for i in range(0, self.ui.treeWidget.topLevelItemCount()):
itemList.append(self.ui.treeWidget.topLevelItem(i).data(0,0))
return itemList
def removeSelectedItem(self):
temp = self.ui.treeWidget.currentItem()
if temp != None:
removedItem = self.ui.treeWidget.takeTopLevelItem(self.ui.treeWidget.indexOfTopLevelItem(temp))
if removedItem != None:
item = removedItem.data(0,0)
if item in self.session:
self.session.delete(item)
def openItem(self):
tree_item = self.ui.treeWidget.currentItem()
if tree_item != None:
creator = self.tabcreator(parent=self, item=tree_item.data(0,0).item)
#.........这里部分代码省略.........
示例15: __init__
# 需要导入模块: from PyQt4.QtGui import QDoubleSpinBox [as 别名]
# 或者: from PyQt4.QtGui.QDoubleSpinBox import setValue [as 别名]
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
buttonHelp1 = QPushButton('help')
buttonHelp1.setEnabled(False)
buttonHelp1.setToolTip('The table below, with the exception of the last row and column, describe the network\n' +
'in terms of the weight coefficient values. The value of a cell in the n-th row and m-th\n' +
'column is the weight of the n-th feature for the m-th animal class.\n\n' +
'As you can see, each animal class has its own neuron that recognizes it, and each of\n' +
'these neurons has inputs that receive individual feature values.\n\n' +
'The last column represents the input vector, and the last row contains the network\n' +
'output values.')
buttonHelp2 = QPushButton('help')
buttonHelp2.setEnabled(False)
buttonHelp2.setToolTip('If you show the winner, you will see the neuron whose response was the strongest.\n' +
'This neuron indicates the animal class the examined object will most probably fall into.\n' +
'The table below, with the exception of the last row and column, describe the network\n' +
'in terms of the weight coefficient values. The value of a cell in the n-th row and m-th\n' +
'column is the weight of the n-th feature for the m-th animal class.\n\n' +
'As you can see, each animal class has its own neuron that recognizes it, and each of\n' +
'these neurons has inputs that receive individual feature values.\n\n' +
'The last column represents the input vector, and the last row contains the network\n' +
'output values.')
hBoxLayout1 = QHBoxLayout()
hBoxLayout1.addWidget(QLabel('The neural network in this example uses five features to recognize\n' +
'three classes of animals. Its weight coefficients are predefined and shown in the table below.\n\n' +
'To test the network behavior, enter the input signals in the rightmost column and read the output\n' +
'values from the bottom row.'))
hBoxLayout1.addWidget(buttonHelp1)
self.checkBoxWinner = QCheckBox()
self.checkBoxWinner.setText('Show the winner')
hBoxLayout2 = QHBoxLayout()
hBoxLayout2.addWidget(self.checkBoxWinner)
hBoxLayout2.addWidget(buttonHelp2)
self.tableWidget = QTableWidget()
self.labelNeuron = QLabel('(There is no winner.)')
self.labelType = QLabel('This is something strange!')
self.spinBoxThreshold = QDoubleSpinBox()
self.spinBoxThreshold.setValue(5.0)
self.groupBox = QGroupBox('Show the winner')
gridLayout = QGridLayout()
gridLayout.addWidget(QLabel('And the winner is...'), 0, 0)
gridLayout.addWidget(self.labelNeuron, 0, 1)
gridLayout.addWidget(QLabel('Because of this, the network claims:'), 1, 0)
gridLayout.addWidget(self.labelType, 1, 1)
gridLayout.addWidget(QLabel('Threshold:'), 2, 0)
gridLayout.addWidget(self.spinBoxThreshold, 2, 1)
self.groupBox.setLayout(gridLayout)
self.groupBox.setVisible(False)
vBoxLayout = QVBoxLayout()
vBoxLayout.addLayout(hBoxLayout1)
vBoxLayout.addWidget(self.tableWidget)
vBoxLayout.addLayout(hBoxLayout2)
vBoxLayout.addWidget(self.groupBox)
self.setLayout(vBoxLayout)
self.setWindowTitle('Simple linear neural network (example2)')
self.classNames = ['mammal', 'bird', 'fish']
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(6)
self.tableWidget.verticalHeader().hide()
self.tableWidget.setHorizontalHeaderLabels(['Feature'] + self.classNames + ['Input vector'])
self.tableWidget.setCellWidget(0, 0, QLabel('number of legs'))
self.tableWidget.setCellWidget(1, 0, QLabel('lives in water'))
self.tableWidget.setCellWidget(2, 0, QLabel('can fly'))
self.tableWidget.setCellWidget(3, 0, QLabel('has feathers'))
self.tableWidget.setCellWidget(4, 0, QLabel('egg-laying'))
self.tableWidget.setCellWidget(5, 0, QLabel('Output'))
weights = [
[ 4, 0.01, 0.01, -1, -1.5 ],
[ 2, -1, 2, 2.5, 2 ],
[ -1, 3.5, 0.01, -2, 1.5 ]
]
for i in xrange(len(weights)):
for j in xrange(len(weights[i])):
self.tableWidget.setCellWidget(j, i + 1, QLabel(' ' + str(weights[i][j])))
for i in xrange(len(weights)):
self.tableWidget.setCellWidget(5, i + 1, QLabel(''))
for i in xrange(len(weights[0])):
doubleSpinBox = QDoubleSpinBox()
doubleSpinBox.setValue(0.0)
doubleSpinBox.setRange(-15.0, 15.0)
self.tableWidget.setCellWidget(i, 4, doubleSpinBox)
self.tableWidget.setCellWidget(5, 4, QPushButton('Calculate'))
self.linearNetwork = LinearNetwork(initialWeights=weights)
self.connect(self.checkBoxWinner, SIGNAL('stateChanged(int)'), self.visibleGrid)
self.connect(self.tableWidget.cellWidget(5, 4), SIGNAL('clicked()'), self.updateResult)
self.resize(600, 400)