def keyPressEvent(self, event): """Handle key press events""" if event.key() == Qt.Key_Return or event.key() == Qt.Key_Enter: if self.add_current_text_if_valid(): self.selected() else: QComboBox.keyPressEvent(self, event)
class ComboBox(QWidget): def __init__(self, caption, values, default_value, caption_size=None, expand_combo=False): QWidget.__init__(self) self.values = values description = QLabel(caption) description.setWordWrap(True) if caption_size: description.setMaximumWidth(caption_size) self.combo = QComboBox() for item in values: self.combo.addItem(item, item) for i in range(0, len(values)): if values[i] == default_value: self.combo.setCurrentIndex(i) break hbox = QHBoxLayout() hbox.addWidget(description) hbox.addSpacing(10) if expand_combo: hbox.addWidget(self.combo, 1) else: hbox.addWidget(self.combo) hbox.setMargin(0) self.setLayout(hbox) self.setContentsMargins(0, 0, 0, 0) def get_value(self): return str(self.values[self.combo.currentIndex()])
def __init__(self, main_combo=False): super(ActionBar, self).__init__() self.setObjectName("actionbar") hbox = QHBoxLayout(self) hbox.setContentsMargins(1, 1, 1, 1) hbox.setSpacing(1) self.lbl_checks = QLabel('') self.lbl_checks.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.lbl_checks.setFixedWidth(48) self.lbl_checks.setVisible(False) hbox.addWidget(self.lbl_checks) self.combo = QComboBox() self.combo.setIconSize(QSize(16, 16)) #model = QStandardItemModel() #self.combo.setModel(model) #self.combo.view().setDragDropMode(QAbstractItemView.InternalMove) self.combo.setMaximumWidth(300) self.combo.setObjectName("combotab") self.connect(self.combo, SIGNAL("currentIndexChanged(int)"), self.current_changed) self.combo.setToolTip(translations.TR_COMBO_FILE_TOOLTIP) self.combo.setContextMenuPolicy(Qt.CustomContextMenu) self.connect(self.combo, SIGNAL( "customContextMenuRequested(const QPoint &)"), self._context_menu_requested) hbox.addWidget(self.combo) self.symbols_combo = QComboBox() self.symbols_combo.setIconSize(QSize(16, 16)) self.symbols_combo.setObjectName("combo_symbols") self.connect(self.symbols_combo, SIGNAL("activated(int)"), self.current_symbol_changed) hbox.addWidget(self.symbols_combo) self.code_navigator = CodeNavigator() hbox.addWidget(self.code_navigator) self._pos_text = "Line: %d, Col: %d" self.lbl_position = QLabel(self._pos_text % (0, 0)) self.lbl_position.setObjectName("position") self.lbl_position.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) hbox.addWidget(self.lbl_position) self.btn_close = QPushButton( self.style().standardIcon(QStyle.SP_DialogCloseButton), '') self.btn_close.setIconSize(QSize(16, 16)) if main_combo: self.btn_close.setObjectName('navigation_button') self.btn_close.setToolTip(translations.TR_CLOSE_FILE) self.connect(self.btn_close, SIGNAL("clicked()"), self.about_to_close_file) else: self.btn_close.setObjectName('close_split') self.btn_close.setToolTip(translations.TR_CLOSE_SPLIT) self.connect(self.btn_close, SIGNAL("clicked()"), self.close_split) self.btn_close.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) hbox.addWidget(self.btn_close)
def __init__(self, value): QComboBox.__init__(self) self._value = value for k, l in value.choices.iteritems(): self.addItem(l, QVariant(k)) if value.default == k: self.setCurrentIndex(self.count()-1)
def create_combobox ( self, parent, editable = False ): """ Returns an adapted QComboBox control. """ control = QComboBox( check_parent( parent ) ) control.setEditable( editable ) return control_adapter( control )
def createEditor(self, parent, _QStyleOptionViewItem, index): combo = QComboBox(parent) attr = index.model()[index.row()][0] combo.setModel(self._combo_continuous_model if attr.is_continuous else self._combo_discrete_model if attr.is_discrete else self._combo_string_model) return combo
class MainWindow(QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) # codeCompletionBlock start from PyQt4.QtGui import QComboBox, QToolButton, QStackedWidget self.accountSelection = QComboBox() self.accountButton = QToolButton() self.accountStack = QStackedWidget() # codeCompletionBlock end uic.loadUi(getUiFile('MainWindow'), self) self.model = Model() self.model.loadLastSession() self.actionAdd_Account.triggered.connect(self.addSubAccount) self.accountSelection.currentIndexChanged.connect(self.accountStack.setCurrentIndex) def addSubAccount(self): data = inquireAccountData() account = self.model.createNewAccount(data['name'], data['description'], data['numbers']) self.model.addNewAccount(account) self.accountSelection.addItem(account.description) self.accountStack.addWidget(AccountWidget())
def __init__(self, iterable=False, load_all = False, help_link=""): QWidget.__init__(self) self._iterable = iterable addHelpToWidget(self, help_link) layout = QHBoxLayout() analysis_module_combo = QComboBox() self._module_names = getAnalysisModuleNames(self._iterable) if load_all: self._module_names += getAnalysisModuleNames(not self._iterable) for module_name in self._module_names: analysis_module_combo.addItem(module_name) self._current_module_name = self._getCurrentAnalysisModuleName() if self._current_module_name is not None: analysis_module_combo.setCurrentIndex(self._module_names.index(self._current_module_name)) analysis_module_combo.currentIndexChanged[int].connect(self.analysisModuleChanged) variables_popup_button = QToolButton() variables_popup_button.setIcon(resourceIcon("ide/small/cog_edit.png")) variables_popup_button.clicked.connect(self.showVariablesPopup) variables_popup_button.setMaximumSize(20, 20) layout.addWidget(analysis_module_combo, 0, Qt.AlignLeft) layout.addWidget(variables_popup_button, 0, Qt.AlignLeft) layout.setContentsMargins(QMargins(0, 0, 0, 0)) layout.addStretch() self.setLayout(layout)
def createEditor(self, parent, option, index): if index.column() == TEU: spinbox = QSpinBox(parent) spinbox.setRange(0, 200000) spinbox.setSingleStep(1000) spinbox.setAlignment(Qt.AlignRight|Qt.AlignVCenter) return spinbox elif index.column() == OWNER: combobox = QComboBox(parent) combobox.addItems(sorted(index.model().owners)) combobox.setEditable(True) return combobox elif index.column() == COUNTRY: combobox = QComboBox(parent) combobox.addItems(sorted(index.model().countries)) combobox.setEditable(True) return combobox elif index.column() == NAME: editor = QLineEdit(parent) self.connect(editor, SIGNAL("returnPressed()"), self.commitAndCloseEditor) return editor elif index.column() == DESCRIPTION: editor = richtextlineedit.RichTextLineEdit(parent) self.connect(editor, SIGNAL("returnPressed()"), self.commitAndCloseEditor) return editor else: return QStyledItemDelegate.createEditor(self, parent, option, index)
def createEditor( self, parent, options, index, ): setting = index.model().data(index, Qt.UserRole) if setting.valuetype == Setting.FOLDER: return FileDirectorySelector(parent) elif setting.valuetype == Setting.FILE: return FileDirectorySelector(parent, True) elif setting.valuetype == Setting.SELECTION: combo = QComboBox(parent) combo.addItems(setting.options) return combo else: value = self.convertValue(index.model().data(index, Qt.EditRole)) if isinstance(value, (int, long)): spnBox = QgsSpinBox(parent) spnBox.setRange(-999999999, 999999999) return spnBox elif isinstance(value, float): spnBox = QgsDoubleSpinBox(parent) spnBox.setRange(-999999999.999999, 999999999.999999) spnBox.setDecimals(6) return spnBox elif isinstance(value, (str, unicode)): return QLineEdit(parent)
class WidgetSelector(QWidget): def __init__(self, parent): QWidget.__init__(self, parent) self.key_text = QLineEdit(self) self.widget_select = QComboBox(self) self.value_widget = None self.layout = QHBoxLayout(self) self.layout.addWidget(self.key_text) self.layout.addWidget(self.widget_select) self.options = NodeWidget.get_simple_widgets() for i, option in enumerate(self.options): self.widget_select.addItem(option.get_description(), i) self.widget_select.currentIndexChanged.connect(self.change_widget) def get_item(self): return { "key":unicode(self.key_text.text()), "value":self.value_widget.data } def change_widget(self): w_class = self.options[self.widget_select.currentIndex()] if self.value_widget: self.layout.removeWidget(self.value_widget) self.value_widget.setParent(None) self.value_widget = None element_scheme = StructuredNode({"Type":w_class.data_type}) new_data = NodeWidget.get_default_data(element_scheme, None) self.value_widget = NodeWidget.create_node_widget("__not_exist", new_data, element_scheme) self.layout.addWidget(self.value_widget)
def createKeySignatureWidget(self): self.keySignatureLabel = QLabel() self.keyNote = QComboBox() self.keyNote.setModel(listmodel.ListModel(keyNames['nederlands'], self.keyNote)) self.keyMode = QComboBox() self.keyMode.setModel(listmodel.ListModel(modes, self.keyMode, display=listmodel.translate_index(1))) self.keySignatureLabel.setBuddy(self.keyNote)
def __init__(self): QWidget.__init__(self) self.layout = QGridLayout(self) self.viewer = None self.x_label = QLabel("X axis:") self.x_chooser = QComboBox() self.x_chooser.setEditable(True) self.y_label = QLabel("Y axis:") self.y_chooser = QComboBox() self.y_chooser.setEditable(True) # TODO: add completers self.nav_reset = QPushButton("&Reset view") self.layout.addWidget(self.x_label, 1, 0) self.layout.addWidget(self.x_chooser, 1, 1) self.layout.addWidget(self.y_label, 1, 3) self.layout.addWidget(self.y_chooser, 1, 4) self.layout.addWidget(self.nav_reset, 1, 6) self.layout.setColumnStretch(1, 1) self.layout.setColumnStretch(4, 1) self.layout.setRowStretch(0, 1) self.nav_reset.clicked.connect(self.reset_view) self.x_chooser.currentIndexChanged['QString'].connect(self.set_x_from_string) self.y_chooser.currentIndexChanged['QString'].connect(self.set_y_from_string) self.x_chooser.activated['QString'].connect(self.set_x_from_string)
class SizeRequest(Request): def __init__(self, parent): Request.__init__(self, parent) self.setOperators() self.setContent() self.setSizeType() def setOperators(self): self.operatorCombo = OperatorCombo(self) self.hlayout.addWidget(self.operatorCombo) def setContent(self): self.content = QLineEdit(self) self.validator = QIntValidator(0,2147483647, self) self.content.setValidator(self.validator) self.hlayout.addWidget(self.content) def setSizeType(self): self.stype = QComboBox(self) self.stype.addItem(QString("KB")) self.stype.addItem(QString("MB")) self.stype.addItem(QString("GB")) self.hlayout.addWidget(self.stype) def request(self): operator = str(self.operatorCombo.currentText()) factor = SIZE_T[self.stype.currentIndex()] size = self.content.text().toULongLong()[0] size = size * factor res = "(size " + operator + " " + str(size) + ")" return res
def __init__(self, fileBrowser): QComboBox.__init__(self, fileBrowser) self._fileBrowser = fileBrowser self.setAttribute( Qt.WA_MacShowFocusRect, False ) self.setAttribute( Qt.WA_MacSmallSize ) self.setEditable(True) self.setMinimumContentsLength(1) self.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLengthWithIcon) self.lineEdit().setReadOnly( False ) self._completionModel = QDirModel(self.lineEdit()) self._completionModel.setFilter( QDir.AllDirs | QDir.NoDotAndDotDot ) self.lineEdit().setCompleter(QCompleter(self._completionModel, self.lineEdit())) #TODO QDirModel is deprecated but QCompleter does not yet handle #QFileSystemModel - please update when possible. self._count = 0 # Show popup action self._showPopupAction = QAction(QIcon(':enkiicons/filtered.png'), "File browser history", self) self._showPopupAction.setShortcut('Ctrl+H') core.actionManager().addAction("mNavigation/mFileBrowser/aMenuShow", self._showPopupAction) self._showPopupAction.triggered.connect(self._onShowPopup) # reconnected in self.updateComboItems() self.currentIndexChanged[int].connect(self._onItemSelected)
def __init__(self, parent): super(LilyPondPreferences, self).__init__(parent) grid = QGridLayout() self.setLayout(grid) self.pitchLanguageLabel = QLabel() self.pitchLanguage = QComboBox() self.versionLabel = QLabel() self.version = QComboBox(editable=True) self.pitchLanguage.addItem('') self.pitchLanguage.addItems([lang.title() for lang in sorted(scoreproperties.keyNames)]) self.version.addItem(lilypondinfo.preferred().versionString()) for v in ("2.18.0", "2.16.0", "2.14.0", "2.12.0"): if v != lilypondinfo.preferred().versionString(): self.version.addItem(v) grid.addWidget(self.pitchLanguageLabel, 0, 0) grid.addWidget(self.pitchLanguage, 0, 1) grid.addWidget(self.versionLabel, 1, 0) grid.addWidget(self.version, 1, 1) self.pitchLanguage.activated.connect(self.slotPitchLanguageChanged) app.translateUI(self) self.loadSettings() self.window().finished.connect(self.saveSettings)
def __init__(self, parent, hex_widget, column): columnproviders.AbstractColumnConfigurationWidget.__init__(self) QWidget.__init__(self, parent) self.hexWidget = hex_widget self.column = column self.setLayout(QFormLayout()) self.cmbBase = QComboBox(self) self.cmbBase.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.layout().addRow(utils.tr('Base:'), self.cmbBase) for base in ((utils.tr('Hex'), 16), (utils.tr('Dec'), 10), (utils.tr('Oct'), 8), (utils.tr('Bin'), 2)): self.cmbBase.addItem(base[0], base[1]) if column is not None: self.cmbBase.setCurrentIndex(self.cmbBase.findData(column.formatter.base)) self.cmbStyle = QComboBox(self) self.cmbStyle.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.layout().addRow(utils.tr('Style:'), self.cmbStyle) for style_data in ((utils.tr('No style'), 'none'), (utils.tr('C'), 'c'), (utils.tr('Assembler'), 'asm')): self.cmbStyle.addItem(style_data[0], style_data[1]) if column is not None: self.cmbStyle.setCurrentIndex(self.cmbStyle.findData(column.formatter.styleName)) self.intBaseAddress = integeredit.IntegerEdit(self) self.intBaseAddress.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.layout().addRow(utils.tr('Base address:'), self.intBaseAddress) self.intBaseAddress.minimum = -10000000000000 if column is not None: self.intBaseAddress.number = column.baseAddress
def createAdditionalControlWidgets(self): self.windowChooser = QComboBox() self.windowChooser.addItems(self.prm['data']['available_windows']) self.windowChooser.setCurrentIndex(self.windowChooser.findText(self.prm['pref']['smoothingWindow'])) self.windowChooserLabel = QLabel(self.tr('Window:')) self.gridBox.addWidget(self.windowChooserLabel, 0, 4) self.gridBox.addWidget(self.windowChooser, 0, 5) self.windowChooser.currentIndexChanged[int].connect(self.onChangeWindowFunction) self.winLengthLabel= QLabel(self.tr('Window Length (s)')) self.winLengthWidget = QLineEdit(self.currLocale.toString(0)) self.winLengthWidget.setValidator(QDoubleValidator(self)) self.gridBox.addWidget(self.winLengthLabel, 2, 0) self.gridBox.addWidget(self.winLengthWidget, 2, 1) self.winOverlapLabel= QLabel(self.tr('Overlap (%)')) self.winOverlapWidget = QLineEdit(self.currLocale.toString(0)) self.winOverlapWidget.setValidator(QDoubleValidator(self)) self.gridBox.addWidget(self.winOverlapLabel, 2, 2) self.gridBox.addWidget(self.winOverlapWidget, 2, 3) self.cmapChooserLabel = QLabel(self.tr('Color Map:')) self.gridBox.addWidget(self.cmapChooserLabel, 1, 4) self.cmapChooser = QComboBox() self.cmapChooser.addItems(self.prm['data']['available_colormaps']) self.cmapChooser.setCurrentIndex(self.cmapChooser.findText(self.prm['pref']['colormap'])) self.gridBox.addWidget(self.cmapChooser, 1, 5) self.windowChooser.currentIndexChanged[int].connect(self.onChangeWindowFunction) self.cmapChooser.currentIndexChanged[int].connect(self.onChangeWindowFunction) self.winLengthWidget.editingFinished.connect(self.onChangeWindowFunction) self.winOverlapWidget.editingFinished.connect(self.onChangeWindowFunction)
def Get(self, widget : QtGui.QComboBox): # return val from enum if len(self.enum) != widget.count(): raise GuiFieldEnumLenErr(self.enum, widget.count(), widget.count()) i = widget.currentIndex() if i < 0: return "" return self.enum[i]
def __init__(self, client, arg, value, compatibility=None): ArgFilterBase.__init__(self, client, arg, value, compatibility) QComboBox.__init__(self) assert compatibility is not None self.setEditable(True) self.users = [] self.setDuplicatesEnabled(False) # This attribut is used to prevent an infinite loop # when we change text or list values as we are in the # editTextChanged callback. self.lock = False # if value and (isinstance(value, (int,long)) or isinstance(value, (str, unicode)) and value.isdigit()): if value: if self.compatibility.user_id: userlist = self.client.call('ufwi_log', 'table', 'UserIDTable', {'user_id': value}) else: userlist = self.client.call('ufwi_log', 'table', 'UserIDTable', {'username': value}) if userlist: if self.compatibility.user_id: self.textChanged(userlist[0][0]) else: self.textChanged(userlist[0]) else: self.textChanged('') # to initialize state to NOLIST else: self.textChanged('') # to initialize state to NOLIST self.connect(self, SIGNAL('currentIndexChanged(int)'), self.indexChanged) self.connect(self, SIGNAL('editTextChanged(const QString &)'), self.textChanged)
class ConfigWidget(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) layout = QFormLayout() self.setLayout(layout) self.label = QLabel("Audio Input") self.inputLayout = QHBoxLayout() self.combobox = QComboBox() self.combobox.setMinimumWidth(150) self.inputSettingsToolButton = QToolButton() self.inputSettingsToolButton.setText("Settings") configIcon = QIcon.fromTheme("preferences-other") self.inputSettingsToolButton.setIcon(configIcon) self.inputSettingsToolButton.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) self.inputSettingsToolButton.setToolButtonStyle(Qt.ToolButtonIconOnly) self.inputSettingsStack = QStackedWidget() blankWidget = QWidget() self.inputSettingsStack.addWidget(blankWidget) self.inputSettingsStack.addWidget(self.inputSettingsToolButton) self.inputLayout.addWidget(self.combobox) self.inputLayout.addWidget(self.inputSettingsStack) layout.addRow(self.label, self.inputLayout)
class FormComboWidget(QWidget): def __init__(self, datalist, comment="", parent=None): QWidget.__init__(self, parent) layout = QVBoxLayout() self.setLayout(layout) self.combobox = QComboBox() layout.addWidget(self.combobox) self.stackwidget = QStackedWidget(self) layout.addWidget(self.stackwidget) self.connect(self.combobox, SIGNAL("currentIndexChanged(int)"), self.stackwidget, SLOT("setCurrentIndex(int)")) self.widgetlist = [] for data, title, comment in datalist: self.combobox.addItem(title) widget = FormWidget(data, comment=comment, parent=self) self.stackwidget.addWidget(widget) self.widgetlist.append(widget) def setup(self): for widget in self.widgetlist: widget.setup() def get(self): return [widget.get() for widget in self.widgetlist]
def Translate(self, lang): translator = QTranslator(qApp) translator.load(":Translations/dc_" + lang + ".qm") qApp.installTranslator(translator) self.basename = self.tr("Data Centers GUI") self.demandGraphEditor.basename = self.demandGraphEditor.tr("Request Graph Editor") self.resourcesGraphEditor.basename = self.resourcesGraphEditor.tr("Resources Graph Editor") self.ui.retranslateUi(self) self.settingsDialog.ui.retranslateUi(self.settingsDialog) self.demandGraphEditor.ui.retranslateUi(self.demandGraphEditor) self.resourcesGraphEditor.ui.retranslateUi(self.resourcesGraphEditor) self.randomDialog.ui.retranslateUi(self.randomDialog) self.Vis.ui.retranslateUi(self.Vis) self.graphvis.ui.retranslateUi(self.graphvis) self.showStats() for k in self.demands.keys(): cb = QComboBox() cb.addItems([self.tr("No"),self.tr("Yes")]) cb.setCurrentIndex(0 if self.demands[k].critical else 1) QObject.connect(cb, SIGNAL("currentIndexChanged(int)"), k.emitDataChanged) self.ui.demands.setItemWidget(k,3,cb) if self.demands[k].assigned: k.setText(4, self.tr("Yes")) else: k.setText(4, self.tr("No"))
def __init__(self, parent, configuration): QTableWidget.__init__(self, 5, 1, parent) self._configuration = configuration self._manual_change = True self.setVerticalHeaderLabels( ["Duration (cycles)", "Duration (ms)", "Cycles / ms", 'RAM access time', 'Execution Time Model']) self.horizontalHeader().setStretchLastSection(True) self.horizontalHeader().hide() self.setItem(0, 0, QTableWidgetItem(str(configuration.duration))) self.setItem(1, 0, QTableWidgetItem(str( float(configuration.duration) / configuration.cycles_per_ms))) self.setItem(2, 0, QTableWidgetItem(str(configuration.cycles_per_ms))) self.setItem( 3, 0, QTableWidgetItem(str(configuration.memory_access_time))) item = QComboBox(self) selected = 0 for i, (etm_name, etm_code) in \ enumerate(execution_time_model_names.items()): item.addItem(etm_name) if etm_code == configuration.etm: selected = i item.setCurrentIndex(selected) self.setCellWidget(4, 0, item) def activation_handler(x): configuration.etm = execution_time_model_names[str(x)] configuration.conf_changed() item.activated['QString'].connect(activation_handler) # self._update_observe_window() self.cellChanged.connect(self._cell_changed)
def create_widget(self): """ Create the QComboBox widget. """ box = QComboBox(self.parent_widget()) box.setInsertPolicy(QComboBox.NoInsert) self.widget = box
def addObjToForm(obj, feature): ''' used to populate the update form and 2x Queue Views obj = form or widget feature == the aims feature ''' obj.uAddressType.setCurrentIndex(QComboBox.findText(obj.uAddressType, obj.feature._addressType)) obj.uExternalAddId.setText(UiUtility.nullEqualsNone(obj.feature._externalAddressId)) obj.uExternalAddressIdScheme.setText(UiUtility.nullEqualsNone(obj.feature._externalAddressIdScheme)) obj.ulifeCycle.setCurrentIndex(QComboBox.findText(obj.ulifeCycle, obj.feature._lifecycle)) obj.uUnitType.setCurrentIndex(QComboBox.findText(obj.uUnitType, obj.feature._unitType)) obj.uUnit.setText(UiUtility.nullEqualsNone(obj.feature._unitValue)) obj.uLevelType.setCurrentIndex(QComboBox.findText(obj.uLevelType, obj.feature._levelType)) obj.uLevelValue.setText(UiUtility.nullEqualsNone(obj.feature._levelValue)) obj.uPrefix.setText(UiUtility.nullEqualsNone(obj.feature._addressNumberPrefix)) obj.uBase.setText(UiUtility.nullEqualsNone(obj.feature._addressNumber)) obj.uAlpha.setText(UiUtility.nullEqualsNone(obj.feature._addressNumberSuffix)) obj.uHigh.setText(UiUtility.nullEqualsNone(obj.feature._addressNumberHigh)) obj.uRoadCentrelineId.setText(UiUtility.nullEqualsNone(obj.feature._roadCentrelineId)) obj.uRoadPrefix.setText(UiUtility.nullEqualsNone(obj.feature._roadPrefix)) obj.uRoadName.setText(UiUtility.nullEqualsNone(obj.feature._roadName)) obj.uRoadTypeName.setText(UiUtility.nullEqualsNone(obj.feature._roadType)) obj.uRoadSuffix.setText(UiUtility.nullEqualsNone(obj.feature._roadSuffix)) obj.uWaterRouteName.setText(UiUtility.nullEqualsNone(obj.feature._waterRoute)) obj.uWaterName.setText(UiUtility.nullEqualsNone(obj.feature._waterName)) # addressable object obj.uObjectType.setCurrentIndex(QComboBox.findText(obj.uObjectType, obj.feature._aoType)) obj.uObjectName.setText(UiUtility.nullEqualsNone(obj.feature._aoName)) obj.uExternalObjectId.setText(UiUtility.nullEqualsNone(obj.feature._externalObjectId)) obj.uExtObjectIdScheme.setText(UiUtility.nullEqualsNone(obj.feature._externalObjectIdScheme)) obj.uValuationReference.setText(UiUtility.nullEqualsNone(obj.feature._valuationReference)) obj.uCertificateOfTitle.setText(UiUtility.nullEqualsNone(obj.feature._certificateOfTitle)) obj.uAppellation.setText(UiUtility.nullEqualsNone(obj.feature._appellation)) from QueueEditorWidget import QueueEditorWidget if isinstance(obj, QueueEditorWidget): pass
class KeywordConfigurationWidget(ConfigurationWidget): def __init__(self): ConfigurationWidget.__init__(self) self.keyIndexCombo = QComboBox() self.addRow("Key index:", self.keyIndexCombo) self.connect(self.keyIndexCombo, SIGNAL("currentIndexChanged(QString)"), self.applyConfiguration) def setKeyIndexList(self, list): self.disconnect(self.keyIndexCombo, SIGNAL("currentIndexChanged(QString)"), self.applyConfiguration) self.keyIndexCombo.clear() self.keyIndexCombo.addItems(list) self.connect(self.keyIndexCombo, SIGNAL("currentIndexChanged(QString)"), self.applyConfiguration) def setParameter(self, parameter): self.parameter = parameter self.applyConfiguration(False) def applyConfiguration(self, emit=True): user_data = {"state": self.getState(), "key_index": self.getKeyIndex()} self.parameter.setUserData(user_data) self.emitConfigurationChanged(emit) def getKeyIndex(self): return str(self.keyIndexCombo.currentText())
def createPresets(self): preset_combo = QComboBox() for preset in self._presets: preset_combo.addItem(preset) preset_combo.currentIndexChanged.connect(self.presetSelected) return preset_combo
def createGoto(self): self.offbox = QGroupBox("Go to location") self.offgrid = QGridLayout() #Format formatlabel = QLabel("Format :") self.format = QComboBox() self.format.addItem("Hexadecimal") self.format.addItem("Decimal") #Type: Offset, Page, Block typelabel = QLabel("Type :") self.type = QComboBox() self.type.addItem("Offset") self.type.addItem("Page") self.type.addItem("Block") #Place offsetlabel = QLabel("Place :") self.offset = QLineEdit() self.offgrid.addWidget(formatlabel, 0, 0) self.offgrid.addWidget(self.format, 0, 1) self.offgrid.addWidget(typelabel, 1, 0) self.offgrid.addWidget(self.type, 1, 1) self.offgrid.addWidget(offsetlabel, 2, 0) self.offgrid.addWidget(self.offset, 2, 1) self.offbox.setLayout(self.offgrid) self.vbox.addWidget(self.offbox)
def OpenProjectFromFile(self, name): self.demands = {} self.project = Project() #try: self.project.Load(name) #except : # TODO: proper exceptioning # QMessageBox.critical(self, self.tr("An error occured"), self.tr("File is not a valid project file: ") + name) # return self.projectFile = name self.resourcesGraphEditor.setData(self.project.resources) self.ui.demands.clear() for d in self.project.demands: it = QTreeWidgetItem(self.ui.demands, QStringList([d.id, str(d.startTime), str(d.endTime), self.tr("No") if d.critical else self.tr("Yes"), self.tr("Yes") if d.assigned else self.tr("No")])) cb = QComboBox() cb.addItems([self.tr("No"),self.tr("Yes")]) cb.setCurrentIndex(0 if d.critical else 1) QObject.connect(cb, SIGNAL("currentIndexChanged(int)"), it.emitDataChanged) self.ui.demands.setItemWidget(it,3,cb) it.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) self.demands[it] = d self.UpdateRecentFiles() self.setWindowTitle(self.project.name + " - " + self.basename) self.ui.projectname.setText(self.project.name) self.showStats() self.backupTimer.start() self.autosaveTimer.start()
def __init__(self): gr.top_block.__init__(self, "Airspy Scan2") Qt.QWidget.__init__(self) self.setWindowTitle("Airspy Scan2") qtgui.util.check_set_qss() try: self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc')) except: pass self.top_scroll_layout = Qt.QVBoxLayout() self.setLayout(self.top_scroll_layout) self.top_scroll = Qt.QScrollArea() self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame) self.top_scroll_layout.addWidget(self.top_scroll) self.top_scroll.setWidgetResizable(True) self.top_widget = Qt.QWidget() self.top_scroll.setWidget(self.top_widget) self.top_layout = Qt.QVBoxLayout(self.top_widget) self.top_grid_layout = Qt.QGridLayout() self.top_layout.addLayout(self.top_grid_layout) self.settings = Qt.QSettings("GNU Radio", "airspy_scan2") self.restoreGeometry(self.settings.value("geometry").toByteArray()) ################################################## # Variables ################################################## #self.samp_rate = samp_rate = 2500000 self.samp_rate = samp_rate = 2500000 * 4 self.freq = freq = 88e6 ################################################## # Blocks ################################################## paraLayout = Qt.QHBoxLayout() samprateLabel = Qt.QLabel("f<sub>s</sub>:") self.samprateComboBox = QComboBox() self.samprateComboBox.addItems(["2.5M", "10M"]) if samp_rate==2500000: self.samprateComboBox.setCurrentIndex(0) else: self.samprateComboBox.setCurrentIndex(1) nSkipLabel = Qt.QLabel("N<sub>skip</sub>:") self.nSkipSpinBox=Qt.QSpinBox() self.nSkipSpinBox.setRange(4,100) self.numSkip=25 self.nSkipSpinBox.setValue(self.numSkip) self.nSkipButton=Qt.QPushButton("Set ns") self.nSkipButton.setEnabled(False) alphaLabel = Qt.QLabel("alpha:") self.alphaSpinBox=Qt.QDoubleSpinBox() self.alphaSpinBox.setValue(0.1) self.alphaSpinBox.setRange(0,1) self.alphaSpinBox.setSingleStep(0.01) freqMinLabel = Qt.QLabel("f<sub>min</sub>:") self.freqMinSpinBox=Qt.QSpinBox() self.freqMinSpinBox.setSuffix("MHz") #self.freqMinSpinBox.setAlignment(Qt.AlignRight|Qt.AlignVCenter) self.freqMinSpinBox.setRange(30,1800) freqMaxLabel = Qt.QLabel("f<sub>max</sub>:") self.freqMaxSpinBox=Qt.QSpinBox() self.freqMaxSpinBox.setSuffix("MHz") #self.freqMaxSpinBox.setAlignment(Qt.AlignRight|Qt.AlignVCenter) self.freqMaxSpinBox.setRange(40,1800) self.saveCheckBox = Qt.QCheckBox("save raw IQ") self.freqSetButton = Qt.QPushButton("Set f") self.freqSetButton.setEnabled(False) paraLayout.addStretch() paraLayout.addWidget(nSkipLabel) paraLayout.addWidget(self.nSkipSpinBox) paraLayout.addWidget(self.nSkipButton) paraLayout.addWidget(alphaLabel) paraLayout.addWidget(self.alphaSpinBox) paraLayout.addWidget(samprateLabel) paraLayout.addWidget(self.samprateComboBox) paraLayout.addWidget(freqMinLabel) paraLayout.addWidget(self.freqMinSpinBox) paraLayout.addWidget(freqMaxLabel) paraLayout.addWidget(self.freqMaxSpinBox) paraLayout.addWidget(self.freqSetButton) paraLayout.addWidget(self.saveCheckBox) self.top_layout.addLayout(paraLayout) self.osmosdr_source_1 = osmosdr.source( args="numchan=" + str(1) + " " + 'airspy' ) self.osmosdr_source_1.set_sample_rate(samp_rate) self.osmosdr_source_1.set_center_freq(freq, 0) self.osmosdr_source_1.set_freq_corr(0, 0) self.osmosdr_source_1.set_dc_offset_mode(0, 0) self.osmosdr_source_1.set_iq_balance_mode(0, 0) self.osmosdr_source_1.set_gain_mode(False, 0) self.osmosdr_source_1.set_gain(10, 0) self.osmosdr_source_1.set_if_gain(20, 0) self.osmosdr_source_1.set_bb_gain(20, 0) self.osmosdr_source_1.set_antenna('', 0) self.osmosdr_source_1.set_bandwidth(0, 0) freqMin,freqMax=88e6,109e6 # freqMin,freqMax=400e6,420e6 # freqMin,freqMax=118e6,136e6 #freqMin,freqMax=40e6,800e6 freqCenter=freqMin self.osmosdr_source_1.set_center_freq(freqCenter, 0) self.freqMinSpinBox.setValue(freqMin/1e6) self.freqMaxSpinBox.setValue(freqMax/1e6) self.xzyblocks_fft_scan_plot_py_vc_0 = xzyblocks.fft_scan_plot_py_vc(self.osmosdr_source_1, samp_rate, 1024, freqCenter, freqMin, freqMax,self.numSkip,512,alpha=0.1) #self.xzyblocks_fft_scan_plot_py_vc_0 = xzyblocks.fft_scan_plot_py_vc() self.blocks_stream_to_vector_0 = blocks.stream_to_vector(gr.sizeof_gr_complex*1, 1024) ################################################## # Connections ################################################## self.connect((self.blocks_stream_to_vector_0, 0), (self.xzyblocks_fft_scan_plot_py_vc_0, 0)) self.connect((self.osmosdr_source_1, 0), (self.blocks_stream_to_vector_0, 0)) #self.connect((self.osmosdr_source_1, 0), (self.qtgui_time_sink_x_0, 0)) self.samprateComboBox.connect(self.samprateComboBox, Qt.SIGNAL("currentIndexChanged(int)"), self.updateSamprate) self.freqMaxSpinBox.connect(self.freqMaxSpinBox, Qt.SIGNAL("valueChanged(int)"), self.updateFreq) self.freqMinSpinBox.connect(self.freqMinSpinBox, Qt.SIGNAL("valueChanged(int)"), self.updateFreq) self.alphaSpinBox.connect(self.alphaSpinBox, Qt.SIGNAL("valueChanged(double)"), self.updateAlpha) self.freqSetButton.connect(self.freqSetButton,Qt.SIGNAL("clicked()"),self.freqSet) self.nSkipSpinBox.connect(self.nSkipSpinBox, Qt.SIGNAL("valueChanged(int)"),lambda: self.nSkipButton.setEnabled(True)) self.nSkipButton.connect(self.nSkipButton, Qt.SIGNAL("clicked()"), self.numSkipUpdate)
class ConflictWindow(QMainWindow): mergeCompleted = pyqtSignal() def __init__(self, layer, type='conflict', parent=None): QMainWindow.__init__(self) self.iface = parent.iface self.layer = layer self.parent = parent self.layer_list = parent.layer_list settings = QSettings() self.tools = PgVersionTools(self) # Restore Window Settings settings = QSettings() try: self.restoreGeometry( pybytearray(settings.value("/pgVersion/geometry"))) self.restoreState( pybytearray(settings.value("/pgVersion/windowState"))) except: pass settings = QSettings() self.canvas = QgsMapCanvas() self.canvas.setCanvasColor(Qt.white) self.canvas.enableAntiAliasing( settings.value("/qgis/enable_anti_aliasing", True, type=bool)) self.canvas.useImageToRender( settings.value("/qgis/use_qimage_to_render", True, type=bool)) action = pyint(settings.value("/qgis/wheel_action", 0)) zoomFactor = pyint(settings.value("/qgis/zoom_factor", 2)) self.canvas.setWheelAction(QgsMapCanvas.WheelAction(action), zoomFactor) QgsMapLayerRegistry.instance().addMapLayer(layer) self.canvas.setExtent(layer.extent()) self.canvas.setLayerSet([QgsMapCanvasLayer(layer)]) self.canvas.zoomToFullExtent() self.setCentralWidget(self.canvas) actionZoomIn = QAction( QIcon(":/plugins/pgversion/icons/mActionZoomIn.png"), pystring("Zoom in"), self) actionZoomOut = QAction( QIcon(":/plugins/pgversion/icons/mActionZoomOut.png"), pystring("Zoom out"), self) actionZoomFull = QAction( QIcon(":/plugins/pgversion/icons/mActionZoomFullExtent.png"), pystring("Fullextent"), self) actionPan = QAction(QIcon(":/plugins/pgversion/icons/mActionPan.png"), pystring("Pan"), self) actionZoomIn.setCheckable(True) actionZoomOut.setCheckable(True) actionPan.setCheckable(True) actionZoomIn.triggered.connect(self.zoomIn) actionZoomOut.triggered.connect(self.zoomOut) actionZoomFull.triggered.connect(self.zoomFull) actionPan.triggered.connect(self.pan) self.toolbar = self.addToolBar("Canvas actions") self.toolbar.addAction(actionPan) self.toolbar.addAction(actionZoomIn) self.toolbar.addAction(actionZoomOut) self.toolbar.addAction(actionZoomFull) self.dockWidget = QDockWidget() self.dockWidget.setWidget(QTableWidget()) self.addDockWidget(Qt.BottomDockWidgetArea, self.dockWidget) self.tabView = self.dockWidget.widget() # create the map tools self.toolPan = QgsMapToolPan(self.canvas) self.toolPan.setAction(actionPan) self.toolZoomIn = QgsMapToolZoom(self.canvas, False) # false = in self.toolZoomIn.setAction(actionZoomIn) self.toolZoomOut = QgsMapToolZoom(self.canvas, True) # true = out self.toolZoomOut.setAction(actionZoomOut) self.pan() self.conflictLayerList = [] if type == 'conflict': self.cmbMerge = QComboBox() self.cmbMerge.addItems(self.tools.confRecords(self.layer)) self.btnMerge = QPushButton() self.cmbMerge.currentIndexChanged.connect(self.toggleBtnMerge) self.btnMerge.setText(self.tr('solve conflict')) self.toolbar.addWidget(self.cmbMerge) self.toolbar.addWidget(self.btnMerge) self.manageConflicts() self.btnMerge.clicked.connect(self.runMerge) self.tabView.itemSelectionChanged.connect(self.showConfObject) self.rBand = QgsRubberBand(self.canvas, False) def toggleBtnMerge(self): # if not self.btnMerge.isEnabled(): # self.btnMerge.setEnabled(False) # else: # self.btnMerge.setEnabled(True) return def toggleBtnCommit(self): # if not self.btnMerge.isEnabled(): # self.btnMerge.setEnabled(False) # else: # self.btnMerge.setEnabled(True) return def zoomIn(self): self.canvas.setMapTool(self.toolZoomIn) def zoomOut(self): self.canvas.setMapTool(self.toolZoomOut) def zoomFull(self): self.canvas.zoomToFullExtent() def pan(self): self.canvas.setMapTool(self.toolPan) def closeEvent(self, e): """ save window state """ # settings = QSettings() # settings.setValue("/pgVersion/windowState", pybytearray(self.saveState())) # settings.setValue("/pgVersion/geometry", pybytearray(self.saveGeometry())) QgsMapLayerRegistry.instance().removeMapLayer( self.tools.conflictLayer(self.layer).id()) self.close() def showDiffs(self): pass def showConfObject(self): myProject = self.tabView.item(self.tabView.currentRow(), 0).text() myId = self.tabView.item(self.tabView.currentRow(), 3).text() confLayer = self.tools.conflictLayer(self.layer) self.conflictLayerList.append(confLayer) self.rBand.reset() self.rBand.setColor(QColor(0, 0, 255)) self.rBand.setWidth(5) if confLayer.isValid(): iter = confLayer.getFeatures() for feature in iter: geom = feature.geometry() attrs = feature.attributes() if str(attrs[0]) == myId and attrs[len(attrs) - 5] == myProject: self.rBand.addGeometry(geom, None) return def manageConflicts(self): QApplication.setOverrideCursor(Qt.WaitCursor) vLayer = self.tools.conflictLayer(self.layer) if vLayer == None: return vLayerList = [vLayer, self.layer] QgsMapLayerRegistry.instance().addMapLayers(vLayerList, False) self.vLayerId = vLayer.id() self.canvas.setExtent(vLayer.extent()) self.canvas.refresh() vLayer.triggerRepaint() tabData = self.tools.tableRecords(self.layer) if tabData <> None: self.tools.createGridView(self.tabView, tabData[0], tabData[1], 100, 10) else: QApplication.restoreOverrideCursor() self.mergeCompleted.emit() QApplication.restoreOverrideCursor() def runMerge(self): QApplication.setOverrideCursor(Qt.WaitCursor) currentLayer = self.layer object = self.cmbMerge.currentText() if currentLayer == None: QMessageBox.information( None, self.tr('Notice'), self.tr('Please select a versioned layer for committing')) return else: myDb = self.tools.layerDB('Merge', currentLayer) mySchema = self.tools.layerSchema(currentLayer) myTable = self.tools.layerTable(currentLayer).replace( "_version", "") objectArray = object.split(" - ") if len(objectArray) == 1: return elif 'Commit all' in objectArray[0]: projectName = objectArray[1].strip() sql = "select objectkey from versions.pgvscheck('%s.%s') \ where myuser = '******' or conflict_user = '******' \ order by objectkey" % (mySchema, myTable, projectName, projectName) result = myDb.read(sql) for i in range(len(result['OBJECTKEY'])): sql = "select versions.pgvsmerge('%s.%s',%s,'%s')" % ( mySchema, myTable, result['OBJECTKEY'][i], projectName) myDb.run(sql) else: projectName = objectArray[1].strip() sql = "select versions.pgvsmerge('%s.%s',%s,'%s')" % ( mySchema, myTable, objectArray[0], projectName) myDb.run(sql) self.canvas.refresh() self.layer.triggerRepaint() self.cmbMerge.clear() QApplication.restoreOverrideCursor() if self.tools.confRecords(self.layer) == None: self.tabView.clear() self.tools.setModified(self.parent.layer_list) self.close() else: self.cmbMerge.addItems(self.tools.confRecords(self.layer)) tabData = self.tools.tableRecords(self.layer) self.tools.createGridView(self.tabView, tabData[0], tabData[1], 100, 10) self.manageConflicts() def loadLayer(self, layer): provider = layer.dataProvider() uri = provider.dataSourceUri() mySchema = self.tools.layerSchema(layer) myHost = self.tools.layerHost(layer) myDatabase = self.tools.layerDB(layer) myPassword = self.tools.layerPassword(layer) myPort = self.tools.layerPort(layer) myUsername = self.tools.layerUsername(layer) myGeometryColumn = self.tools.layerGeomCol(layer) myTable = myTable.replace("_version", "") myUri = QgsDataSourceURI() myUri.setConnection(myHost, myPort, myDatabase, myUsername, myPassword) myUri.setDataSource(mySchema, myTable, myGeometryColumn) myLayer = QgsVectorLayer(myUri.uri(), "", "postgres") QgsMapLayerRegistry.instance().addMapLayer(myLayer, False) # self.canvas.setExtent(myLayer.extent()) self.canvas.setLayerSet([QgsMapCanvasLayer(myLayer)]) self.canvas.refresh()
def __init__(self): QWizardPage.__init__(self) self.setTitle(self.tr("New Project Data")) self.setSubTitle(self.tr( "Complete the following fields to create the Project Structure")) gbox = QGridLayout(self) #Names of the fields to complete self.lblName = QLabel(self.tr("New Project Name (*):")) self.lblPlace = QLabel(self.tr("Create in (*):")) self.lblDescription = QLabel(self.tr("Project Description:")) self.lblLicense = QLabel(self.tr("Project License:")) self.lblVenvFolder = QLabel(self.tr("Virtualenv Folder:")) gbox.addWidget(self.lblName, 0, 0, Qt.AlignRight) gbox.addWidget(self.lblPlace, 1, 0, Qt.AlignRight) gbox.addWidget(self.lblDescription, 2, 0, Qt.AlignTop) gbox.addWidget(self.lblLicense, 3, 0, Qt.AlignRight) gbox.addWidget(self.lblVenvFolder, 4, 0, Qt.AlignRight) #Fields on de right of the grid #Name self.txtName = QLineEdit() #Location hPlace = QHBoxLayout() self.txtPlace = QLineEdit() self.txtPlace.setReadOnly(True) self.btnExamine = QPushButton(self.tr("Browse...")) hPlace.addWidget(self.txtPlace) hPlace.addWidget(self.btnExamine) #Virtualenv vPlace = QHBoxLayout() self.vtxtPlace = QLineEdit() self._dir_completer = QCompleter() self._dir_completer.setModel(QDirModel(self._dir_completer)) self.vtxtPlace.setCompleter(self._dir_completer) self.vbtnExamine = QPushButton(self.tr("Browse...")) vPlace.addWidget(self.vtxtPlace) vPlace.addWidget(self.vbtnExamine) #Project Description self.txtDescription = QPlainTextEdit() #Project License self.cboLicense = QComboBox() self.cboLicense.setFixedWidth(250) self.cboLicense.addItem('Apache License 2.0') self.cboLicense.addItem('Artistic License/GPL') self.cboLicense.addItem('Eclipse Public License 1.0') self.cboLicense.addItem('GNU General Public License v2') self.cboLicense.addItem('GNU General Public License v3') self.cboLicense.addItem('GNU Lesser General Public License') self.cboLicense.addItem('MIT License') self.cboLicense.addItem('Mozilla Public License 1.1') self.cboLicense.addItem('Mozilla Public License 2.0') self.cboLicense.addItem('New BSD License') self.cboLicense.addItem('Other Open Source') self.cboLicense.addItem('Other') self.cboLicense.setCurrentIndex(4) #Add to Grid gbox.addWidget(self.txtName, 0, 1) gbox.addLayout(hPlace, 1, 1) gbox.addWidget(self.txtDescription, 2, 1) gbox.addWidget(self.cboLicense, 3, 1) gbox.addLayout(vPlace, 4, 1) #Signal self.connect(self.btnExamine, SIGNAL('clicked()'), self.load_folder) self.connect(self.vbtnExamine, SIGNAL('clicked()'), self.load_folder_venv) self.connect(self.txtName, SIGNAL('textChanged(const QString&)'), lambda: self.emit(SIGNAL("completeChanged()")))
def __init__(self, parent=None, chunks=[]): super(EvtxAdminPannel, self).__init__(parent) self.verticalLayout = QVBoxLayout(self) spacerItem = QSpacerItem(20, 259, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.setMargin(3) self.verticalLayout.addWidget( QLabel("Number of chunk(s) : " + str(len(chunks)))) nb_rec = 0 for i in chunks: nb_rec += i.nbRecord() self.nb_rec = nb_rec self.verticalLayout.addWidget( QLabel("Number of record(s) : " + str(nb_rec))) tmp_widget = QWidget() self.verticalLayout.addWidget(tmp_widget) hor_layout = QHBoxLayout(tmp_widget) hor_layout.addWidget(QLabel("Display :")) self.admin_events = QPushButton(QIcon(":/green_configure.png"), "Admin. events") hor_layout.addWidget(self.admin_events) self.choose_event_type = QComboBox() self.choose_event_type.addItem(QIcon(":/internet_explorer"), "All", 42) self.choose_event_type.addItem(QIcon(":/audit_success"), "Audit success", 0) self.choose_event_type.addItem(QIcon(":/audit_failure"), "Audit failure", 1) self.choose_event_type.addItem(QIcon(":/error"), "Error", 2) self.choose_event_type.addItem(QIcon(":/warning"), "Warning", 3) self.choose_event_type.addItem(QIcon(":/info"), "Information", 4) self.choose_event_type.addItem(QIcon(":/chat.png"), "Comment", 5) hor_layout.addWidget(self.choose_event_type) tmp_widget = QWidget() self.verticalLayout.addWidget(tmp_widget) hor_layout = QHBoxLayout(tmp_widget) self.id = QLineEdit() hor_layout.addWidget(QLabel("Id :")) self.cb = self.initId(chunks, 'id') self.cb.setMaxVisibleItems(15) hor_layout.addWidget(self.cb) hor_layout.addWidget(self.id) self.search_id = QPushButton("Go") hor_layout.addWidget(self.search_id) tmp_widget = QWidget() self.verticalLayout.addWidget(tmp_widget) hor_layout = QHBoxLayout(tmp_widget) self.source = QLineEdit() hor_layout.addWidget(QLabel("Source :")) self.cbs = self.initId(chunks, 'source') hor_layout.addWidget(self.cbs) hor_layout.addWidget(self.source) self.search_source = QPushButton("Go") hor_layout.addWidget(self.search_source) self.verticalLayout.addWidget(QLabel("Date debut :")) self.select_date_b = QDateTimeEdit() self.select_date_b.setDisplayFormat("MMM dd yyyy hh:mm AP") self.verticalLayout.addWidget(self.select_date_b) self.verticalLayout.addWidget(QLabel("date fin:")) self.select_date_e = QDateTimeEdit() self.select_date_e.setDisplayFormat("MMM dd yyyy hh:mm AP") self.verticalLayout.addWidget(self.select_date_e) self.search_date = QPushButton("Go") self.verticalLayout.addWidget(self.search_date) self.verticalLayout.addItem(spacerItem)
class EvtxAdminPannel(QWidget): def __init__(self, parent=None, chunks=[]): super(EvtxAdminPannel, self).__init__(parent) self.verticalLayout = QVBoxLayout(self) spacerItem = QSpacerItem(20, 259, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.setMargin(3) self.verticalLayout.addWidget( QLabel("Number of chunk(s) : " + str(len(chunks)))) nb_rec = 0 for i in chunks: nb_rec += i.nbRecord() self.nb_rec = nb_rec self.verticalLayout.addWidget( QLabel("Number of record(s) : " + str(nb_rec))) tmp_widget = QWidget() self.verticalLayout.addWidget(tmp_widget) hor_layout = QHBoxLayout(tmp_widget) hor_layout.addWidget(QLabel("Display :")) self.admin_events = QPushButton(QIcon(":/green_configure.png"), "Admin. events") hor_layout.addWidget(self.admin_events) self.choose_event_type = QComboBox() self.choose_event_type.addItem(QIcon(":/internet_explorer"), "All", 42) self.choose_event_type.addItem(QIcon(":/audit_success"), "Audit success", 0) self.choose_event_type.addItem(QIcon(":/audit_failure"), "Audit failure", 1) self.choose_event_type.addItem(QIcon(":/error"), "Error", 2) self.choose_event_type.addItem(QIcon(":/warning"), "Warning", 3) self.choose_event_type.addItem(QIcon(":/info"), "Information", 4) self.choose_event_type.addItem(QIcon(":/chat.png"), "Comment", 5) hor_layout.addWidget(self.choose_event_type) tmp_widget = QWidget() self.verticalLayout.addWidget(tmp_widget) hor_layout = QHBoxLayout(tmp_widget) self.id = QLineEdit() hor_layout.addWidget(QLabel("Id :")) self.cb = self.initId(chunks, 'id') self.cb.setMaxVisibleItems(15) hor_layout.addWidget(self.cb) hor_layout.addWidget(self.id) self.search_id = QPushButton("Go") hor_layout.addWidget(self.search_id) tmp_widget = QWidget() self.verticalLayout.addWidget(tmp_widget) hor_layout = QHBoxLayout(tmp_widget) self.source = QLineEdit() hor_layout.addWidget(QLabel("Source :")) self.cbs = self.initId(chunks, 'source') hor_layout.addWidget(self.cbs) hor_layout.addWidget(self.source) self.search_source = QPushButton("Go") hor_layout.addWidget(self.search_source) self.verticalLayout.addWidget(QLabel("Date debut :")) self.select_date_b = QDateTimeEdit() self.select_date_b.setDisplayFormat("MMM dd yyyy hh:mm AP") self.verticalLayout.addWidget(self.select_date_b) self.verticalLayout.addWidget(QLabel("date fin:")) self.select_date_e = QDateTimeEdit() self.select_date_e.setDisplayFormat("MMM dd yyyy hh:mm AP") self.verticalLayout.addWidget(self.select_date_e) self.search_date = QPushButton("Go") self.verticalLayout.addWidget(self.search_date) self.verticalLayout.addItem(spacerItem) def initId(self, chunks, param): cb = QComboBox() tmp_list = [] for chunk in chunks: events = chunk.events() for event in events: tmp_list.append(str(events[event][param])) tmp_list = self.unique(tmp_list) cb.addItems(tmp_list) return cb def unique(self, seq, idfun=None): # order preserving if idfun is None: def idfun(x): return x seen = {} result = [] for item in seq: marker = idfun(item) if marker in seen: continue seen[marker] = 1 if item is not None: result.append(item) return sorted(result)
class LateralPanel(QWidget): def __init__(self, parent=None): super(LateralPanel, self).__init__(parent) self.has_component = False self.vbox = QVBoxLayout(self) self.vbox.setContentsMargins(0, 0, 0, 0) hbox = QHBoxLayout() hbox.setContentsMargins(0, 0, 0, 0) self.combo = QComboBox() ui_tools.ComboBoxButton( self.combo, self.combo.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.combo.setToolTip( self.trUtf8( "Select the item from the Paste " "History list.\nYou can Copy items into this list with: " "%s\nor Paste them using: %s") % (resources.get_shortcut("History-Copy").toString( QKeySequence.NativeText), resources.get_shortcut("History-Paste").toString( QKeySequence.NativeText))) self.combo.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) hbox.addWidget(self.combo) self.vbox.addLayout(hbox) def add_component(self, widget): self.vbox.insertWidget(0, widget) self.has_component = True def add_new_copy(self, copy): self.combo.insertItem(0, copy) self.combo.setCurrentIndex(0) if self.combo.count() > settings.COPY_HISTORY_BUFFER: self.combo.removeItem(self.combo.count() - 1) def get_paste(self): return self.combo.currentText()
def __init__(self, layer, type='conflict', parent=None): QMainWindow.__init__(self) self.iface = parent.iface self.layer = layer self.parent = parent self.layer_list = parent.layer_list settings = QSettings() self.tools = PgVersionTools(self) # Restore Window Settings settings = QSettings() try: self.restoreGeometry( pybytearray(settings.value("/pgVersion/geometry"))) self.restoreState( pybytearray(settings.value("/pgVersion/windowState"))) except: pass settings = QSettings() self.canvas = QgsMapCanvas() self.canvas.setCanvasColor(Qt.white) self.canvas.enableAntiAliasing( settings.value("/qgis/enable_anti_aliasing", True, type=bool)) self.canvas.useImageToRender( settings.value("/qgis/use_qimage_to_render", True, type=bool)) action = pyint(settings.value("/qgis/wheel_action", 0)) zoomFactor = pyint(settings.value("/qgis/zoom_factor", 2)) self.canvas.setWheelAction(QgsMapCanvas.WheelAction(action), zoomFactor) QgsMapLayerRegistry.instance().addMapLayer(layer) self.canvas.setExtent(layer.extent()) self.canvas.setLayerSet([QgsMapCanvasLayer(layer)]) self.canvas.zoomToFullExtent() self.setCentralWidget(self.canvas) actionZoomIn = QAction( QIcon(":/plugins/pgversion/icons/mActionZoomIn.png"), pystring("Zoom in"), self) actionZoomOut = QAction( QIcon(":/plugins/pgversion/icons/mActionZoomOut.png"), pystring("Zoom out"), self) actionZoomFull = QAction( QIcon(":/plugins/pgversion/icons/mActionZoomFullExtent.png"), pystring("Fullextent"), self) actionPan = QAction(QIcon(":/plugins/pgversion/icons/mActionPan.png"), pystring("Pan"), self) actionZoomIn.setCheckable(True) actionZoomOut.setCheckable(True) actionPan.setCheckable(True) actionZoomIn.triggered.connect(self.zoomIn) actionZoomOut.triggered.connect(self.zoomOut) actionZoomFull.triggered.connect(self.zoomFull) actionPan.triggered.connect(self.pan) self.toolbar = self.addToolBar("Canvas actions") self.toolbar.addAction(actionPan) self.toolbar.addAction(actionZoomIn) self.toolbar.addAction(actionZoomOut) self.toolbar.addAction(actionZoomFull) self.dockWidget = QDockWidget() self.dockWidget.setWidget(QTableWidget()) self.addDockWidget(Qt.BottomDockWidgetArea, self.dockWidget) self.tabView = self.dockWidget.widget() # create the map tools self.toolPan = QgsMapToolPan(self.canvas) self.toolPan.setAction(actionPan) self.toolZoomIn = QgsMapToolZoom(self.canvas, False) # false = in self.toolZoomIn.setAction(actionZoomIn) self.toolZoomOut = QgsMapToolZoom(self.canvas, True) # true = out self.toolZoomOut.setAction(actionZoomOut) self.pan() self.conflictLayerList = [] if type == 'conflict': self.cmbMerge = QComboBox() self.cmbMerge.addItems(self.tools.confRecords(self.layer)) self.btnMerge = QPushButton() self.cmbMerge.currentIndexChanged.connect(self.toggleBtnMerge) self.btnMerge.setText(self.tr('solve conflict')) self.toolbar.addWidget(self.cmbMerge) self.toolbar.addWidget(self.btnMerge) self.manageConflicts() self.btnMerge.clicked.connect(self.runMerge) self.tabView.itemSelectionChanged.connect(self.showConfObject) self.rBand = QgsRubberBand(self.canvas, False)
def initUI(self): self.setGeometry(200, 200, 260, 150) self.setWindowFlags(Qt.WindowStaysOnTopHint) self.setWindowTitle(u'添加基站') # 用grid布局 grid1 = QGridLayout() grid1.setSpacing(10) grid2 = QGridLayout() grid2.setSpacing(10) grid3 = QGridLayout() grid3.setSpacing(10) grid4 = QGridLayout() grid4.setSpacing(10) lonlat_hobx = QHBoxLayout() lonlat_hobx.setSpacing(10) site_label = QLabel(u"<b>基站信息: <\b>") grid1.addWidget(site_label, 1, 0) SiteId_label = QLabel(u"基站ID:") grid1.addWidget(SiteId_label, 2, 0) self.site_id = QLineEdit() site_id_validator = QIntValidator(0, 999999999, self) # SiteId只能为最多9位的纯数字 self.site_id.setValidator(site_id_validator) self.site_id.setPlaceholderText(u'必填(只能为最多9位的纯数字)') grid1.addWidget(self.site_id, 2, 1) SiteNmae_label = QLabel(u"基站名字:") grid1.addWidget(SiteNmae_label, 3, 0) self.site_name = QLineEdit() self.site_name.setPlaceholderText(u'必填') grid1.addWidget(self.site_name, 3, 1) RNCBSC_label = QLabel(u"RNC-BSC:") grid1.addWidget(RNCBSC_label, 4, 0) self.rnc_bsc = QLineEdit() self.rnc_bsc.setPlaceholderText(u'若不填则为随机数') grid1.addWidget(self.rnc_bsc, 4, 1) lon_label = QLabel(u"经度:") lonlat_hobx.addWidget(lon_label) self.lon = QLineEdit() lonlat_hobx.addWidget(self.lon) lat_label = QLabel(u"纬度:") lonlat_hobx.addWidget(lat_label) self.lat = QLineEdit() lonlat_hobx.addWidget(self.lat) operator_label = QLabel(u'运营商:') grid2.addWidget(operator_label, 1, 0) self.operator = QComboBox(self) # 运营商选择下拉框 self.operator.addItems([u"移动", u"联通", u"电信", u"铁塔"]) grid2.addWidget(self.operator, 1, 1) region_label = QLabel(u'区域类型:') grid2.addWidget(region_label, 1, 2) self.region = QComboBox(self) # 区域类型选择下拉框 self.region.addItems([u"普通市区", u"密集市区", u"郊区乡镇", u"农村"]) grid2.addWidget(self.region, 1, 3) system_label = QLabel(u"网络制式:") grid2.addWidget(system_label, 2, 0) self.system = QComboBox(self) # 网络制式选择下拉框 self.system.addItems([ u"900", u"1800", u"CDMA", u"WCDMA", u"TD-LTE", u"FDD-LTE", u"TDSCDMA" ]) grid2.addWidget(self.system, 2, 1) frequency_label = QLabel(u"频段:") grid2.addWidget(frequency_label, 2, 2) self.frequency = QComboBox(self) # 频段选择下拉框 self.frequency.addItems([ u"700M", u"800M", u"900M", u"1800M", u"1900M", u"2100M", u"2300M", u"2600M" ]) grid2.addWidget(self.frequency, 2, 3) # cell_label = QtGui.QLabel(u"<b>小区信息: <\b>(若不需要添加小区请自行把下列的角度信息删除)") self.add_cell_checkbox = QCheckBox(u"添加小区") self.add_cell_checkbox.setChecked(False) grid3.addWidget(self.add_cell_checkbox, 1, 0) QObject.connect(self.add_cell_checkbox, SIGNAL("clicked()"), self.add_cell_checkChange) azimuth_1_label = QLabel(u'Azimuth 1:') grid4.addWidget(azimuth_1_label, 1, 0) azimuth_validator = QIntValidator(0, 360, self) self.azimuth_1 = QLineEdit() self.azimuth_1.setEnabled(False) self.azimuth_1.setValidator(azimuth_validator) grid4.addWidget(self.azimuth_1, 1, 1) titl_1_label = QLabel(u'TILT') grid4.addWidget(titl_1_label, 2, 0) self.tilt_1 = QLineEdit() self.tilt_1.setEnabled(False) grid4.addWidget(self.tilt_1, 2, 1) etilt_1_label = QLabel(u'ETILT') grid4.addWidget(etilt_1_label, 2, 2) self.etilt_1 = QLineEdit() self.etilt_1.setEnabled(False) grid4.addWidget(self.etilt_1, 2, 3) mtilt_1_label = QLabel(u"MTILT") grid4.addWidget(mtilt_1_label, 2, 4) self.mtilt_1 = QLineEdit() self.mtilt_1.setEnabled(False) grid4.addWidget(self.mtilt_1, 2, 5) azimuth_2_label = QLabel(u'Azimuth 2:') grid4.addWidget(azimuth_2_label, 3, 0) self.azimuth_2 = QLineEdit() self.azimuth_2.setEnabled(False) self.azimuth_2.setValidator(azimuth_validator) grid4.addWidget(self.azimuth_2, 3, 1) titl_2_label = QLabel(u'TILT') grid4.addWidget(titl_2_label, 4, 0) self.tilt_2 = QLineEdit() self.tilt_2.setEnabled(False) grid4.addWidget(self.tilt_2, 4, 1) etitl_2_label = QLabel(u'ETILT') grid4.addWidget(etitl_2_label, 4, 2) self.etilt_2 = QLineEdit() self.etilt_2.setEnabled(False) grid4.addWidget(self.etilt_2, 4, 3) mtilt_2_label = QLabel(u'MTILT') grid4.addWidget(mtilt_2_label, 4, 4) self.mtilt_2 = QLineEdit() self.mtilt_2.setEnabled(False) grid4.addWidget(self.mtilt_2, 4, 5) azimuth_3_label = QLabel(u'Azimuth 3:') grid4.addWidget(azimuth_3_label, 5, 0) self.azimuth_3 = QLineEdit() self.azimuth_3.setEnabled(False) self.azimuth_3.setValidator(azimuth_validator) grid4.addWidget(self.azimuth_3, 5, 1) titl_3_label = QLabel(u'TILT') grid4.addWidget(titl_3_label, 6, 0) self.tilt_3 = QLineEdit() self.tilt_3.setEnabled(False) grid4.addWidget(self.tilt_3, 6, 1) etitl_3_label = QLabel(u'ETILT') grid4.addWidget(etitl_3_label, 6, 2) self.etilt_3 = QLineEdit() self.etilt_3.setEnabled(False) grid4.addWidget(self.etilt_3, 6, 3) mtilt_3_label = QLabel(u'MTILT') grid4.addWidget(mtilt_3_label, 6, 4) self.mtilt_3 = QLineEdit() self.mtilt_3.setEnabled(False) grid4.addWidget(self.mtilt_3, 6, 5) azimuth_4_label = QLabel(u'Azimuth 4:') grid4.addWidget(azimuth_4_label, 7, 0) self.azimuth_4 = QLineEdit() self.azimuth_4.setEnabled(False) self.azimuth_4.setValidator(azimuth_validator) grid4.addWidget(self.azimuth_4, 7, 1) titl_4_label = QLabel(u'TILT') grid4.addWidget(titl_4_label, 8, 0) self.tilt_4 = QLineEdit() self.tilt_4.setEnabled(False) grid4.addWidget(self.tilt_4, 8, 1) etitl_4_label = QLabel(u'ETILT') grid4.addWidget(etitl_4_label, 8, 2) self.etilt_4 = QLineEdit() self.etilt_4.setEnabled(False) grid4.addWidget(self.etilt_4, 8, 3) mtilt_4_label = QLabel(u'MTILT') grid4.addWidget(mtilt_4_label, 8, 4) self.mtilt_4 = QLineEdit() self.mtilt_4.setEnabled(False) grid4.addWidget(self.mtilt_4, 8, 5) btn_hbox = QHBoxLayout() ok = QPushButton(u"添加") self.connect(ok, SIGNAL('clicked()'), self.add) cancel = QPushButton(u"取消") self.connect(cancel, SIGNAL('clicked()'), self.accept) btn_hbox.addStretch(1) btn_hbox.addWidget(ok) btn_hbox.addWidget(cancel) btn_hbox.addStretch(1) vbox = QVBoxLayout() vbox.addLayout(grid1) vbox.addLayout(lonlat_hobx) vbox.addLayout(grid2) vbox.addLayout(grid3) vbox.addLayout(grid4) vbox.addStretch(1) vbox.addLayout(btn_hbox) self.setLayout(vbox) self.resize(500, 510)
def __init__(self, parent, attrmode=False): QComboBox.__init__(self, parent) if attrmode: self.addItem(QString("matches")) for op in OPERATORS: self.addItem(QString(op))
class LateralPanel(QWidget): def __init__(self, explorer): QWidget.__init__(self) vbox = QVBoxLayout(self) vbox.setContentsMargins(0, 0, 0, 0) vbox.addWidget(explorer) hbox = QHBoxLayout() hbox.setContentsMargins(0, 0, 0, 0) self.labelText = "Ln: %s, Col: %s" self.labelCursorPosition = QLabel(self.trUtf8(self.labelText % (0, 0))) hbox.addWidget(self.labelCursorPosition) self.combo = QComboBox() ui_tools.ComboBoxButton(self.combo, self.combo.clear, self.style().standardPixmap(self.style().SP_TrashIcon)) self.combo.setToolTip(self.trUtf8("Select the item from the Paste " "Historial list.\nYou can Copy items into this list with: " "%s\nor Paste them using: %s") % (resources.get_shortcut("History-Copy").toString( QKeySequence.NativeText), resources.get_shortcut("History-Paste").toString( QKeySequence.NativeText))) self.combo.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) hbox.addWidget(self.combo) vbox.addLayout(hbox) def update_line_col(self, line, col): self.labelCursorPosition.setText(self.trUtf8( self.labelText % (line, col))) def add_new_copy(self, copy): self.combo.insertItem(0, copy) self.combo.setCurrentIndex(0) if self.combo.count() > settings.COPY_HISTORY_BUFFER: self.combo.removeItem(self.combo.count() - 1) def get_paste(self): return self.combo.currentText()
class AddSiteUI(QDialog): mouseClicked = pyqtSignal(QgsPoint, Qt.MouseButton) def __init__(self, iface, parent=None): super(AddSiteUI, self).__init__() self.iface = iface self.parent = parent # 获取项目路径 self.project_dir = getProjectDir(self.iface) # 绑定鼠标单击操作 self.mapTool = MapTool(self.iface.mapCanvas()) self.mapTool.canvasClicked.connect(self.mouseClicked) self.iface.mapCanvas().setMapTool(self.mapTool) self.crsXform = QgsCoordinateTransform() self.crsXform.setDestCRS(QgsCoordinateReferenceSystem(4326)) self.initUI() # 初始化界面 def initUI(self): self.setGeometry(200, 200, 260, 150) self.setWindowFlags(Qt.WindowStaysOnTopHint) self.setWindowTitle(u'添加基站') # 用grid布局 grid1 = QGridLayout() grid1.setSpacing(10) grid2 = QGridLayout() grid2.setSpacing(10) grid3 = QGridLayout() grid3.setSpacing(10) grid4 = QGridLayout() grid4.setSpacing(10) lonlat_hobx = QHBoxLayout() lonlat_hobx.setSpacing(10) site_label = QLabel(u"<b>基站信息: <\b>") grid1.addWidget(site_label, 1, 0) SiteId_label = QLabel(u"基站ID:") grid1.addWidget(SiteId_label, 2, 0) self.site_id = QLineEdit() site_id_validator = QIntValidator(0, 999999999, self) # SiteId只能为最多9位的纯数字 self.site_id.setValidator(site_id_validator) self.site_id.setPlaceholderText(u'必填(只能为最多9位的纯数字)') grid1.addWidget(self.site_id, 2, 1) SiteNmae_label = QLabel(u"基站名字:") grid1.addWidget(SiteNmae_label, 3, 0) self.site_name = QLineEdit() self.site_name.setPlaceholderText(u'必填') grid1.addWidget(self.site_name, 3, 1) RNCBSC_label = QLabel(u"RNC-BSC:") grid1.addWidget(RNCBSC_label, 4, 0) self.rnc_bsc = QLineEdit() self.rnc_bsc.setPlaceholderText(u'若不填则为随机数') grid1.addWidget(self.rnc_bsc, 4, 1) lon_label = QLabel(u"经度:") lonlat_hobx.addWidget(lon_label) self.lon = QLineEdit() lonlat_hobx.addWidget(self.lon) lat_label = QLabel(u"纬度:") lonlat_hobx.addWidget(lat_label) self.lat = QLineEdit() lonlat_hobx.addWidget(self.lat) operator_label = QLabel(u'运营商:') grid2.addWidget(operator_label, 1, 0) self.operator = QComboBox(self) # 运营商选择下拉框 self.operator.addItems([u"移动", u"联通", u"电信", u"铁塔"]) grid2.addWidget(self.operator, 1, 1) region_label = QLabel(u'区域类型:') grid2.addWidget(region_label, 1, 2) self.region = QComboBox(self) # 区域类型选择下拉框 self.region.addItems([u"普通市区", u"密集市区", u"郊区乡镇", u"农村"]) grid2.addWidget(self.region, 1, 3) system_label = QLabel(u"网络制式:") grid2.addWidget(system_label, 2, 0) self.system = QComboBox(self) # 网络制式选择下拉框 self.system.addItems([ u"900", u"1800", u"CDMA", u"WCDMA", u"TD-LTE", u"FDD-LTE", u"TDSCDMA" ]) grid2.addWidget(self.system, 2, 1) frequency_label = QLabel(u"频段:") grid2.addWidget(frequency_label, 2, 2) self.frequency = QComboBox(self) # 频段选择下拉框 self.frequency.addItems([ u"700M", u"800M", u"900M", u"1800M", u"1900M", u"2100M", u"2300M", u"2600M" ]) grid2.addWidget(self.frequency, 2, 3) # cell_label = QtGui.QLabel(u"<b>小区信息: <\b>(若不需要添加小区请自行把下列的角度信息删除)") self.add_cell_checkbox = QCheckBox(u"添加小区") self.add_cell_checkbox.setChecked(False) grid3.addWidget(self.add_cell_checkbox, 1, 0) QObject.connect(self.add_cell_checkbox, SIGNAL("clicked()"), self.add_cell_checkChange) azimuth_1_label = QLabel(u'Azimuth 1:') grid4.addWidget(azimuth_1_label, 1, 0) azimuth_validator = QIntValidator(0, 360, self) self.azimuth_1 = QLineEdit() self.azimuth_1.setEnabled(False) self.azimuth_1.setValidator(azimuth_validator) grid4.addWidget(self.azimuth_1, 1, 1) titl_1_label = QLabel(u'TILT') grid4.addWidget(titl_1_label, 2, 0) self.tilt_1 = QLineEdit() self.tilt_1.setEnabled(False) grid4.addWidget(self.tilt_1, 2, 1) etilt_1_label = QLabel(u'ETILT') grid4.addWidget(etilt_1_label, 2, 2) self.etilt_1 = QLineEdit() self.etilt_1.setEnabled(False) grid4.addWidget(self.etilt_1, 2, 3) mtilt_1_label = QLabel(u"MTILT") grid4.addWidget(mtilt_1_label, 2, 4) self.mtilt_1 = QLineEdit() self.mtilt_1.setEnabled(False) grid4.addWidget(self.mtilt_1, 2, 5) azimuth_2_label = QLabel(u'Azimuth 2:') grid4.addWidget(azimuth_2_label, 3, 0) self.azimuth_2 = QLineEdit() self.azimuth_2.setEnabled(False) self.azimuth_2.setValidator(azimuth_validator) grid4.addWidget(self.azimuth_2, 3, 1) titl_2_label = QLabel(u'TILT') grid4.addWidget(titl_2_label, 4, 0) self.tilt_2 = QLineEdit() self.tilt_2.setEnabled(False) grid4.addWidget(self.tilt_2, 4, 1) etitl_2_label = QLabel(u'ETILT') grid4.addWidget(etitl_2_label, 4, 2) self.etilt_2 = QLineEdit() self.etilt_2.setEnabled(False) grid4.addWidget(self.etilt_2, 4, 3) mtilt_2_label = QLabel(u'MTILT') grid4.addWidget(mtilt_2_label, 4, 4) self.mtilt_2 = QLineEdit() self.mtilt_2.setEnabled(False) grid4.addWidget(self.mtilt_2, 4, 5) azimuth_3_label = QLabel(u'Azimuth 3:') grid4.addWidget(azimuth_3_label, 5, 0) self.azimuth_3 = QLineEdit() self.azimuth_3.setEnabled(False) self.azimuth_3.setValidator(azimuth_validator) grid4.addWidget(self.azimuth_3, 5, 1) titl_3_label = QLabel(u'TILT') grid4.addWidget(titl_3_label, 6, 0) self.tilt_3 = QLineEdit() self.tilt_3.setEnabled(False) grid4.addWidget(self.tilt_3, 6, 1) etitl_3_label = QLabel(u'ETILT') grid4.addWidget(etitl_3_label, 6, 2) self.etilt_3 = QLineEdit() self.etilt_3.setEnabled(False) grid4.addWidget(self.etilt_3, 6, 3) mtilt_3_label = QLabel(u'MTILT') grid4.addWidget(mtilt_3_label, 6, 4) self.mtilt_3 = QLineEdit() self.mtilt_3.setEnabled(False) grid4.addWidget(self.mtilt_3, 6, 5) azimuth_4_label = QLabel(u'Azimuth 4:') grid4.addWidget(azimuth_4_label, 7, 0) self.azimuth_4 = QLineEdit() self.azimuth_4.setEnabled(False) self.azimuth_4.setValidator(azimuth_validator) grid4.addWidget(self.azimuth_4, 7, 1) titl_4_label = QLabel(u'TILT') grid4.addWidget(titl_4_label, 8, 0) self.tilt_4 = QLineEdit() self.tilt_4.setEnabled(False) grid4.addWidget(self.tilt_4, 8, 1) etitl_4_label = QLabel(u'ETILT') grid4.addWidget(etitl_4_label, 8, 2) self.etilt_4 = QLineEdit() self.etilt_4.setEnabled(False) grid4.addWidget(self.etilt_4, 8, 3) mtilt_4_label = QLabel(u'MTILT') grid4.addWidget(mtilt_4_label, 8, 4) self.mtilt_4 = QLineEdit() self.mtilt_4.setEnabled(False) grid4.addWidget(self.mtilt_4, 8, 5) btn_hbox = QHBoxLayout() ok = QPushButton(u"添加") self.connect(ok, SIGNAL('clicked()'), self.add) cancel = QPushButton(u"取消") self.connect(cancel, SIGNAL('clicked()'), self.accept) btn_hbox.addStretch(1) btn_hbox.addWidget(ok) btn_hbox.addWidget(cancel) btn_hbox.addStretch(1) vbox = QVBoxLayout() vbox.addLayout(grid1) vbox.addLayout(lonlat_hobx) vbox.addLayout(grid2) vbox.addLayout(grid3) vbox.addLayout(grid4) vbox.addStretch(1) vbox.addLayout(btn_hbox) self.setLayout(vbox) self.resize(500, 510) # 鼠标单击事件 def mouseClicked(self, pos, button): if button == Qt.LeftButton: self.show() self.geoPos = self.crsXform.transform(pos) self.lon.setText(unicode(self.geoPos.x())) self.lat.setText(unicode(self.geoPos.y())) # 选中添加小区改变事件 def add_cell_checkChange(self): if self.add_cell_checkbox.isChecked(): # 如果要连带添加小区 self.azimuth_1.setEnabled(True) self.azimuth_1.setText(u"0") self.tilt_1.setEnabled(True) self.tilt_1.setText(u"4") self.etilt_1.setEnabled(True) self.etilt_1.setText(u"2") self.mtilt_1.setEnabled(True) self.mtilt_1.setText(u"2") self.azimuth_2.setEnabled(True) self.azimuth_2.setText(u"120") self.tilt_2.setEnabled(True) self.tilt_2.setText(u"4") self.etilt_2.setEnabled(True) self.etilt_2.setText(u"2") self.mtilt_2.setEnabled(True) self.mtilt_2.setText(u"2") self.azimuth_3.setEnabled(True) self.azimuth_3.setText(u"240") self.tilt_3.setEnabled(True) self.tilt_3.setText(u"4") self.etilt_3.setEnabled(True) self.etilt_3.setText(u"2") self.mtilt_3.setEnabled(True) self.mtilt_3.setText(u"2") self.azimuth_4.setEnabled(True) self.tilt_4.setEnabled(True) self.etilt_4.setEnabled(True) self.mtilt_4.setEnabled(True) else: # 把小区信息变回不可编辑状态 self.azimuth_1.setEnabled(False) self.azimuth_1.setText("") self.tilt_1.setEnabled(False) self.tilt_1.setText("") self.etilt_1.setEnabled(False) self.etilt_1.setText("") self.mtilt_1.setEnabled(False) self.mtilt_1.setText("") self.azimuth_2.setEnabled(False) self.azimuth_2.setText("") self.tilt_2.setEnabled(False) self.tilt_2.setText("") self.etilt_2.setEnabled(False) self.etilt_2.setText("") self.mtilt_2.setEnabled(False) self.mtilt_2.setText("") self.azimuth_3.setEnabled(False) self.azimuth_3.setText("") self.tilt_3.setEnabled(False) self.tilt_3.setText("") self.etilt_3.setEnabled(False) self.etilt_3.setText("") self.mtilt_3.setEnabled(False) self.mtilt_3.setText("") self.azimuth_4.setEnabled(False) self.azimuth_4.setText("") self.tilt_4.setEnabled(False) self.tilt_4.setText("") self.etilt_4.setEnabled(False) self.etilt_4.setText("") self.mtilt_4.setEnabled(False) self.mtilt_4.setText("") # 点击确定按钮事件 def add(self): # 获取并处理填写的信息 site_id = self.site_id.text().strip() # 基站ID(新建基站ID前自动添加N) site_name = self.site_name.text().strip() # 基站名字 rnc_bsc = self.rnc_bsc.text().strip() # RNC-BSC operator = self.operator.currentText().strip() # 运营商 region = self.region.currentText().strip() # 区域类型 system = self.system.currentText().strip() # 网络制式 frequency = self.frequency.currentText().strip() # 频段 system_flag = u"W" # 默认 W if system == u"900": system_flag = u"G" elif system == u"1800": system_flag = u"D" elif system == u"CDMA": system_flag = u"C" elif system == u"WCDMA": system_flag = u"W" elif system == u"TD-LTE": system_flag = u"T" elif system == u"FDD-LTE": system_flag = u"F" elif system == u"TDSCDMA": system_flag = u"TDS" lon = self.lon.text().strip() # 经度 lat = self.lat.text().strip() # 纬度 azimuth_1 = self.azimuth_1.text().strip() tilt_1 = self.tilt_1.text().strip() etilt_1 = self.etilt_1.text().strip() mtilt_1 = self.mtilt_1.text().strip() azimuth_2 = self.azimuth_2.text().strip() tilt_2 = self.tilt_2.text().strip() etilt_2 = self.etilt_2.text().strip() mtilt_2 = self.mtilt_2.text().strip() azimuth_3 = self.azimuth_3.text().strip() tilt_3 = self.tilt_3.text().strip() etilt_3 = self.etilt_3.text().strip() mtilt_3 = self.mtilt_3.text().strip() azimuth_4 = self.azimuth_4.text().strip() tilt_4 = self.tilt_4.text().strip() etilt_4 = self.etilt_4.text().strip() mtilt_4 = self.mtilt_4.text().strip() # 判断必填项是否已填 if site_name == "": QMessageBox.critical(self, u"提示", u"请填写基站名字!") return False if site_id == "": QMessageBox.critical(self, u"提示", u"请填写基站ID!") return False if rnc_bsc == "": # 赋值随机数 rnc_bsc = str(random.randint(1, 9999)) if (lon == "") or (lat == ""): QMessageBox.critical(self, u"提示", u"请填写经纬度,或通过点击画布选择坐标!") return False # 先添加基站 # 检查ID和名字是否重复 self.sitelayer = getLayerByName(u'基站', self.iface) # 基站图层 allsite = self.sitelayer.getFeatures() for site in allsite: if site_name == site[u'基站名']: QMessageBox.critical(self, u"提示", u"所填写的基站名与项目中的数据有重复,请更改!") return False if site_id == site[u'基站ID']: QMessageBox.critical(self, u"提示", u"所填写的基站ID与项目中的数据有重复,请更改!") return False siteFeatureAttrs = ['NULL'] * 20 siteFeatureAttrs[0] = site_id siteFeatureAttrs[1] = site_name siteFeatureAttrs[2] = rnc_bsc siteFeatureAttrs[3] = lon siteFeatureAttrs[4] = lat siteFeatureAttrs[5] = system_flag siteFeatureAttrs[6] = region siteFeatureAttrs[8] = operator # 生成基站Feature add_site_list = [] siteFeature = createASiteFeature(QgsPoint(float(lon), float(lat)), siteFeatureAttrs) add_site_list.append(siteFeature) # 判断是否需要顺带添加小区 azimuth_list = [] if azimuth_1 != "": if not tilt_1: tilt_1 = None if not etilt_1: etilt_1 = None if not mtilt_1: mtilt_1 = None azimuth_1_info = (int(azimuth_1), tilt_1, etilt_1, mtilt_1) azimuth_list.append(azimuth_1_info) if azimuth_2 != "": if not tilt_2: tilt_2 = None if not etilt_2: etilt_2 = None if not mtilt_2: mtilt_2 = None azimuth_2_info = (int(azimuth_2), tilt_2, etilt_2, mtilt_2) azimuth_list.append(azimuth_2_info) if azimuth_3 != "": if not tilt_3: tilt_3 = None if not etilt_3: etilt_3 = None if not mtilt_3: mtilt_3 = None azimuth_3_info = (int(azimuth_3), tilt_3, etilt_3, mtilt_3) azimuth_list.append(azimuth_3_info) if azimuth_4 != "": if not tilt_4: tilt_4 = None if not etilt_4: etilt_4 = None if not mtilt_4: mtilt_4 = None azimuth_4_info = (int(azimuth_4), tilt_4, etilt_4, mtilt_4) azimuth_list.append(azimuth_4_info) if len(azimuth_list) != 0: # 获取小区大小和长度设置 setting = getCellGraphicParam(self.iface) # 判断是否读取到参数设置 if not setting: QMessageBox.Critical(self.parent, u"错误", u"无法获取小区图形参数设置") return add_cell_list = [] # 要添加的小区list # 若填写了小区 for index, azimuth_info in enumerate(azimuth_list): cell_feature = ['NULL'] * 54 cell_feature[0] = site_id # 基站ID cell_feature[1] = site_name # 所属基站名字 cell_id = u"%s%s" % (site_id, str(index + 1)) # 小区ID cell_feature[2] = cell_id # 小区ID cell_name = u"%s-%s" % (site_name, str(index + 1)) # # 小区名字 cell_feature[3] = cell_name cell_feature[4] = index # Sector ID cell_feature[6] = rnc_bsc cell_feature[7] = azimuth_info[0] # Azimuth cell_feature[8] = lon cell_feature[9] = lat cell_feature[10] = system_flag cell_feature[11] = region # 典型环境 cell_feature[12] = frequency # 频段 cell_feature[13] = azimuth_info[1] cell_feature[14] = azimuth_info[2] cell_feature[15] = azimuth_info[3] cell_feature[18] = operator # 识别图形设置 if setting["type"] == 0: if operator == u'移动': szAngle = setting[u"移动"][0] szLength = setting[u"移动"][1] elif operator == u'联通': szAngle = setting[u"联通"][0] szLength = setting[u"联通"][1] elif operator == u'电信': szAngle = setting[u"电信"][0] szLength = setting[u"电信"][1] elif operator == u'铁塔': szAngle = setting[u"铁塔"][0] szLength = setting[u"铁塔"][1] else: # 自定义 system = cell_feature[10] frequency = cell_feature[12] # 获取默认设置 szAngle = setting[u"默认"][0] szLength = setting[u"默认"][1] # 获取分类 case_list = setting["case_list"] for (c_system, c_frequency, c_angle, c_length) in case_list: if c_system and (not c_frequency): if system == c_system: szAngle = c_angle szLength = c_length elif (not c_system) and c_frequency: if frequency == c_frequency: szAngle = c_angle szLength = c_length elif c_system and c_frequency: if (system == c_system) and (frequency == c_frequency): szAngle = c_angle szLength = c_length # 生成小区扇形geometry cellGeometry = createSector(QgsPoint(float(lon), float(lat)), szLength, self.iface, True, cell_feature[7], szAngle) # 判断小区名字和小区ID是否已于现有数据中 self.celllayer = getLayerByName(u'小区', self.iface) # 小区图层 # 检查是否已勾选了小图特曾 if not self.celllayer: QMessageBox.critical(self.parent, u"错误", u"没有找到小区图层!") return False allcell = self.celllayer.getFeatures() for cell in allcell: if cell_name == cell[u'小区名']: QMessageBox.critical( self.parent, u"提示", u"生成的小区名: " + cell_name + u" 与项目中的数据有重复,请更改!") return False if cell_id == cell[u"小区ID"]: QMessageBox.critical( self.parent, u"提示", u"生成的小区ID: " + cell_id + u" 与项目中的数据有重复,请更改!") return False # 生成小区feature并添加到list中 cell = createACellFeature(cellGeometry, cell_feature) add_cell_list.append(cell) button = QMessageBox.question(self, "Question", u"添加后将无法撤回,是否继续?", QMessageBox.Ok | QMessageBox.Cancel, QMessageBox.Ok) if button == QMessageBox.Ok: # 向图层中导入新增的数据 if len(add_site_list) != 0: siteLayer = getLayerByName(u"基站", self.iface) result1 = importFeaturesToLayer(siteLayer, add_site_list) if len(add_cell_list) != 0 and result1: cellLayer = getLayerByName(u"小区", self.iface) result2 = importFeaturesToLayer(cellLayer, add_cell_list) if not result2: QMessageBox.critical(self, u"添加基站", u"添加基站数据失败!") self.accept() return elif not result1: QMessageBox.critical(self, u"添加基站", u"添加基站数据失败!") self.accept() return self.iface.actionDraw().trigger() # 刷新地图 else: return if result1 or result2: QMessageBox.information(self, u"添加基站", u"添加基站数据成功!") self.accept()
class LCD20x4(PluginBase): MAX_LINE = 4 MAX_POSITION = 20 qtcb_pressed = pyqtSignal(int) qtcb_released = pyqtSignal(int) def __init__(self, ipcon, uid): PluginBase.__init__(self, ipcon, uid) self.lcd = bricklet_lcd_20x4.LCD20x4(self.uid) self.ipcon.add_device(self.lcd) self.version = '.'.join(map(str, self.lcd.get_version()[1])) self.qtcb_pressed.connect(self.cb_pressed) self.lcd.register_callback(self.lcd.CALLBACK_BUTTON_PRESSED, self.qtcb_pressed.emit) self.qtcb_released.connect(self.cb_released) self.lcd.register_callback(self.lcd.CALLBACK_BUTTON_RELEASED, self.qtcb_released.emit) self.line_label = QLabel('Line: ') self.line_combo = QComboBox() for i in range(LCD20x4.MAX_LINE): self.line_combo.addItem(str(i)) self.pos_label = QLabel('Position: ') self.pos_combo = QComboBox() for i in range(LCD20x4.MAX_POSITION): self.pos_combo.addItem(str(i)) self.pos_layout = QHBoxLayout() self.pos_layout.addWidget(self.pos_label) self.pos_layout.addWidget(self.pos_combo) self.pos_layout.addStretch() self.line_layout = QHBoxLayout() self.line_layout.addWidget(self.line_label) self.line_layout.addWidget(self.line_combo) self.line_layout.addStretch() self.text_label = QLabel('Text: ') self.text_edit = QLineEdit() self.text_edit.setMaxLength(LCD20x4.MAX_POSITION) self.text_button = QPushButton('Send Text') self.text_layout = QHBoxLayout() self.text_layout.addWidget(self.text_label) self.text_layout.addWidget(self.text_edit) self.text_layout.addWidget(self.text_button) self.clear_button = QPushButton("Clear Display") self.bl_button = QPushButton() self.cursor_button = QPushButton() self.blink_button = QPushButton() try: if self.lcd.is_backlight_on(): self.bl_button.setText('Backlight Off') else: self.bl_button.setText('Backlight On') cursor, blink = self.lcd.get_config() if cursor: self.cursor_button.setText('Cursor Off') else: self.cursor_button.setText('Cursor On') if blink: self.blink_button.setText('Blink Off') else: self.blink_button.setText('Blink On') except ip_connection.Error: pass self.onofflayout = QHBoxLayout() self.onofflayout.addWidget(self.bl_button) self.onofflayout.addWidget(self.cursor_button) self.onofflayout.addWidget(self.blink_button) self.b0_label = QLabel('Button 0: Released') self.b1_label = QLabel('Button 1: Released') self.b2_label = QLabel('Button 2: Released') self.cursor_button.pressed.connect(self.cursor_pressed) self.blink_button.pressed.connect(self.blink_pressed) self.clear_button.pressed.connect(self.clear_pressed) self.bl_button.pressed.connect(self.bl_pressed) self.text_button.pressed.connect(self.text_pressed) layout = QVBoxLayout(self) layout.addLayout(self.line_layout) layout.addLayout(self.pos_layout) layout.addLayout(self.text_layout) layout.addWidget(self.clear_button) layout.addLayout(self.onofflayout) layout.addWidget(self.b0_label) layout.addWidget(self.b1_label) layout.addWidget(self.b2_label) layout.addStretch() def start(self): pass def stop(self): pass @staticmethod def has_name(name): return 'LCD 20x4 Bricklet' in name def cb_pressed(self, button): if button == 0: self.b0_label.setText('Button 0: Pressed') elif button == 1: self.b1_label.setText('Button 1: Pressed') elif button == 2: self.b2_label.setText('Button 2: Pressed') def cb_released(self, button): if button == 0: self.b0_label.setText('Button 0: Released') elif button == 1: self.b1_label.setText('Button 1: Released') elif button == 2: self.b2_label.setText('Button 2: Released') def bl_pressed(self): try: if self.bl_button.text() == 'Backlight On': self.lcd.backlight_on() self.bl_button.setText('Backlight Off') else: self.lcd.backlight_off() self.bl_button.setText('Backlight On') except ip_connection.Error: return def get_config(self): cursor = self.cursor_button.text() == 'Cursor Off' blink = self.blink_button.text() == 'Blink Off' return (cursor, blink) def cursor_pressed(self): cursor, blink = self.get_config() try: self.lcd.set_config(not cursor, blink) except ip_connection.Error: return if cursor: self.cursor_button.setText('Cursor On') else: self.cursor_button.setText('Cursor Off') def blink_pressed(self): cursor, blink = self.get_config() try: self.lcd.set_config(cursor, not blink) except ip_connection.Error: return if blink: self.blink_button.setText('Blink On') else: self.blink_button.setText('Blink Off') def clear_pressed(self): try: self.lcd.clear_display() except ip_connection.Error: return def text_pressed(self): line = int(self.line_combo.currentText()) position = int(self.pos_combo.currentText()) text = str(self.text_edit.text()) try: self.lcd.write_line(line, position, text) except ip_connection.Error: return
def __init__(self, ipcon, uid): PluginBase.__init__(self, ipcon, uid) self.lcd = bricklet_lcd_20x4.LCD20x4(self.uid) self.ipcon.add_device(self.lcd) self.version = '.'.join(map(str, self.lcd.get_version()[1])) self.qtcb_pressed.connect(self.cb_pressed) self.lcd.register_callback(self.lcd.CALLBACK_BUTTON_PRESSED, self.qtcb_pressed.emit) self.qtcb_released.connect(self.cb_released) self.lcd.register_callback(self.lcd.CALLBACK_BUTTON_RELEASED, self.qtcb_released.emit) self.line_label = QLabel('Line: ') self.line_combo = QComboBox() for i in range(LCD20x4.MAX_LINE): self.line_combo.addItem(str(i)) self.pos_label = QLabel('Position: ') self.pos_combo = QComboBox() for i in range(LCD20x4.MAX_POSITION): self.pos_combo.addItem(str(i)) self.pos_layout = QHBoxLayout() self.pos_layout.addWidget(self.pos_label) self.pos_layout.addWidget(self.pos_combo) self.pos_layout.addStretch() self.line_layout = QHBoxLayout() self.line_layout.addWidget(self.line_label) self.line_layout.addWidget(self.line_combo) self.line_layout.addStretch() self.text_label = QLabel('Text: ') self.text_edit = QLineEdit() self.text_edit.setMaxLength(LCD20x4.MAX_POSITION) self.text_button = QPushButton('Send Text') self.text_layout = QHBoxLayout() self.text_layout.addWidget(self.text_label) self.text_layout.addWidget(self.text_edit) self.text_layout.addWidget(self.text_button) self.clear_button = QPushButton("Clear Display") self.bl_button = QPushButton() self.cursor_button = QPushButton() self.blink_button = QPushButton() try: if self.lcd.is_backlight_on(): self.bl_button.setText('Backlight Off') else: self.bl_button.setText('Backlight On') cursor, blink = self.lcd.get_config() if cursor: self.cursor_button.setText('Cursor Off') else: self.cursor_button.setText('Cursor On') if blink: self.blink_button.setText('Blink Off') else: self.blink_button.setText('Blink On') except ip_connection.Error: pass self.onofflayout = QHBoxLayout() self.onofflayout.addWidget(self.bl_button) self.onofflayout.addWidget(self.cursor_button) self.onofflayout.addWidget(self.blink_button) self.b0_label = QLabel('Button 0: Released') self.b1_label = QLabel('Button 1: Released') self.b2_label = QLabel('Button 2: Released') self.cursor_button.pressed.connect(self.cursor_pressed) self.blink_button.pressed.connect(self.blink_pressed) self.clear_button.pressed.connect(self.clear_pressed) self.bl_button.pressed.connect(self.bl_pressed) self.text_button.pressed.connect(self.text_pressed) layout = QVBoxLayout(self) layout.addLayout(self.line_layout) layout.addLayout(self.pos_layout) layout.addLayout(self.text_layout) layout.addWidget(self.clear_button) layout.addLayout(self.onofflayout) layout.addWidget(self.b0_label) layout.addWidget(self.b1_label) layout.addWidget(self.b2_label) layout.addStretch()
def __init__(self, parent=None): QWidget.__init__(self, parent) icon = QIcon() icon.addPixmap(QPixmap(":/freeseer/logo.png"), QIcon.Normal, QIcon.Off) self.setWindowIcon(icon) self.resize(400, 400) self.mainLayout = QVBoxLayout() self.setLayout(self.mainLayout) self.setStyleSheet(""" QToolButton { background-color: #D1D1D1; border-style: solid; border-width: 1px; border-radius: 10px; border-color: #969696; padding: 6px; } QToolButton:pressed { background-color: #A3A2A2; border-width: 2px; border-color: #707070; } QToolButton:checked { background-color: #A3A2A2; border-width: 2px; border-color: #707070; } QToolButton:disabled { background-color: #EDEDED; border-color: #BFBDBD; } QToolButton:hover { border-width: 2px; } """) boldFont = QFont() boldFont.setBold(True) fontSize = self.font().pixelSize() fontUnit = "px" if fontSize == -1: # Font is set as points, not pixels. fontUnit = "pt" fontSize = self.font().pointSize() # Control bar self.controlRow = QHBoxLayout() self.mainLayout.addLayout(self.controlRow) self.recordIcon = QIcon(":/multimedia/record.png") self.stopIcon = QIcon(":/multimedia/stop.png") pauseIcon = QIcon(":/multimedia/pause.png") playIcon = QIcon(":/multimedia/play.png") self.headphoneIcon = QIcon() self.headphoneIcon.addPixmap(QPixmap(":/multimedia/headphones.png"), QIcon.Normal, QIcon.Off) self.is_recording = False self.recordButton = QToolButton() self.recordButton.setToolTip("Record") self.recordButton.setFixedSize(QSize(60, 40)) self.recordButton.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.recordButton.setIcon(self.recordIcon) self.recordButton.setEnabled(False) self.recordButton.setObjectName("recordButton") self.controlRow.addWidget(self.recordButton, 0, Qt.AlignLeft) self.connect(self.recordButton, SIGNAL("clicked()"), self.setRecordIcon) self.playButton = QToolButton() self.playButton.setToolTip("Play last recorded Video") self.playButton.setFixedSize(QSize(60, 40)) self.playButton.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.playButton.setIcon(playIcon) self.playButton.setEnabled(False) self.controlRow.addWidget(self.playButton, 0, Qt.AlignLeft) self.pauseButton = QToolButton() self.pauseButton.setToolTip("Pause") self.pauseButton.setIcon(pauseIcon) self.pauseButton.setFixedSize(QSize(60, 40)) self.pauseButton.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.pauseButton.setEnabled(False) self.pauseButton.setCheckable(True) self.controlRow.addWidget(self.pauseButton, 0, Qt.AlignLeft) self.controlRow.addSpacerItem(QSpacerItem(30, 40)) self.controlRow.addStretch(1) self.standbyButton = QPushButton("Standby") self.standbyButton.setStyleSheet(""" QPushButton {{ color: white; background-color: #47a447; border-style: solid; border-width: 0px; border-radius: 10px; border-color: #398439; font: bold {}{}; padding: 6px; }} QPushButton:pressed {{ background-color: #3E8A3E; border-color: #327532; }} QPushButton:hover {{ border-width: 2px; }} """.format(fontSize + 3, fontUnit)) self.standbyButton.setToolTip("Standby") self.standbyButton.setFixedSize(QSize(180, 40)) self.standbyButton.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.standbyButton.setCheckable(True) self.standbyButton.setObjectName("standbyButton") self.controlRow.addWidget(self.standbyButton) self.disengageButton = QPushButton("Leave record-mode") self.disengageButton.setStyleSheet(""" QPushButton {{ color: white; background-color: #D14343; border-style: solid; border-width: 0px; border-radius: 10px; border-color: #B02C2C; font: bold {}{}; padding: 6px; }} QPushButton:pressed {{ background-color: #AD2B2B; border-color: #8C2929; }} QPushButton:hover {{ border-width: 2px; }} QPushButton:disabled {{ background-color: #B89E9E; }} """.format(fontSize + 3, fontUnit)) self.disengageButton.setToolTip("Leave record-mode") self.disengageButton.setFixedSize(QSize(180, 40)) self.disengageButton.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.disengageButton.setHidden(True) self.disengageButton.setObjectName("disengageButton") self.controlRow.addWidget(self.disengageButton) # Filter bar self.filterBarLayout = QVBoxLayout() self.mainLayout.addLayout(self.filterBarLayout) self.filterBarLayoutRow_1 = QHBoxLayout() self.filterBarLayout.addLayout(self.filterBarLayoutRow_1) self.eventLabel = QLabel("Event") self.eventLabel.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed) self.eventComboBox = QComboBox() self.eventLabel.setBuddy(self.eventComboBox) self.roomLabel = QLabel("Room") self.roomLabel.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed) self.roomComboBox = QComboBox() self.roomLabel.setBuddy(self.roomComboBox) self.dateLabel = QLabel("Date") self.dateLabel.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed) self.dateComboBox = QComboBox() self.dateLabel.setBuddy(self.dateComboBox) self.filterBarLayoutRow_1.addWidget(self.eventLabel) self.filterBarLayoutRow_1.addWidget(self.eventComboBox) self.filterBarLayoutRow_1.addWidget(self.roomLabel) self.filterBarLayoutRow_1.addWidget(self.roomComboBox) self.filterBarLayoutRow_1.addWidget(self.dateLabel) self.filterBarLayoutRow_1.addWidget(self.dateComboBox) self.filterBarLayoutRow_2 = QHBoxLayout() self.filterBarLayout.addLayout(self.filterBarLayoutRow_2) self.talkLabel = QLabel("Talk ") self.talkLabel.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed) self.talkComboBox = QComboBox() self.talkComboBox.setFont(boldFont) self.talkComboBox.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Maximum) self.talkComboBox.setSizeAdjustPolicy( QComboBox.AdjustToMinimumContentsLength) self.filterBarLayoutRow_2.addWidget(self.talkLabel) self.filterBarLayoutRow_2.addWidget(self.talkComboBox) # Preview Layout self.previewLayout = QHBoxLayout() self.mainLayout.addLayout(self.previewLayout) self.previewWidget = QWidget() self.audioSlider = QSlider() self.audioSlider.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) self.audioSlider.setEnabled(False) self.previewLayout.addWidget(self.previewWidget) self.previewLayout.addWidget(self.audioSlider) self.statusLabel = QLabel() self.mainLayout.addWidget(self.statusLabel) # Audio Feedback Checkbox self.audioFeedbackCheckbox = QCheckBox() self.audioFeedbackCheckbox.setLayoutDirection(Qt.RightToLeft) self.audioFeedbackCheckbox.setIcon(self.headphoneIcon) self.audioFeedbackCheckbox.setToolTip("Enable Audio Feedback") self.mainLayout.addWidget(self.audioFeedbackCheckbox)
class CoordinatesConverterDialog(QtGui.QDialog, FORM_CLASS): def __init__(self, parent=None): super(CoordinatesConverterDialog, self).__init__(parent) self.setupUi(self) # Output fields for converted coordinates self.coordinate_fields = [ self.lineEdit_mgrs, self.lineEdit_utm, self.lineEdit_wgs_dms, self.lineEdit_wgs_degrees, self.lineEdit_wgs_comma ] # Input fields for geographic coordinate format self.lat_deg_input = QLineEdit() self.lat_min_input = QLineEdit() self.lat_sec_input = QLineEdit() self.long_deg_input = QLineEdit() self.long_min_input = QLineEdit() self.long_sec_input = QLineEdit() # Input fields for utm coordinate format self.utm_zone_input = QLineEdit() self.hemisphere = QComboBox() self.hemisphere.addItem('N') self.hemisphere.addItem('S') self.utm_easting_input = QLineEdit() self.utm_northing_input = QLineEdit() self.zone_label = QLabel('Zone') # Input fields for mgrs coordinate format self.mgrs_zone_input = QLineEdit() self.mgrs_square_input = QLineEdit() self.mgrs_easting_input = QLineEdit() self.mgrs_northing_input = QLineEdit() self.square_label = QLabel('100km Quadrat') self.comboBox_format.setCurrentIndex(0) self.hemisphere.setCurrentIndex(1) self.input_fields = [ self.lat_deg_input, self.lat_min_input, self.lat_sec_input, self.long_deg_input, self.long_min_input, self.long_sec_input, self.utm_zone_input, self.utm_easting_input, self.utm_northing_input, self.mgrs_zone_input, self.mgrs_square_input, self.mgrs_easting_input, self.mgrs_northing_input ] def reset(self): """Resets the graphical user interface.""" self.clear_coordinate_fields() self.clear_epsg_fields() self.statusBar.clearMessage() self.clear_format_layout() self.comboBox_format.setCurrentIndex(0) self.hemisphere.setCurrentIndex(0) self.label_input_convert.setText('') self.label_utm_ref.setText('MGRS') def clear_coordinate_fields(self): """Resets the text fields show the converted coordinates.""" self.label_utm_ref.setText('MGRS') for field in self.coordinate_fields: field.clear() def clear_input_fields(self): """Resets the value input fields for the different coordinate systems.""" self.label_utm_ref.setText('MGRS') for field in self.input_fields: field.clear() def clear_epsg_fields(self): """Resets the input field and the text field showing the result for transforming values based on EPSG codes.""" self.lineEdit_autid_from.clear() self.textEdit_from.clear() self.lineEdit_autid_to.clear() self.textEdit_to.clear() self.lineEdit_input_to_x.clear() self.lineEdit_input_to_y.clear() self.lineEdit_input_from_x.clear() self.lineEdit_input_from_y.clear() def create_degrees_input(self): """Creates the template for entering coordinates in the geographic coordinate system - DEGREES.""" self.gridLayout_input.addWidget(self.long_deg_input, 0, 0) self.gridLayout_input.addWidget(QLabel('\xb0'), 0, 1) self.gridLayout_input.addWidget(QLabel('E'), 0, 2) self.gridLayout_input.addWidget(self.lat_deg_input, 0, 3) self.gridLayout_input.addWidget(QLabel('\xb0'), 0, 4) self.gridLayout_input.addWidget(QLabel('N'), 0, 5) def create_dms_input(self): """Creates the template for entering coordinates in the geographic coordinate system - DEGREES, MINUTES, SECONDS.""" self.gridLayout_input.addWidget(self.long_deg_input, 0, 0) self.gridLayout_input.addWidget(QLabel('\xb0'), 0, 1) self.gridLayout_input.addWidget(self.long_min_input, 0, 2) self.gridLayout_input.addWidget(QLabel('\''), 0, 3) self.gridLayout_input.addWidget(self.long_sec_input, 0, 4) self.gridLayout_input.addWidget(QLabel('"'), 0, 5) self.gridLayout_input.addWidget(QLabel('E'), 0, 6) self.gridLayout_input.addWidget(self.lat_deg_input, 0, 7) self.gridLayout_input.addWidget(QLabel('\xb0'), 0, 8) self.gridLayout_input.addWidget(self.lat_min_input, 0, 9) self.gridLayout_input.addWidget(QLabel('\''), 0, 10) self.gridLayout_input.addWidget(self.lat_sec_input, 0, 11) self.gridLayout_input.addWidget(QLabel('"'), 0, 12) self.gridLayout_input.addWidget(QLabel('N'), 0, 13) def create_commaminutes_input(self): """Creates the template for entering coordinates in the geographic coordinate system - DEGREES, DECIMAL MINUTES.""" self.gridLayout_input.addWidget(self.long_deg_input, 0, 0) self.gridLayout_input.addWidget(QLabel('\xb0'), 0, 1) self.gridLayout_input.addWidget(self.long_min_input, 0, 2) self.gridLayout_input.addWidget(QLabel('\''), 0, 3) self.gridLayout_input.addWidget(QLabel('E'), 0, 4) self.gridLayout_input.addWidget(self.lat_deg_input, 0, 7) self.gridLayout_input.addWidget(QLabel('\xb0'), 0, 8) self.gridLayout_input.addWidget(self.lat_min_input, 0, 9) self.gridLayout_input.addWidget(QLabel('\''), 0, 10) self.gridLayout_input.addWidget(QLabel('N'), 0, 11) def create_utm_input(self): """Creates the template for entering coordinates in the unversial mercator transverse coordinate system - UTM.""" self.utm_zone_input.setFixedWidth(30) self.gridLayout_input.addWidget(self.utm_zone_input, 0, 0) self.gridLayout_input.addWidget(self.zone_label, 0, 1) self.gridLayout_input.addWidget(self.hemisphere, 0, 2) self.gridLayout_input.addWidget(self.utm_easting_input, 0, 3) self.gridLayout_input.addWidget(QLabel('E'), 0, 4) self.gridLayout_input.addWidget(self.utm_northing_input, 0, 5) self.gridLayout_input.addWidget(QLabel('N'), 0, 6) def create_mgrs_input(self): """Creates the template for entering coordinates in the military grid reference coordinate system - MGRS.""" self.mgrs_zone_input.setFixedWidth(40) self.mgrs_square_input.setFixedWidth(30) self.gridLayout_input.addWidget(self.mgrs_zone_input, 0, 0) self.gridLayout_input.addWidget(self.zone_label, 0, 1) self.gridLayout_input.addWidget(self.mgrs_square_input, 0, 2) self.gridLayout_input.addWidget(self.square_label, 0, 3) self.gridLayout_input.addWidget(self.mgrs_easting_input, 0, 4) self.gridLayout_input.addWidget(QLabel('E'), 0, 5) self.gridLayout_input.addWidget(self.mgrs_northing_input, 0, 6) self.gridLayout_input.addWidget(QLabel('N'), 0, 7) def clear_format_layout(self): """Removes all template elements from the gridlayout.""" for i in reversed(range(self.gridLayout_input.count())): self.gridLayout_input.itemAt(i).widget().setParent(None) self.clear_input_fields() def change_to_english(self): self.groupBox_coord.setTitle("convert coordinates") self.groupBox_input.setTitle("input") self.groupBox_result.setTitle("result") self.groupBox_epsg.setTitle("transform based on EPSG code") self.groupBox_to.setTitle("from") self.groupBox_from.setTitle("to") self.label_format_description.setText("choose coordinate system") self.label_wgs_degrees.setText("WGS84 (degrees)") self.label_wgs_comma.setText("WGS84 (degrees, comma minutes)") self.label_wgs_dms.setText("WGS84 (degrees, minutes, seconds)") self.label_utm_ref.setText('MGRS') self.label_epsg_to.setText("Authority ID") self.label_epsg_from.setText("Authority ID") self.label_system_to.setText("Coordinate Reference System") self.label_system_from.setText("Coordinate Reference System") self.label_input_to_x.setText("easting (X)") self.label_input_to_y.setText("northing (Y)") self.label_input_from_x.setText("easting (X)") self.label_input_from_y.setText("northing (Y)") self.pushButton_select_to.setText("choose EPSG code") self.pushButton_select_from.setText("choose EPSG code") self.zone_label.setText("zone") self.square_label.setText("100km square") self.comboBox_format.clear() self.comboBox_format.addItems([ "Degrees", "Degrees, Comma minutes", "Degrees, Minutes, Seconds", "UTM", "MGRS" ]) self.pushButton_help.setText("Help") def change_to_german(self): self.groupBox_coord.setTitle("Koordinaten umrechnen") self.groupBox_input.setTitle("Eingabe") self.groupBox_result.setTitle("Ergebnis") self.groupBox_epsg.setTitle("anhand EPSG-Code konvertieren") self.groupBox_to.setTitle("von") self.groupBox_from.setTitle("nach") self.label_format_description.setText( "Koordinatensystem wählen".decode('UTF-8')) self.label_wgs_degrees.setText("WGS84 (Dezimalgrad)") self.label_wgs_comma.setText("WGS84 (Grad, Kommaminuten)") self.label_wgs_dms.setText("WGS84 (Grad, Minuten, Sekunden)") self.label_utm_ref.setText('MGRS') self.label_epsg_to.setText("AutoritätsID".decode('UTF-8')) self.label_epsg_from.setText("AutoritätsID".decode('UTF-8')) self.label_system_to.setText("Koordinatensystem") self.label_system_from.setText("Koordinatensystem") self.label_input_to_x.setText("Rechtswert (X)") self.label_input_to_y.setText("Hochwert (Y)") self.label_input_from_x.setText("Rechtswert (X)") self.label_input_from_y.setText("Hochwert (Y)") self.pushButton_select_to.setText("EPSG auswählen".decode('UTF-8')) self.pushButton_select_from.setText("EPSG auswählen".decode('UTF-8')) self.zone_label.setText("Zone") self.square_label.setText("100km Quadrat") self.comboBox_format.clear() self.comboBox_format.addItems([ "Dezimalgrad", "Grad, Kommaminuten", "Grad, Minuten, Sekunden", "UTM", "MGRS" ]) self.pushButton_help.setText("Hilfe")
def createEditor(self, parent, option, index): """ Create the editor @param parent: @type parent: @param option: @type option: @param index: @type index: @return: @rtype: """ value = self.getValueRow(index) if index.column() == self.col_: if value['key'] == 'summary' or value['key'] == 'prerequisites': editorDialog = DescriptionDialog(value['value']) if editorDialog.exec_() == QDialog.Accepted: testDescr = editorDialog.getDescr() index.model().setData(index, q(testDescr)) return None if value['key'] == 'comments': editorDialog = CommentsDialog(value['value']) if editorDialog.exec_() == QDialog.Accepted: comments = editorDialog.getComments() index.model().setData(index, comments) return None elif value['key'] == 'date': # deprecated return None elif value['key'] == 'creation date': return None elif value['key'] == 'data mode': wdoc = index.model().getWdoc() if wdoc.extension != Workspace.TestData.TYPE: return None editorDialog = DataModeDialog() if editorDialog.exec_() == QDialog.Accepted: dataMode = editorDialog.getSelectedMode() # update lexer on editor if dataMode == 'Raw': wdoc.deactiveXmlLexer() else: wdoc.activeXmlLexer() # update table index.model().setData(index, dataMode) return None elif value['key'] == 'libraries': serverSutLibs = Settings.instance().serverContext['libraries'] editor = QComboBox(parent) editor.activated.connect(self.onItemActivated) editor.addItems(serverSutLibs.split(',')) return editor elif value['key'] == 'adapters': serverSutAdps = Settings.instance().serverContext['adapters'] editor = QComboBox(parent) editor.activated.connect(self.onItemActivated) editor.addItems(serverSutAdps.split(',')) return editor elif value['key'] == 'state': wdoc = index.model().getWdoc() if wdoc is None: return if not wdoc.isSaved(): return isTp = False isTs = False isTu = False isTg = False isTa = False if wdoc.extension == Workspace.TestUnit.TYPE: isTu = True if wdoc.extension == Workspace.TestAbstract.TYPE: isTa = True if wdoc.extension == Workspace.TestSuite.TYPE: isTs = True if wdoc.extension == Workspace.TestPlan.TYPE: isTp = True if wdoc.extension == Workspace.TestPlan.TYPE_GLOBAL: isTg = True editorDialog = StateDialog() if editorDialog.exec_() == QDialog.Accepted: stateTest = editorDialog.getSelectedState() if value['value'] != stateTest: # uci call if stateTest == 'Executing': duration = time.time() - float( wdoc.dataModel.testdev) # rest call RCI.instance().durationTestsWritingMetrics( duration=int(duration), projectId=wdoc.project, isTp=isTp, isTs=isTs, isTu=isTu, isTg=isTg, isTa=isTa) # update data model if stateTest == 'Writing': wdoc.dataModel.testdev = time.time() # update table index.model().setData(index, stateTest) return None else: editor = editor = QLineEdit(parent) return editor return QItemDelegate.createEditor(self, parent, option, index)
class ImportJobsDialog(QDialog): def __init__(self, jobs): """ Constructor :param jobs: all the jobs available for import """ QDialog.__init__(self) self.__jobs = jobs self.setWindowTitle( QCoreApplication.translate("VDLTools", "Choose job")) self.resize(300, 100) self.__layout = QGridLayout() self.__okButton = QPushButton( QCoreApplication.translate("VDLTools", "OK")) self.__okButton.setMinimumHeight(20) self.__okButton.setMinimumWidth(100) self.__cancelButton = QPushButton( QCoreApplication.translate("VDLTools", "Cancel")) self.__cancelButton.setMinimumHeight(20) self.__cancelButton.setMinimumWidth(100) self.__layout.addWidget(self.__okButton, 100, 1) self.__layout.addWidget(self.__cancelButton, 100, 2) label = QLabel(QCoreApplication.translate("VDLTools", "Job : ")) label.setMinimumHeight(20) label.setMinimumWidth(50) self.__layout.addWidget(label, 0, 1) self.__jobCombo = QComboBox() self.__jobCombo.setMinimumHeight(20) self.__jobCombo.setMinimumWidth(50) self.__jobCombo.addItem("") for job in self.__jobs: self.__jobCombo.addItem(job) self.__layout.addWidget(self.__jobCombo, 0, 2) self.__jobCombo.currentIndexChanged.connect(self.__jobComboChanged) self.setLayout(self.__layout) def __jobComboChanged(self): """ When the selected job has changed """ if self.__pointCombo.itemText(0) == "": self.__pointCombo.removeItem(0) def okButton(self): """ To get the ok button instance :return: ok button instance """ return self.__okButton def cancelButton(self): """ To get the cancel button instance :return: cancel button instance """ return self.__cancelButton def job(self): """ To get the selected job :return: selected job """ index = self.__jobCombo.currentIndex() if self.__jobCombo.itemText(index) == "": return None else: return self.__jobs[index]
def __init__(self, parent): QFrame.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("WindPanel" + str(len(parent.findChildren(WindPanel)))) # self.frame_WindIA = QFrame(parent) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.setFrameShape(QFrame.StyledPanel) self.setFrameShadow(QFrame.Raised) self.setObjectName(("frame_WindIA")) self.hLayout = QHBoxLayout(self) self.hLayout.setSpacing(0) self.hLayout.setMargin(0) self.hLayout.setObjectName(("hLayout")) self.basicFrame = Frame(self, "HL") self.hLayout.addWidget(self.basicFrame) self.lblIA = QLabel(self.basicFrame) self.lblIA.setMinimumSize(QSize(200, 0)) self.lblIA.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lblIA.setFont(font) self.lblIA.setObjectName(("lblIA")) self.basicFrame.Add = self.lblIA self.comboBox = QComboBox(self.basicFrame) # sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.comboBox.sizePolicy().hasHeightForWidth()) # self.comboBox.setSizePolicy(sizePolicy) # self.comboBox.setMinimumSize(QSize(60, 0)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.comboBox.setFont(font) self.comboBox.setObjectName(("comboBox")) self.basicFrame.Add = self.comboBox self.speedBox = QLineEdit(self.basicFrame) # sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.speedBox.sizePolicy().hasHeightForWidth()) # self.speedBox.setSizePolicy(sizePolicy) # self.speedBox.setMinimumSize(QSize(70, 0)) # self.speedBox.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.speedBox.setFont(font) self.speedBox.setObjectName(("speedBox")) self.speedBox.setMinimumSize(QSize(60, 0)) self.speedBox.setMaximumSize(QSize(60, 16777215)) self.basicFrame.Add = self.speedBox spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) self.basicFrame.layoutBoxPanel.addItem(spacerItem) self.altitude = Altitude.NaN() self.customValue = Speed(30).Knots self.comboBox.addItems(["ICAO", "UK", "Custom"]) self.comboBox.currentIndexChanged.connect(self.changeWindType) self.comboBox.setCurrentIndex(0) self.lblIA.setText("Wind (kts):") self.speedBox.setEnabled(False)
def __init__(self): self.techniquesClass = { 'caesar cipher': caesarCipher, 'mono alphabetic cipher': monoAlphabeticCipher, 'vigenere cipher': vigenereCipher, 'vernan cipher': vernanCipher, 'one time pad': oneTimePad } self.rowsview = [] self.filesview = [] self.techniques = [] QDialog.__init__(self) self.setWindowTitle("CryptoSystems") self.resize(1024, 600) self.setMinimumSize(QSize(1024, 600)) self.setMaximumSize(QSize(1024, 600)) self.checkBox_2 = QCheckBox(self) self.checkBox_2.setGeometry(QRect(620, 10, 130, 20)) self.checkBox_2.setText('Select All') self.checkBox_2.clicked.connect(self.__selectAllFiles) self.treeView = QTreeView(self) self.treeView.setGeometry(QRect(10, 10, 230, 580)) self.treeView.setObjectName("treeView") self.fileSystemModel = QFileSystemModel(self.treeView) self.fileSystemModel.setReadOnly(False) self.fileSystemModel.setFilter(QDir.AllDirs | QDir.NoDotAndDotDot) root = self.fileSystemModel.setRootPath("/") self.treeView.setModel(self.fileSystemModel) self.treeView.setRootIndex(root) self.treeView.hideColumn(1) self.treeView.hideColumn(2) self.treeView.hideColumn(3) self.treeView.clicked.connect(self.__eventDirectoryChanged) self.mygroupbox = QGroupBox(self) self.mygroupbox.setGeometry(QRect(0, 0, 1000, 1000)) self.myform = QFormLayout() for j in list(range(100)): horizontalLayout = QHBoxLayout() self.myform.addRow(horizontalLayout) self.rowsview.append(horizontalLayout) self.mygroupbox.setLayout(self.myform) scroll = QScrollArea(self) scroll.setWidget(self.mygroupbox) scroll.setWidgetResizable(True) scroll.setGeometry(QRect(250, 30, 500, 580)) scroll.setWidgetResizable(True) self.label_4 = QLabel(self) self.label_4.setGeometry(QRect(780, 30, 31, 16)) self.label_4.setPixmap(QPixmap("images/key.png")) self.label_4.setScaledContents(True) self.lineEdit = QLineEdit(self) self.lineEdit.setGeometry(QRect(820, 30, 180, 20)) self.lineEdit.setObjectName("lineEdit") self.lineEdit.setPlaceholderText(_fromUtf8('write your password')) self.lineEdit.setEchoMode(QLineEdit.Password) self.techniquesGroup = QGroupBox(self) self.tecniquesform = QFormLayout() self.techniquesGroup.setLayout(self.tecniquesform) self.techniquesScroll = QScrollArea(self) self.techniquesScroll.setGeometry(QRect(770, 100, 230, 300)) self.techniquesScroll.setWidget(self.techniquesGroup) self.techniquesScroll.setWidgetResizable(True) self.rowsTechiques = [] for i in list(range(8)): horizontalLayout = QHBoxLayout() self.tecniquesform.addRow(horizontalLayout) self.rowsTechiques.append(horizontalLayout) techniquesCombo = QComboBox() techniquesCombo.setGeometry(QRect(10, 50, 171, 22)) techniquesCombo.addItems(self.techniquesClass.keys()) self.techniques.append(techniquesCombo) self.rowsTechiques[0].addWidget(techniquesCombo) self.techniquesNumber = 1 self.addTechnique = QPushButton() self.addTechnique.setGeometry(QRect(90, 90, 31, 21)) self.addTechnique.setFixedSize(31, 21) self.addTechnique.setText('+') self.connect(self.addTechnique, SIGNAL("clicked()"), self.__eventAddTechnique) self.rowsTechiques[len(self.rowsTechiques) - 1].addWidget( self.addTechnique) self.okButton = QPushButton(self) self.okButton.setGeometry(QRect(920, 560, 80, 20)) self.okButton.setText('Start...') self.connect(self.okButton, SIGNAL("clicked()"), self.__eventInitEncryption)
class OWImpute(OWWidget): name = "Impute" description = "Imputes missing values in the data table." icon = "icons/Impute.svg" priority = 2130 inputs = [("Data", Orange.data.Table, "set_data"), ("Learner", Orange.classification.Fitter, "set_fitter")] outputs = [("Data", Orange.data.Table)] METHODS = METHODS settingsHandler = settings.DomainContextHandler() default_method = settings.Setting(1) variable_methods = settings.ContextSetting({}) autocommit = settings.Setting(True) want_main_area = False def __init__(self, parent=None): super().__init__(parent) self.modified = False box = group_box(self.tr("Default method"), layout=layout(Qt.Vertical)) self.controlArea.layout().addWidget(box) bgroup = QButtonGroup() for i, m in enumerate(self.METHODS[1:-1], 1): b = radio_button(m.name, checked=i == self.default_method, group=bgroup, group_id=i) box.layout().addWidget(b) self.defbggroup = bgroup bgroup.buttonClicked[int].connect(self.set_default_method) box = group_box(self.tr("Individual attribute settings"), layout=layout(Qt.Horizontal)) self.controlArea.layout().addWidget(box) self.varview = QtGui.QListView( selectionMode=QtGui.QListView.ExtendedSelection) self.varview.setItemDelegate(DisplayFormatDelegate()) self.varmodel = itemmodels.VariableListModel() self.varview.setModel(self.varmodel) self.varview.selectionModel().selectionChanged.connect( self._on_var_selection_changed) self.selection = self.varview.selectionModel() box.layout().addWidget(self.varview) method_layout = layout(Qt.Vertical, margins=0) box.layout().addLayout(method_layout) methodbox = group_box(layout=layout(Qt.Vertical)) bgroup = QButtonGroup() for i, m in enumerate(self.METHODS): b = radio_button(m.name, group=bgroup, group_id=i) methodbox.layout().addWidget(b) assert self.METHODS[-1].short == "value" self.value_stack = value_stack = QStackedLayout() self.value_combo = QComboBox(activated=self._on_value_changed) self.value_line = QLineEdit(editingFinished=self._on_value_changed) self.value_line.setValidator(QDoubleValidator()) value_stack.addWidget(self.value_combo) value_stack.addWidget(self.value_line) methodbox.layout().addLayout(value_stack) bgroup.buttonClicked[int].connect( self.set_method_for_current_selection) reset_button = push_button("Restore all to default", clicked=self.reset_var_methods, default=False, autoDefault=False) method_layout.addWidget(methodbox) method_layout.addStretch(2) method_layout.addWidget(reset_button) self.varmethodbox = methodbox self.varbgroup = bgroup commitbox = group_box("Commit", layout=layout(margins=0)) cwidget = commit_widget(button_text="Commit", button_default=True, check_text="Commit on any change", checked=self.autocommit, clicked=self.commit) def toggle_auto_commit(b): self.autocommit = b if self.modified: self.commit() cwidget.auto_commit_check.toggled[bool].connect(toggle_auto_commit) commitbox.layout().addWidget(cwidget) self.addAction(cwidget.commit_action) self.controlArea.layout().addWidget(commitbox) self.data = None self.fitter = None def set_default_method(self, index): """ Set the current selected default imputation method. """ if self.default_method != index: self.default_method = index self.defbggroup.button(index).setChecked(True) self._invalidate() def set_data(self, data): self.closeContext() self.clear() self.data = data if data is not None: self.varmodel[:] = data.domain.variables self.openContext(data.domain) self.restore_state(self.variable_methods) itemmodels.select_row(self.varview, 0) self.commit() def set_fitter(self, fitter): self.fitter = fitter if self.data is not None and \ any(state.model.short == "model" for state in map(self.state_for_column, range(len(self.data.domain)))): self.commit() def restore_state(self, state): for i, var in enumerate(self.varmodel): key = variable_key(var) if key in state: index = self.varmodel.index(i) self.varmodel.setData(index, state[key], Qt.UserRole) def clear(self): self.varmodel[:] = [] self.variable_methods = {} self.data = None self.modified = False def state_for_column(self, column): """ #:: int -> State Return the effective imputation state for `column`. :param int column: :rtype State: """ var = self.varmodel[column] state = self.variable_methods.get(variable_key(var), None) if state is None or state.method == METHODS[0]: state = State(METHODS[self.default_method], ()) return state def imputer_for_column(self, column): state = self.state_for_column(column) data = self.data var = data.domain[column] method, params = state if method.short == "leave": return None elif method.short == "avg": return column_imputer_average(var, data) elif method.short == "model": fitter = self.fitter if self.fitter is not None else MeanFitter() return column_imputer_by_model(var, data, fitter=fitter) elif method.short == "random": return column_imputer_random(var, data) elif method.short == "value": return column_imputer_defaults(var, data, float(params[0])) elif method.short == "as_value": return column_imputer_as_value(var, data) else: assert False def commit(self): if self.data is not None: states = [ self.state_for_column(i) for i in range(len(self.varmodel)) ] # Columns to filter unknowns by dropping rows. filter_columns = [ i for i, state in enumerate(states) if state.method.short == "drop" ] impute_columns = [ i for i, state in enumerate(states) if state.method.short not in ["drop", "leave"] ] imputers = [(self.varmodel[i], self.imputer_for_column(i)) for i in impute_columns] data = self.data if imputers: table_imputer = ImputerModel(data.domain, dict(imputers)) data = table_imputer(data) if filter_columns: filter_ = data_filter.IsDefined(filter_columns) data = filter_(data) else: data = None self.send("Data", data) self.modified = False def _invalidate(self): self.modified = True if self.autocommit: self.commit() def _on_var_selection_changed(self): indexes = self.selection.selectedIndexes() vars = [self.varmodel[index.row()] for index in indexes] defstate = State(METHODS[0], ()) states = [ self.variable_methods.get(variable_key(var), defstate) for var in vars ] all_cont = all( isinstance(var, Orange.data.ContinuousVariable) for var in vars) states = list(unique(states)) method = None params = () state = None if len(states) == 1: state = states[0] method, params = state mindex = METHODS.index(method) self.varbgroup.button(mindex).setChecked(True) elif self.varbgroup.checkedButton() is not None: self.varbgroup.setExclusive(False) self.varbgroup.checkedButton().setChecked(False) self.varbgroup.setExclusive(True) values, enabled, stack_index = [], False, 0 value, value_index = "0.0", 0 if all_cont: enabled, stack_index = True, 1 if method is not None and method.short == "value": value = params[0] elif len(vars) == 1 and \ isinstance(vars[0], Orange.data.DiscreteVariable): values, enabled, stack_index = vars[0].values, True, 0 if method is not None and method.short == "value": try: value_index = values.index(params[0]) except IndexError: pass self.value_stack.setCurrentIndex(stack_index) self.value_stack.setEnabled(enabled) if stack_index == 0: self.value_combo.clear() self.value_combo.addItems(values) self.value_combo.setCurrentIndex(value_index) else: self.value_line.setText(value) def _on_value_changed(self): # The "fixed" value in the widget has been changed by the user. index = self.varbgroup.checkedId() self.set_method_for_current_selection(index) def set_method_for_current_selection(self, methodindex): indexes = self.selection.selectedIndexes() self.set_method_for_indexes(indexes, methodindex) def set_method_for_indexes(self, indexes, methodindex): method = METHODS[methodindex] params = (None, ) if method.short == "value": if self.value_stack.currentIndex() == 0: value = self.value_combo.currentIndex() else: value = self.value_line.text() params = (value, ) elif method.short == "model": params = ("model", ) state = State(method, params) for index in indexes: self.varmodel.setData(index, state, Qt.UserRole) var = self.varmodel[index.row()] self.variable_methods[variable_key(var)] = state self._invalidate() def reset_var_methods(self): indexes = map(self.varmodel.index, range(len(self.varmodel))) self.set_method_for_indexes(indexes, 0)
class WindPanel(QFrame): def __init__(self, parent): QFrame.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("WindPanel" + str(len(parent.findChildren(WindPanel)))) # self.frame_WindIA = QFrame(parent) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizePolicy) self.setFrameShape(QFrame.StyledPanel) self.setFrameShadow(QFrame.Raised) self.setObjectName(("frame_WindIA")) self.hLayout = QHBoxLayout(self) self.hLayout.setSpacing(0) self.hLayout.setMargin(0) self.hLayout.setObjectName(("hLayout")) self.basicFrame = Frame(self, "HL") self.hLayout.addWidget(self.basicFrame) self.lblIA = QLabel(self.basicFrame) self.lblIA.setMinimumSize(QSize(200, 0)) self.lblIA.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lblIA.setFont(font) self.lblIA.setObjectName(("lblIA")) self.basicFrame.Add = self.lblIA self.comboBox = QComboBox(self.basicFrame) # sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.comboBox.sizePolicy().hasHeightForWidth()) # self.comboBox.setSizePolicy(sizePolicy) # self.comboBox.setMinimumSize(QSize(60, 0)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.comboBox.setFont(font) self.comboBox.setObjectName(("comboBox")) self.basicFrame.Add = self.comboBox self.speedBox = QLineEdit(self.basicFrame) # sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.speedBox.sizePolicy().hasHeightForWidth()) # self.speedBox.setSizePolicy(sizePolicy) # self.speedBox.setMinimumSize(QSize(70, 0)) # self.speedBox.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.speedBox.setFont(font) self.speedBox.setObjectName(("speedBox")) self.speedBox.setMinimumSize(QSize(60, 0)) self.speedBox.setMaximumSize(QSize(60, 16777215)) self.basicFrame.Add = self.speedBox spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) self.basicFrame.layoutBoxPanel.addItem(spacerItem) self.altitude = Altitude.NaN() self.customValue = Speed(30).Knots self.comboBox.addItems(["ICAO", "UK", "Custom"]) self.comboBox.currentIndexChanged.connect(self.changeWindType) self.comboBox.setCurrentIndex(0) self.lblIA.setText("Wind (kts):") self.speedBox.setEnabled(False) def setAltitude(self, value): self.altitude = value self.method_5() # def getValue(self, SpeedUnits_0 = SpeedUnits.KTS): # return Speed(float(self.speedBox.text()), SpeedUnits_0) def method_3(self, altitude_0): altitude = Altitude(float(self.speedBox.text()), AltitudeUnits.FT) if (self.comboBox.currentIndex() != 0): return altitude return Altitude(altitude.Feet - altitude_0.Feet, AltitudeUnits.FT) def method_5(self): if self.comboBox.currentIndex() == 0: self.speedBox.setText( str(round(Speed.smethod_1(self.altitude).Knots, 1))) elif self.comboBox.currentIndex() == 1: self.speedBox.setText( str(round(Speed.smethod_2(self.altitude).Knots, 1))) else: self.speedBox.setText(str(self.customValue)) if self.comboBox.currentIndex() != 2: self.speedBox.setEnabled(False) else: self.speedBox.setEnabled(True) def changeWindType(self): self.method_5() def method_7(self, string_0): # object[] string0 = new object[] { string_0, this.captionLabel.Caption, this.speedBox.ToString(), this.comboBox.Items[this.comboBox.SelectedIndex] }; return "%s%s\t%s (%s)" % (string_0, "Wind: ", self.speedBox.text(), self.comboBox.currentText()) def set_LabelWidth(self, width): self.lblIA.setMinimumSize(QSize(width, 0)) self.lblIA.setMaximumSize(QSize(width, 16777215)) LabelWidth = property(None, set_LabelWidth, None, None) def get_speed(self): try: return Speed(float(self.speedBox.text())) except: return None Value = property(get_speed, None, None, None) def get_isEmpty(self): try: num = float(self.speedBox.text()) return False except: return True IsEmpty = property(get_isEmpty, None, None, None) def get_Visible(self): return self.isVisible() def set_Visible(self, bool): self.setVisible(bool) Visible = property(get_Visible, set_Visible, None, None)
class NewOrEditOfficeViewWidget(QDialog, FWidget): def __init__(self, pp=None, owner=None, parent=None, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.setWindowTitle(u"Nouvel Organisation") self.parent = parent vbox = QVBoxLayout() self.office_group_box() vbox.addWidget(self.organGroupBoxBtt) self.setLayout(vbox) def office_group_box(self): self.organGroupBoxBtt = QGroupBox( self.tr("Configuration des localités")) self.office_box = QComboBox() self.office_box.currentIndexChanged.connect(self.change_select_office) self.office_list = get_offices() self.region_box = QComboBox() self.region_label = FLabel() self.cercle_label = FLabel() self.phone_field = IntLineEdit() self.phone_field.setInputMask('## ## ## ##') self.bp = LineEdit() self.adress_org = QTextEdit() self.email_org = LineEdit() for index, value in enumerate(self.office_list): self.office_box.addItem("{}".format(office_name(value)), value) formbox = QFormLayout() formbox.addRow(FormLabel(u"Nom service :"), self.office_box) formbox.addRow(FormLabel(u"Région"), self.region_label) formbox.addRow(FormLabel(u"Cercle"), self.cercle_label) formbox.addRow(FormLabel(u"Tel :"), self.phone_field) formbox.addRow(FormLabel(u"B.P :"), self.bp) formbox.addRow(FormLabel(u"E-mail :"), self.email_org) formbox.addRow(FormLabel(u"Adresse complete :"), self.adress_org) butt = Button_save(u"Enregistrer") butt.clicked.connect(self.save_edit) formbox.addRow("", butt) self.organGroupBoxBtt.setLayout(formbox) def change_select_office(self): select_o = self.office_box.itemData(self.office_box.currentIndex()) self.r_select = office_region(select_o) self.c_select = office_cercle(select_o) self.region_label.setText(get_entity_name(self.r_select)) self.cercle_label.setText(get_entity_name(self.c_select)) def is_valide(self): if check_is_empty(self.phone_field): return False return True def save_edit(self): ''' add operation ''' if not self.is_valide(): return office = Office() office.slug = self.office_box.itemData(self.office_box.currentIndex()) office.slug_region = self.r_select office.slug_cercle = self.c_select office.phone = is_int(self.phone_field.text()) office.email_org = str(self.email_org.text()) office.bp = str(self.bp.text()) office.adress_org = str(self.adress_org.toPlainText()) office.save_() self.accept()
class EditorConfiguration(QWidget): """EditorConfiguration widget class""" def __init__(self, parent): super(EditorConfiguration, self).__init__() self._preferences, vbox = parent, QVBoxLayout(self) # groups group1 = QGroupBox(translations.TR_PREFERENCES_EDITOR_CONFIG_INDENT) group2 = QGroupBox(translations.TR_PREFERENCES_EDITOR_CONFIG_MARGIN) group3 = QGroupBox(translations.TR_LINT_DIRTY_TEXT) group4 = QGroupBox(translations.TR_PEP8_DIRTY_TEXT) group5 = QGroupBox(translations.TR_HIGHLIGHTER_EXTRAS) group6 = QGroupBox(translations.TR_TYPING_ASSISTANCE) group7 = QGroupBox(translations.TR_DISPLAY_ERRORS) # groups container container_widget_with_all_preferences = QWidget() formFeatures = QGridLayout(container_widget_with_all_preferences) # Indentation hboxg1 = QHBoxLayout(group1) hboxg1.setContentsMargins(5, 15, 5, 5) self._spin, self._checkUseTabs = QSpinBox(), QComboBox() self._spin.setRange(1, 10) self._spin.setValue(settings.INDENT) hboxg1.addWidget(self._spin) self._checkUseTabs.addItems([ translations.TR_PREFERENCES_EDITOR_CONFIG_SPACES.capitalize(), translations.TR_PREFERENCES_EDITOR_CONFIG_TABS.capitalize() ]) self._checkUseTabs.setCurrentIndex(int(settings.USE_TABS)) hboxg1.addWidget(self._checkUseTabs) formFeatures.addWidget(group1, 0, 0) # Margin Line hboxg2 = QHBoxLayout(group2) hboxg2.setContentsMargins(5, 15, 5, 5) self._checkShowMargin = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_MARGIN_LINE) self._checkShowMargin.setChecked(settings.SHOW_MARGIN_LINE) hboxg2.addWidget(self._checkShowMargin) self._spinMargin = QSpinBox() self._spinMargin.setRange(50, 100) self._spinMargin.setSingleStep(2) self._spinMargin.setValue(settings.MARGIN_LINE) hboxg2.addWidget(self._spinMargin) hboxg2.addWidget(QLabel(translations.TR_CHARACTERS)) formFeatures.addWidget(group2, 0, 1) # Display Errors hboxDisplay = QHBoxLayout(group7) hboxDisplay.setContentsMargins(5, 15, 5, 5) self._checkHighlightLine = QComboBox() self._checkHighlightLine.addItems([ translations.TR_PREFERENCES_EDITOR_CONFIG_ERROR_USE_BACKGROUND, translations.TR_PREFERENCES_EDITOR_CONFIG_ERROR_USE_UNDERLINE ]) self._checkHighlightLine.setCurrentIndex( int(settings.UNDERLINE_NOT_BACKGROUND)) hboxDisplay.addWidget(self._checkHighlightLine) formFeatures.addWidget(group7, 1, 0, 1, 0) # Find Lint Errors (highlighter) vboxg3 = QVBoxLayout(group3) self._checkErrors = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_FIND_ERRORS) self._checkErrors.setChecked(settings.FIND_ERRORS) self.connect(self._checkErrors, SIGNAL("stateChanged(int)"), self._disable_show_errors) self._showErrorsOnLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TOOLTIP_ERRORS) self._showErrorsOnLine.setChecked(settings.ERRORS_HIGHLIGHT_LINE) self.connect(self._showErrorsOnLine, SIGNAL("stateChanged(int)"), self._enable_errors_inline) vboxg3.addWidget(self._checkErrors) vboxg3.addWidget(self._showErrorsOnLine) formFeatures.addWidget(group3, 2, 0) # Find PEP8 Errors (highlighter) vboxg4 = QVBoxLayout(group4) vboxg4.setContentsMargins(5, 15, 5, 5) self._checkStyle = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_PEP8) self._checkStyle.setChecked(settings.CHECK_STYLE) self.connect(self._checkStyle, SIGNAL("stateChanged(int)"), self._disable_check_style) vboxg4.addWidget(self._checkStyle) self._checkStyleOnLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TOOLTIP_PEP8) self._checkStyleOnLine.setChecked(settings.CHECK_HIGHLIGHT_LINE) self.connect(self._checkStyleOnLine, SIGNAL("stateChanged(int)"), self._enable_check_inline) vboxg4.addWidget(self._checkStyleOnLine) formFeatures.addWidget(group4, 2, 1) # Show Python3 Migration, DocStrings and Spaces (highlighter) vboxg5 = QVBoxLayout(group5) vboxg5.setContentsMargins(5, 15, 5, 5) self._showMigrationTips = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_MIGRATION) self._showMigrationTips.setChecked(settings.SHOW_MIGRATION_TIPS) vboxg5.addWidget(self._showMigrationTips) self._checkForDocstrings = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_CHECK_FOR_DOCSTRINGS) self._checkForDocstrings.setChecked(settings.CHECK_FOR_DOCSTRINGS) vboxg5.addWidget(self._checkForDocstrings) self._checkShowSpaces = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TABS_AND_SPACES) self._checkShowSpaces.setChecked(settings.SHOW_TABS_AND_SPACES) vboxg5.addWidget(self._checkShowSpaces) formFeatures.addWidget(group5, 3, 0) # End of line, Center On Scroll, Trailing space, Word wrap vboxg6 = QVBoxLayout(group6) vboxg6.setContentsMargins(5, 15, 5, 5) self._checkEndOfLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_END_OF_LINE) self._checkEndOfLine.setChecked(settings.USE_PLATFORM_END_OF_LINE) vboxg6.addWidget(self._checkEndOfLine) self._checkCenterScroll = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_CENTER_SCROLL) self._checkCenterScroll.setChecked(settings.CENTER_ON_SCROLL) vboxg6.addWidget(self._checkCenterScroll) self._checkTrailing = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_REMOVE_TRAILING) self._checkTrailing.setChecked(settings.REMOVE_TRAILING_SPACES) vboxg6.addWidget(self._checkTrailing) self._allowWordWrap = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_WORD_WRAP) self._allowWordWrap.setChecked(settings.ALLOW_WORD_WRAP) vboxg6.addWidget(self._allowWordWrap) formFeatures.addWidget(group6, 3, 1) # pack all the groups vbox.addWidget(container_widget_with_all_preferences) vbox.addItem( QSpacerItem(0, 10, QSizePolicy.Expanding, QSizePolicy.Expanding)) self.connect(self._preferences, SIGNAL("savePreferences()"), self.save) def _enable_check_inline(self, val): """Method that takes a value to enable the inline style checking""" if val == Qt.Checked: self._checkStyle.setChecked(True) def _enable_errors_inline(self, val): """Method that takes a value to enable the inline errors checking""" if val == Qt.Checked: self._checkErrors.setChecked(True) def _disable_check_style(self, val): """Method that takes a value to disable the inline style checking""" if val == Qt.Unchecked: self._checkStyleOnLine.setChecked(False) def _disable_show_errors(self, val): """Method that takes a value to disable the inline errors checking""" if val == Qt.Unchecked: self._showErrorsOnLine.setChecked(False) def save(self): """Method to save settings""" qsettings = IDE.ninja_settings() settings.USE_TABS = bool(self._checkUseTabs.currentIndex()) qsettings.setValue('preferences/editor/useTabs', settings.USE_TABS) margin_line = self._spinMargin.value() settings.MARGIN_LINE = margin_line settings.pep8mod_update_margin_line_length(margin_line) qsettings.setValue('preferences/editor/marginLine', margin_line) settings.SHOW_MARGIN_LINE = self._checkShowMargin.isChecked() qsettings.setValue('preferences/editor/showMarginLine', settings.SHOW_MARGIN_LINE) settings.INDENT = self._spin.value() qsettings.setValue('preferences/editor/indent', settings.INDENT) endOfLine = self._checkEndOfLine.isChecked() settings.USE_PLATFORM_END_OF_LINE = endOfLine qsettings.setValue('preferences/editor/platformEndOfLine', endOfLine) settings.UNDERLINE_NOT_BACKGROUND = \ bool(self._checkHighlightLine.currentIndex()) qsettings.setValue('preferences/editor/errorsUnderlineBackground', settings.UNDERLINE_NOT_BACKGROUND) settings.FIND_ERRORS = self._checkErrors.isChecked() qsettings.setValue('preferences/editor/errors', settings.FIND_ERRORS) settings.ERRORS_HIGHLIGHT_LINE = self._showErrorsOnLine.isChecked() qsettings.setValue('preferences/editor/errorsInLine', settings.ERRORS_HIGHLIGHT_LINE) settings.CHECK_STYLE = self._checkStyle.isChecked() qsettings.setValue('preferences/editor/checkStyle', settings.CHECK_STYLE) settings.SHOW_MIGRATION_TIPS = self._showMigrationTips.isChecked() qsettings.setValue('preferences/editor/showMigrationTips', settings.SHOW_MIGRATION_TIPS) settings.CHECK_HIGHLIGHT_LINE = self._checkStyleOnLine.isChecked() qsettings.setValue('preferences/editor/checkStyleInline', settings.CHECK_HIGHLIGHT_LINE) settings.CENTER_ON_SCROLL = self._checkCenterScroll.isChecked() qsettings.setValue('preferences/editor/centerOnScroll', settings.CENTER_ON_SCROLL) settings.REMOVE_TRAILING_SPACES = self._checkTrailing.isChecked() qsettings.setValue('preferences/editor/removeTrailingSpaces', settings.REMOVE_TRAILING_SPACES) settings.ALLOW_WORD_WRAP = self._allowWordWrap.isChecked() qsettings.setValue('preferences/editor/allowWordWrap', settings.ALLOW_WORD_WRAP) settings.SHOW_TABS_AND_SPACES = self._checkShowSpaces.isChecked() qsettings.setValue('preferences/editor/showTabsAndSpaces', settings.SHOW_TABS_AND_SPACES) settings.CHECK_FOR_DOCSTRINGS = self._checkForDocstrings.isChecked() qsettings.setValue('preferences/editor/checkForDocstrings', settings.CHECK_FOR_DOCSTRINGS) if settings.USE_TABS: settings.pep8mod_add_ignore("W191") else: settings.pep8mod_remove_ignore("W191") settings.pep8mod_refresh_checks()
class XViewProfileManager(QWidget): currentProfileChanged = qt.Signal(qt.PyObject) optionsMenuRequested = qt.Signal(QPoint) def __init__(self, parent=None): super(XViewProfileManager, self).__init__(parent) # define custom properties self._profiles = [] self._optionsMenuPolicy = Qt.DefaultContextMenu self._viewWidget = None # define the interface self._profileCombo = QComboBox(self) self._optionsButton = QToolButton(self) self._optionsButton.setAutoRaise(True) self._optionsButton.setToolTip('Advanced Options') self._optionsButton.setIcon(QIcon(resources.find('img/advanced.png'))) layout = QHBoxLayout() layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self._profileCombo) layout.addWidget(self._optionsButton) self.setLayout(layout) # create connections self._profileCombo.currentIndexChanged.connect( self.handleProfileChange) self._optionsButton.clicked.connect(self.showOptionsMenu) def addProfile(self, profile): """ Adds the inputed profile to the system. :param profile | <XViewProfile> """ if (profile in self._profiles): return self._profiles.append(profile) self._profileCombo.blockSignals(True) self._profileCombo.addItem(profile.name()) self._profileCombo.setCurrentIndex(self._profileCombo.count() - 1) self._profileCombo.blockSignals(False) def currentProfile(self): """ Returns the currently selected profile from the system. :return <XViewProfile> """ index = self._profileCombo.currentIndex() if (0 <= index and index < len(self._profiles)): return self._profiles[index] return None def handleProfileChange(self): """ Emits that the current profile has changed. """ # restore the profile settings prof = self.currentProfile() vwidget = self.viewWidget() if (vwidget): prof.restore(vwidget) if (not self.signalsBlocked()): self.currentProfileChanged.emit(self.currentProfile()) def optionsMenuPolicy(self): """ Returns the option menu policy for this widget. :return <Qt.MenuPolicy> """ return self._optionsMenuPolicy def profiles(self): """ Returns a list of all the profiles for this system. :return [<XViewProfile>, ..] """ return self._profiles def removeProfile(self, profile): """ Adds the inputed profile to the system. :param profile | <XViewProfile> """ if (not profile in self._profiles): return index = self._profiles.index(profile) self._profiles.remove(profile) self._profileCombo.blockSignals(True) self._profileCombo.takeItem(index) self._profileCombo.blockSignals(False) def restoreSettings(self, settings): """ Restores settings from the application. :param settings | <QSettings> """ settings.beginGroup(self.objectName()) curr_prof = None curr_name = qt.unwrapVariant(settings.value('current')) profiles = [] for prof_name in settings.childGroups(): settings.beginGroup(prof_name) prof_str = qt.unwrapVariant(settings.value('profile')) profile = XViewProfile.fromString(prof_str) profile.setName(prof_name) if (prof_name == curr_name): curr_prof = profile profiles.append(profile) settings.endGroup() self.blockSignals(True) self._profileCombo.blockSignals(True) self.setProfiles(profiles) if (curr_prof): self.setCurrentProfile(curr_prof) self._profileCombo.blockSignals(False) self.blockSignals(False) settings.endGroup() def saveSettings(self, settings): """ Saves the settings for this widget to the application :param settings | <QSettings> """ settings.beginGroup(self.objectName()) curr_prof = self.currentProfile() if (curr_prof): settings.setValue('current', curr_prof.name()) for profile in self.profiles(): settings.beginGroup(profile.name()) settings.setValue('profile', qt.wrapVariant(profile.toString())) settings.endGroup() settings.endGroup() def setCurrentProfile(self, profile): """ Sets the current profile to the inputed profile. :param profile | <XViewProfile> """ try: index = self._profiles.index(profile) except ValueError: index = -1 self._profileCombo.setCurrentIndex(index) def setOptionsMenuPolicy(self, menuPolicy): """ Sets the options menu policy for this item. :param menuPolicy | <Qt.MenuPolicy> """ self._optionsMenuPolicy = menuPolicy def setProfiles(self, profiles): """ Sets a list of profiles to be the options for the manager. :param profiles | [<XViewProfile>, ..] """ self.blockSignals(True) self._profileCombo.blockSignals(True) self._profiles = profiles[:] self._profileCombo.clear() self._profileCombo.addItems(map(lambda x: x.name(), profiles)) self._profileCombo.blockSignals(False) self.blockSignals(False) def setViewWidget(self, viewWidget): """ Sets the view widget instance linked with this manager. :param viewWidget | <XViewWidget> """ self._viewWidget = viewWidget def showOptionsMenu(self): """ Displays the options menu. If the option menu policy is set to CustomContextMenu, then the optionMenuRequested signal will be emitted, otherwise the default context menu will be displayed. """ point = QPoint(0, self._optionsButton.height()) global_point = self._optionsButton.mapToGlobal(point) # prompt the custom context menu if (self.optionsMenuPolicy() == Qt.CustomContextMenu): if (not self.signalsBlocked()): self.optionsMenuRequested.emit(global_point) return # use the default context menu menu = XViewProfileManagerMenu(self) menu.exec_(global_point) def viewWidget(self): """ Returns the view widget that is associated with this manager. :return <XViewWidget> """ return self._viewWidget
def __init__(self, parent): super(EditorConfiguration, self).__init__() self._preferences, vbox = parent, QVBoxLayout(self) # groups group1 = QGroupBox(translations.TR_PREFERENCES_EDITOR_CONFIG_INDENT) group2 = QGroupBox(translations.TR_PREFERENCES_EDITOR_CONFIG_MARGIN) group3 = QGroupBox(translations.TR_LINT_DIRTY_TEXT) group4 = QGroupBox(translations.TR_PEP8_DIRTY_TEXT) group5 = QGroupBox(translations.TR_HIGHLIGHTER_EXTRAS) group6 = QGroupBox(translations.TR_TYPING_ASSISTANCE) group7 = QGroupBox(translations.TR_DISPLAY_ERRORS) # groups container container_widget_with_all_preferences = QWidget() formFeatures = QGridLayout(container_widget_with_all_preferences) # Indentation hboxg1 = QHBoxLayout(group1) hboxg1.setContentsMargins(5, 15, 5, 5) self._spin, self._checkUseTabs = QSpinBox(), QComboBox() self._spin.setRange(1, 10) self._spin.setValue(settings.INDENT) hboxg1.addWidget(self._spin) self._checkUseTabs.addItems([ translations.TR_PREFERENCES_EDITOR_CONFIG_SPACES.capitalize(), translations.TR_PREFERENCES_EDITOR_CONFIG_TABS.capitalize() ]) self._checkUseTabs.setCurrentIndex(int(settings.USE_TABS)) hboxg1.addWidget(self._checkUseTabs) formFeatures.addWidget(group1, 0, 0) # Margin Line hboxg2 = QHBoxLayout(group2) hboxg2.setContentsMargins(5, 15, 5, 5) self._checkShowMargin = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_MARGIN_LINE) self._checkShowMargin.setChecked(settings.SHOW_MARGIN_LINE) hboxg2.addWidget(self._checkShowMargin) self._spinMargin = QSpinBox() self._spinMargin.setRange(50, 100) self._spinMargin.setSingleStep(2) self._spinMargin.setValue(settings.MARGIN_LINE) hboxg2.addWidget(self._spinMargin) hboxg2.addWidget(QLabel(translations.TR_CHARACTERS)) formFeatures.addWidget(group2, 0, 1) # Display Errors hboxDisplay = QHBoxLayout(group7) hboxDisplay.setContentsMargins(5, 15, 5, 5) self._checkHighlightLine = QComboBox() self._checkHighlightLine.addItems([ translations.TR_PREFERENCES_EDITOR_CONFIG_ERROR_USE_BACKGROUND, translations.TR_PREFERENCES_EDITOR_CONFIG_ERROR_USE_UNDERLINE ]) self._checkHighlightLine.setCurrentIndex( int(settings.UNDERLINE_NOT_BACKGROUND)) hboxDisplay.addWidget(self._checkHighlightLine) formFeatures.addWidget(group7, 1, 0, 1, 0) # Find Lint Errors (highlighter) vboxg3 = QVBoxLayout(group3) self._checkErrors = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_FIND_ERRORS) self._checkErrors.setChecked(settings.FIND_ERRORS) self.connect(self._checkErrors, SIGNAL("stateChanged(int)"), self._disable_show_errors) self._showErrorsOnLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TOOLTIP_ERRORS) self._showErrorsOnLine.setChecked(settings.ERRORS_HIGHLIGHT_LINE) self.connect(self._showErrorsOnLine, SIGNAL("stateChanged(int)"), self._enable_errors_inline) vboxg3.addWidget(self._checkErrors) vboxg3.addWidget(self._showErrorsOnLine) formFeatures.addWidget(group3, 2, 0) # Find PEP8 Errors (highlighter) vboxg4 = QVBoxLayout(group4) vboxg4.setContentsMargins(5, 15, 5, 5) self._checkStyle = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_PEP8) self._checkStyle.setChecked(settings.CHECK_STYLE) self.connect(self._checkStyle, SIGNAL("stateChanged(int)"), self._disable_check_style) vboxg4.addWidget(self._checkStyle) self._checkStyleOnLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TOOLTIP_PEP8) self._checkStyleOnLine.setChecked(settings.CHECK_HIGHLIGHT_LINE) self.connect(self._checkStyleOnLine, SIGNAL("stateChanged(int)"), self._enable_check_inline) vboxg4.addWidget(self._checkStyleOnLine) formFeatures.addWidget(group4, 2, 1) # Show Python3 Migration, DocStrings and Spaces (highlighter) vboxg5 = QVBoxLayout(group5) vboxg5.setContentsMargins(5, 15, 5, 5) self._showMigrationTips = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_MIGRATION) self._showMigrationTips.setChecked(settings.SHOW_MIGRATION_TIPS) vboxg5.addWidget(self._showMigrationTips) self._checkForDocstrings = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_CHECK_FOR_DOCSTRINGS) self._checkForDocstrings.setChecked(settings.CHECK_FOR_DOCSTRINGS) vboxg5.addWidget(self._checkForDocstrings) self._checkShowSpaces = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TABS_AND_SPACES) self._checkShowSpaces.setChecked(settings.SHOW_TABS_AND_SPACES) vboxg5.addWidget(self._checkShowSpaces) formFeatures.addWidget(group5, 3, 0) # End of line, Center On Scroll, Trailing space, Word wrap vboxg6 = QVBoxLayout(group6) vboxg6.setContentsMargins(5, 15, 5, 5) self._checkEndOfLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_END_OF_LINE) self._checkEndOfLine.setChecked(settings.USE_PLATFORM_END_OF_LINE) vboxg6.addWidget(self._checkEndOfLine) self._checkCenterScroll = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_CENTER_SCROLL) self._checkCenterScroll.setChecked(settings.CENTER_ON_SCROLL) vboxg6.addWidget(self._checkCenterScroll) self._checkTrailing = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_REMOVE_TRAILING) self._checkTrailing.setChecked(settings.REMOVE_TRAILING_SPACES) vboxg6.addWidget(self._checkTrailing) self._allowWordWrap = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_WORD_WRAP) self._allowWordWrap.setChecked(settings.ALLOW_WORD_WRAP) vboxg6.addWidget(self._allowWordWrap) formFeatures.addWidget(group6, 3, 1) # pack all the groups vbox.addWidget(container_widget_with_all_preferences) vbox.addItem( QSpacerItem(0, 10, QSizePolicy.Expanding, QSizePolicy.Expanding)) self.connect(self._preferences, SIGNAL("savePreferences()"), self.save)
def setup_ui(self, dock_widget): """ initiate main Qt building blocks of interface :param dock_widget: QDockWidget instance """ dock_widget.setObjectName("dock_widget") dock_widget.setAttribute(Qt.WA_DeleteOnClose) self.dock_widget_content = QWidget(self) self.dock_widget_content.setObjectName("dockWidgetContent") self.main_vlayout = QVBoxLayout(self) self.dock_widget_content.setLayout(self.main_vlayout) # add button to add objects to graphs self.button_bar_hlayout = QHBoxLayout(self) self.show_manual_input_button = QPushButton(self) self.button_bar_hlayout.addWidget(self.show_manual_input_button) self.show_manual_input_button.setDisabled(True) self.button_bar_hlayout.addWidget(QLabel("filter t/m categorie:")) self.category_combo = QComboBox(self) self.button_bar_hlayout.addWidget(self.category_combo) self.next_endpoint_button = QPushButton(self) self.button_bar_hlayout.addWidget(self.next_endpoint_button) self.next_endpoint_button.setDisabled(True) self.child_selection_strategy_combo = QComboBox(self) self.button_bar_hlayout.addWidget(QLabel("doortrekken tot:")) self.button_bar_hlayout.addWidget(self.child_selection_strategy_combo) spacer_item = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.button_bar_hlayout.addItem(spacer_item) # self.button_bar_hlayout.addItem(QLabel("doortrekken tot:")) # self.button_bar_hlayout.addItem(self.begroeiings_strategy_combo) self.main_vlayout.addLayout(self.button_bar_hlayout) # add tabWidget for graphWidgets self.contentLayout = QHBoxLayout(self) self.tree_table_tab = QTabWidget(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.tree_table_tab.sizePolicy().hasHeightForWidth()) self.tree_table_tab.setSizePolicy(sizePolicy) self.tree_table_tab.setMinimumSize(QSize(850, 0)) self.contentLayout.addWidget(self.tree_table_tab) # startpointTree self.startpoint_tree_widget = StartpointTreeWidget(self, self.area_model) # sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth( # self.legger_tree_widget.sizePolicy().hasHeightForWidth()) # self.legger_tree_widget.setSizePolicy(sizePolicy) # self.legger_tree_widget.setMinimumSize(QSize(750, 0)) self.tree_table_tab.addTab(self.startpoint_tree_widget, 'startpunten') # LeggerTree self.legger_tree_widget = LeggerTreeWidget(self, self.legger_model) # sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth( # self.legger_tree_widget.sizePolicy().hasHeightForWidth()) # self.legger_tree_widget.setSizePolicy(sizePolicy) # self.legger_tree_widget.setMinimumSize(QSize(750, 0)) self.tree_table_tab.addTab(self.legger_tree_widget, 'hydrovakken') # graphs self.graph_vlayout = QVBoxLayout(self) # Graph self.plot_widget = LeggerPlotWidget( self, session=self.session, legger_model=self.legger_model, variant_model=self.variant_model) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.plot_widget.sizePolicy().hasHeightForWidth()) self.plot_widget.setSizePolicy(sizePolicy) self.plot_widget.setMinimumSize(QSize(250, 150)) self.graph_vlayout.addWidget(self.plot_widget, 2) # Sideview Graph self.sideview_widget = LeggerSideViewPlotWidget( self, session=self.session, legger_model=self.legger_model) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.sideview_widget.sizePolicy().hasHeightForWidth()) self.sideview_widget.setSizePolicy(sizePolicy) self.sideview_widget.setMinimumSize(QSize(250, 150)) self.graph_vlayout.addWidget(self.sideview_widget) self.contentLayout.addLayout(self.graph_vlayout, 2) self.rightVstack = QVBoxLayout(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) self.begroeiings_combo = QComboBox(self) self.begroeiings_strategy_combo = QComboBox(self) self.groupBox_begroeiings = QGroupBox(self) self.groupBox_begroeiings.setTitle("begroeiingsfilter en voor welk deel") vbox_strat = QVBoxLayout() vbox_strat.addWidget(self.begroeiings_combo) vbox_strat.addWidget(self.begroeiings_strategy_combo) self.groupBox_begroeiings.setLayout(vbox_strat) self.rightVstack.addWidget(self.groupBox_begroeiings) # variantentable self.plot_item_table = VariantenTable(self, variant_model=self.variant_model) self.plot_item_table.setMinimumWidth(380) self.rightVstack.addWidget(self.plot_item_table) self.selected_variant_remark = QPlainTextEdit(self) self.selected_variant_remark.setFixedHeight(100) self.selected_variant_remark.setDisabled(True) self.rightVstack.addWidget(self.selected_variant_remark) self.contentLayout.addLayout(self.rightVstack, 0) self.main_vlayout.addLayout(self.contentLayout) # add dockwidget dock_widget.setWidget(self.dock_widget_content) self.retranslate_ui(dock_widget) QMetaObject.connectSlotsByName(dock_widget)
class Listener(QWidget): def __init__(self, core_file_name): super(Listener, self).__init__() self.core_file_name = core_file_name self.setup_ui() self.setup_timers() port = SERIAL_PORT self.serial = serial.Serial(port, BAUDE_RATE, timeout=0) self.incoming_data = [] self.imu = IMU(PLATFORM_SPECIFIC_QUOTIENTS['stm']) self.stroke = Stroke() self.selector = Selector(self.core_file_name) self.acceleration_filter = AperiodicFilter(ACCELERATION_TIME_CONST) self.stroke.widget = self.display self.stroke.on_done = self.get_stroke self.previous_time = None self.data_buffer = '' self.init_selector() def setup_ui(self): self.resize(500, 500) self.out = QLabel(self) self.out.setMinimumHeight(100) font = QFont() font.setPixelSize(80) self.out.setFont(font) self.grid = QGridLayout(self) self.display = StrokeWidget() self.letter_selector = QComboBox() self.grid.addWidget(self.display, 0, 0, 1, 1) self.grid.addWidget(self.letter_selector, 1, 0, 1, 1) self.grid.addWidget(self.out, 2, 0, 1, 1) def setup_timers(self): self.serial_timer = QTimer() self.serial_timer.setInterval(SERIAL_INTERVAL) self.serial_timer.timeout.connect(self.get_data) self.serial_timer.start() self.process_timer = QTimer() self.process_timer.setInterval(PROCESS_INTERVAL) self.process_timer.timeout.connect(self.process) self.process_timer.start() self.display_timer = QTimer() self.display_timer.setInterval(DISPLAY_TIMEOUT) self.display_timer.setSingleShot(True) self.display_timer.timeout.connect(self.set_background) def init_selector(self): sel_lines = self.selector.letters_dict.keys() sel_lines.insert(0, 'new strokes') sel_lines.insert(0, 'free run') self.letter_selector.addItems(sel_lines) self.letter_selector.currentIndexChanged.connect(self.set_background) def set_background(self): letter = str(self.letter_selector.currentText()) self.display.set_background(self.core_file_name, letter) def store_stroke(self, key, stroke, existing=True): file_name = '{key}{time}.txt'.format(key=key, time=int(time())) file_path = os.path.join(LEARNED_FOLDER, file_name) np.savetxt(file_path, stroke) if existing: self.display.set_background(self.core_file_name, key, color='g') self.display_timer.start() def get_stroke(self, data): stroke = data['stroke'] dimention = data['dimention'] if dimention < MIN_DIMENTION: print 'too small' return letter = str(self.letter_selector.currentText()) if letter == 'new strokes': self.store_stroke('_', stroke, existing=False) print 'recorded' try: letters = self.selector.check_stroke(stroke) except: #TODO: check unify_stroke return if letters: self.out.setText(self.out.text()+letters[0]) if letter == 'free run' and letters: self.store_stroke(letters[0], stroke) elif letter in letters: self.store_stroke(letter, stroke) def process(self): local_data_storage = deepcopy(self.incoming_data) self.incoming_data = [] for data in local_data_storage: if self.previous_time is None: self.previous_time = data[0] continue data[0], self.previous_time = data[0] - self.previous_time, data[0] if data[0] < MAX_DATA_TIMELAPSE: self.imu.calc(data) gyro = np.linalg.norm(np.array([data[7:]])) accel = self.imu.get_global_acceleration() accel = self.acceleration_filter.set_input(accel, data[0]) accel_magnitude = np.linalg.norm(accel) if accel_magnitude > ACCELERATION_RESET: self.execute_spell() Yr = self.imu.get_y_direction() self.stroke.set_data(Yr, gyro) self.stroke.process_size(data[0], accel) self.setVisible(not self.imu.in_calibration) def execute_spell(self): self.out.setText('') def get_data(self): try: self.data_buffer += self.serial.read(self.serial.inWaiting()) if self.data_buffer == '': return data_pieces = self.data_buffer.split(BUFFER_DELIMITER) # Put incomplete piece back to the buffer self.data_buffer = data_pieces.pop(-1) # If there are no complete data pieces - return from function if not data_pieces: return # Else - get the last of the pieces and discard the rest line = data_pieces[-1] result = [float(d) for d in line.split()] if len(result) != 9: raise ValueError('Nine pieces of data should be provided.') new_line = [time()] + result self.incoming_data.append(new_line) except KeyboardInterrupt: raise except Exception as e: # Something went wrong... nobody cares. print e
def eContFill(self, a): sid = 23 data = self.pullStudents(a) self.resize(430, 530) #self.tabz = QTabWidget(self) self.tabz.clear() self.tab1 = QWidget(self) self.tab2 = QWidget(self) self.tab3 = QWidget(self) self.schno = QLabel("School Number") self.schnoData = QLineEdit() self.schnoData.setObjectName("schno") if (data['schno'] and len(data['schno']) > 1): self.schnoData.setText(data['schno']) else: self.schnoData.setPlaceholderText("00000000") self.surname = QLabel("Surname") self.surnameData = QLineEdit() self.surnameData.setObjectName("surname") if (data['surname'] and len(data['surname']) > 1): tx = data['surname'] self.surnameData.setText(tx.title()) else: self.surnameData.setPlaceholderText("Surname") self.firstname = QLabel("Firstname") self.firstnameData = QLineEdit() self.firstnameData.setObjectName("firstname") if (data['firstname'] and len(data['firstname'])): tx = data['firstname'] self.firstnameData.setText(tx.title()) else: self.firstnameData.setPlaceholderText("Firstname") self.middlename = QLabel("Middlename") self.middlenameData = QLineEdit() self.middlenameData.setObjectName("middlename") if (data['othername'] and len(data['othername']) > 1): tx = data['othername'] self.middlenameData.setText(tx.title()) else: self.middlenameData.setPlaceholderText("othername") self.soo = QLabel("State/Region of Origin") self.sooData = QLineEdit() self.sooData.setObjectName("soo") if (data['soo'] and len(data['soo']) > 1): tx = data['soo'] self.sooData.setText(tx.title()) else: self.sooData.setPlaceholderText("Lagos") self.lga = QLabel("LGA/District") self.lgaData = QLineEdit() self.lgaData.setObjectName("lga") if (data['lga'] and len(data['lga'])): tx = data['lga'] self.lgaData.setText(tx.title()) else: self.lgaData.setPlaceholderText("Ikeja") self.addr = QLabel("House Address") self.addrData = QTextEdit() self.addrData.setObjectName("addr") if (data['addr'] and len(data['addr'])): tx = data['addr'] self.addrData.setText(tx) else: pass self.dob = QLabel("Date of Birth") self.dobData = QDateEdit() self.dobData.setObjectName("dob") tx = QDate.fromString(data['dob'], 'yyyy-MM-dd') self.dobData.setDate(QDate(tx.year(), tx.month(), tx.day())) self.admit = QLabel("Date Admitted") self.admitData = QDateEdit() self.admitData.setObjectName("admit") tx = QDate.fromString(data['admit'], 'yyyy-MM-dd') self.admitData.setDate(QDate(tx.year(), tx.month(), tx.day())) self.pb4 = QPushButton() self.pb4.setObjectName("Submit") self.pb4.setText("Submit") self.pb5 = QPushButton() self.pb5.setObjectName("Cancel") self.pb5.setText("Cancel") hbo = QHBoxLayout() self.gender = QLabel('Gender') self.r1 = QRadioButton('Male') self.r2 = QRadioButton('Female') if (data['gender'] == 'Male'): self.r1.setChecked(True) elif (data['gender'] == 'Female'): self.r2.setChecked(True) hbo.addWidget(self.r1) hbo.addWidget(self.r2) Formlayout = QFormLayout() Formlayout.addRow(self.schno, self.schnoData) Formlayout.addRow(self.surname, self.surnameData) Formlayout.addRow(self.firstname, self.firstnameData) Formlayout.addRow(self.middlename, self.middlenameData) Formlayout.addRow(self.gender, hbo) Formlayout.addRow(self.dob, self.dobData) Formlayout.addRow(self.admit, self.admitData) Formlayout.addRow(self.soo, self.sooData) Formlayout.addRow(self.lga, self.lgaData) Formlayout.addRow(self.addr, self.addrData) grid = QGridLayout() grid.addWidget(self.pb1, 0, 1) grid.addWidget(self.pb, 0, 0) groupBox = QGroupBox('BIODATA') groupBox.setLayout(Formlayout) vbox = QVBoxLayout() vbox.addWidget(groupBox) vbox.addStretch() vbox.addLayout(grid) #self.setLayout(vbox) self.connect(self.pb4, SIGNAL("clicked()"), lambda: self.button1_click(sid)) self.connect(self.pb5, SIGNAL("clicked()"), self.close) self.tab1.setLayout(vbox) relations = [ 'Father', 'Mother', 'Aunt', 'Uncle', 'Grand Parent', 'Guardian', 'Others' ] #first guardian details self.g1name = QLabel("First Guardian") self.g1Data = QLineEdit() self.g1Data.setObjectName("g1name") if (data['g1'] and len(data['g1']) > 1): tx = data['g1'] self.g1Data.setText(tx.title()) else: self.g1Data.setPlaceholderText("Mr. Surname Lastname") self.g1rel = QLabel('Relationship') self.g1relData = QComboBox() self.g1relData.addItems(relations) if data['g1rel'] and len(data['g1rel']) > 0: index1 = self.g1relData.findText(data['g1rel'], Qt.QtMatchFixedString) if index1 >= 0: self.g1relData.setCurrentIndex(index1) self.g1p1 = QLabel("Phone Number") self.g1p1Data = QLineEdit() self.g1p1Data.setObjectName("g1p1") if (data['g1p1'] and len(data['g1p1']) > 1): tx = data['g1p1'] self.g1p1Data.setText(tx.title()) else: self.g1p1Data.setPlaceholderText("08000000000") self.g1p2 = QLabel("Alt. Phone Number") self.g1p2Data = QLineEdit() self.g1p2Data.setObjectName("g1p2") if (data['g1p2'] and len(data['g1p2']) > 1): tx = data['g1p2'] self.g1p2Data.setText(tx.title()) else: self.g1p2Data.setPlaceholderText("08000000000") self.g1email = QLabel("Email") self.g1emailData = QLineEdit() self.g1emailData.setObjectName("g1email") if (data['g1email'] and len(data['g1email']) > 1): tx = data['g1email'] self.g1Data.setText(tx.title()) else: self.g1Data.setPlaceholderText("*****@*****.**") self.g1addr = QLabel("Address") self.g1addrData = QTextEdit() self.g1addrData.setObjectName("g1add") if (data['g1addr'] and len(data['g1addr']) > 1): tx = data['g1addr'] self.g1Data.setText(tx.title()) else: pass #second guardian details self.g2name = QLabel("Second Guardian") self.g2Data = QLineEdit() self.g2Data.setObjectName("g2name") if (data['g2'] and len(data['g2']) > 1): tx = data['g2'] self.g2Data.setText(tx.title()) else: self.g2Data.setPlaceholderText("Title. Surname Lastname") self.g2rel = QLabel('Relationship') self.g2relData = QComboBox() self.g2relData.addItems(relations) if data['g2rel'] and len(data['g2rel']) > 0: index2 = self.g2relData.findText(data['g2rel'], Qt.QtMatchFixedString) if index2 >= 0: self.g2relData.setCurrentIndex(index2) self.g2p1 = QLabel("Phone Number") self.g2p1Data = QLineEdit() self.g2p1Data.setObjectName("g2p1") if (data['g2p1'] and len(data['g2p1']) > 1): tx = data['g2p1'] self.g2p1Data.setText(tx.title()) else: self.g2p1Data.setPlaceholderText("08000000000") self.g2p2 = QLabel("Alt. Phone Number") self.g2p2Data = QLineEdit() self.g2p2Data.setObjectName("g2p2") if (data['g2p2'] and len(data['g2p2']) > 1): tx = data['g2p2'] self.g2p2Data.setText(tx.title()) else: self.g2p2Data.setPlaceholderText("0800000000") self.g2email = QLabel("Email") self.g2emailData = QLineEdit() self.g2emailData.setObjectName("g2email") if (data['g2email'] and len(data['g2email']) > 1): tx = data['g2email'] self.g2emailData.setText(tx.title()) else: self.g2emailData.setPlaceholderText("*****@*****.**") self.g2addr = QLabel("Address") self.g2addrData = QTextEdit() self.g2addrData.setObjectName("g2add") if (data['g2addr'] and len(data['g2addr']) > 1): tx = data['g2addr'] self.g2Data.setText(tx.title()) else: pass self.pb = QPushButton() self.pb.setObjectName("Submit") self.pb.setText("Submit") self.pb1 = QPushButton() self.pb1.setObjectName("Cancel") self.pb1.setText("Cancel") hbo = QHBoxLayout() self.gender = QLabel('Gender') self.r1 = QRadioButton('Male') self.r2 = QRadioButton('Female') hbo.addWidget(self.r1) hbo.addWidget(self.r2) Formlayout1 = QFormLayout() Formlayout1.addRow(self.g1name, self.g1Data) Formlayout1.addRow(self.g1rel, self.g1relData) Formlayout1.addRow(self.g1p1, self.g1p1Data) Formlayout1.addRow(self.g1p2, self.g1p2Data) Formlayout1.addRow(self.g1email, self.g1emailData) Formlayout1.addRow(self.g1addr, self.g1addrData) Formlayout2 = QFormLayout() Formlayout2.addRow(self.g2name, self.g2Data) Formlayout2.addRow(self.g2rel, self.g2relData) Formlayout2.addRow(self.g2p1, self.g2p1Data) Formlayout2.addRow(self.g2p2, self.g2p2Data) Formlayout2.addRow(self.g2email, self.g2emailData) Formlayout2.addRow(self.g2addr, self.g2addrData) grid1 = QGridLayout() grid1.addWidget(self.pb, 0, 0) grid1.addWidget(self.pb1, 0, 1) hbox1 = QHBoxLayout() hbox1.addLayout(Formlayout1) hbox1.addStretch() hbox1.addLayout(Formlayout2) groupBox2 = QGroupBox('GUARDIAN') groupBox2.setLayout(hbox1) vbox1 = QVBoxLayout() vbox1.addWidget(groupBox2) vbox1.addStretch() vbox1.addLayout(grid1) self.tab2.setLayout(vbox1) #photo picstyle = QSize(120, 180) picstyle1 = Qt.KeepAspectRatio self.pic1Lbl = QLabel('YEAR 1 & 2') self.pic2Lbl = QLabel('YEAR 3 & 4') self.pic3Lbl = QLabel('YEAR 5 & 6') self.pic1 = QLabel() pixmap1 = QPixmap('img/studentz.png').scaled(picstyle, picstyle1) self.pic1.setPixmap(pixmap1) self.pic2 = QLabel() pixmap2 = QPixmap('img/studentz.png').scaled(picstyle, picstyle1) self.pic2.setPixmap(pixmap2) self.pic3 = QLabel() pixmap3 = QPixmap('img/studentz.png').scaled(picstyle, picstyle1) self.pic3.setPixmap(pixmap3) self.picBtn1 = QPushButton('Select Image') self.picBtn1.clicked.connect(self.getFilez) self.picBtn2 = QPushButton('Select Image') self.picBtn2.clicked.connect(self.getFilez) self.picBtn3 = QPushButton('Select Image') self.picBtn3.clicked.connect(self.getFilez) self.pic1Lbl.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.pic2Lbl.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.pic3Lbl.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.picBtn1.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.picBtn2.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.picBtn3.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) h1pic = QVBoxLayout() h2pic = QVBoxLayout() h3pic = QVBoxLayout() vpic = QHBoxLayout() h1pic.addWidget(self.pic1Lbl) h1pic.addStretch(0) h1pic.addWidget(self.pic1) h1pic.addStretch(0) h1pic.addWidget(self.picBtn1) h1pic.setContentsMargins(0, 0, 0, 0) h1pic.setSpacing(0) h1pic.setMargin(0) h2pic.addWidget(self.pic2Lbl) h2pic.addStretch(0) h2pic.addWidget(self.pic2) h2pic.addStretch(0) h2pic.addWidget(self.picBtn2) h2pic.setContentsMargins(0, 0, 0, 0) h2pic.setSpacing(0) h2pic.setMargin(0) h3pic.addWidget(self.pic3Lbl) h3pic.addStretch(0) h3pic.addWidget(self.pic3) h3pic.addStretch(0) h3pic.addWidget(self.picBtn3) h3pic.setContentsMargins(0, 0, 0, 0) h3pic.setSpacing(0) h3pic.setMargin(0) vpic.addLayout(h1pic) vpic.addStretch(0) vpic.addLayout(h2pic) vpic.addStretch(0) vpic.addLayout(h3pic) vpic.setSpacing(0) vpic.setMargin(0) vpic.setContentsMargins(0, 0, 0, 0) self.tab3.setLayout(vpic) self.tab3.resize(100, 100) self.tab3.setStyleSheet( "background-color: red; margin:5px; border:1px solid red;") self.tabz.addTab(self.tab1, 'Bio-Data') self.tabz.addTab(self.tab2, 'Contact Details') self.tabz.addTab(self.tab3, 'Passports') self.setWindowTitle("Add Student Data") self.show()
class ScoreProperties(object): """This is only the base class, it should be mixed in with a widget or a different way.""" def createWidgets(self): """Creates all widgets.""" self.createKeySignatureWidget() self.createTimeSignatureWidget() self.createPickupWidget() self.createMetronomeWidget() self.createTempoWidget() def layoutWidgets(self, layout): """Adds all widgets to a vertical layout.""" self.layoutKeySignatureWidget(layout) self.layoutTimeSignatureWidget(layout) self.layoutPickupWidget(layout) self.layoutMetronomeWidget(layout) self.layoutTempoWidget(layout) def translateWidgets(self): self.translateKeySignatureWidget() self.translateTimeSignatureWidget() self.translatePickupWidget() self.tranlateMetronomeWidget() self.translateTempoWidget() def ly(self, node, builder): """Adds appropriate LilyPond command nodes to the parent node. Settings from the builder are used where that makes sense. All widgets must be present. """ self.lyKeySignature(node, builder) self.lyTimeSignature(node, builder) self.lyPickup(node, builder) self.lyTempo(node, builder) def globalSection(self, builder): """Returns a sequential expression between { } containing the output of ly().""" seq = ly.dom.Seq() self.ly(seq, builder) return seq # Key signature def createKeySignatureWidget(self): self.keySignatureLabel = QLabel() self.keyNote = QComboBox() self.keyNote.setModel( listmodel.ListModel(keyNames['nederlands'], self.keyNote)) self.keyMode = QComboBox() self.keyMode.setModel( listmodel.ListModel(modes, self.keyMode, display=listmodel.translate_index(1))) self.keySignatureLabel.setBuddy(self.keyNote) def translateKeySignatureWidget(self): self.keySignatureLabel.setText(_("Key signature:")) self.keyMode.model().update() def layoutKeySignatureWidget(self, layout): """Adds our widgets to a layout, assuming it is a QVBoxLayout.""" box = QHBoxLayout() box.addWidget(self.keySignatureLabel) box.addWidget(self.keyNote) box.addWidget(self.keyMode) layout.addLayout(box) def setPitchLanguage(self, language='nederlands'): self.keyNote.model()._data = keyNames[language or 'nederlands'] self.keyNote.model().update() def lyKeySignature(self, node, builder): """Adds the key signature to the ly.dom node parent.""" note, alter = keys[self.keyNote.currentIndex()] alter = fractions.Fraction(alter, 2) mode = modes[self.keyMode.currentIndex()][0] ly.dom.KeySignature(note, alter, mode, node).after = 1 # Time signature def createTimeSignatureWidget(self): self.timeSignatureLabel = QLabel() self.timeSignature = QComboBox(editable=True) icons = { '(4/4)': symbols.icon('time_c44'), '(2/2)': symbols.icon('time_c22'), } self.timeSignature.setModel( listmodel.ListModel(timeSignaturePresets, self.timeSignature, icon=icons.get)) self.timeSignature.setCompleter(None) self.timeSignatureLabel.setBuddy(self.timeSignature) def translateTimeSignatureWidget(self): self.timeSignatureLabel.setText(_("Time signature:")) def layoutTimeSignatureWidget(self, layout): """Adds our widgets to a layout, assuming it is a QVBoxLayout.""" box = QHBoxLayout() box.addWidget(self.timeSignatureLabel) box.addWidget(self.timeSignature) layout.addLayout(box) def lyTimeSignature(self, node, builder): """Adds the time signature to the ly.dom node parent.""" sig = self.timeSignature.currentText().strip() if '+' in sig: pass # TODO: implement support for \compoundMeter else: if sig == '(2/2)': ly.dom.TimeSignature(2, 2, node).after = 1 elif sig == '(4/4)': ly.dom.TimeSignature(4, 4, node).after = 1 else: match = re.search(r'(\d+).*?(\d+)', sig) if match: if builder.lyVersion >= (2, 11, 44): ly.dom.Line(r"\numericTimeSignature", node) else: ly.dom.Line( r"\override Staff.TimeSignature #'style = #'()", node) num, beat = map(int, match.group(1, 2)) ly.dom.TimeSignature(num, beat, node).after = 1 # Pickup bar def createPickupWidget(self): self.pickupLabel = QLabel() self.pickup = QComboBox() pickups = [''] pickups.extend(durations) self.pickup.setModel( listmodel.ListModel(pickups, self.pickup, display=lambda item: item or _("None"), icon=lambda item: symbols.icon( 'note_{0}'.format(item.replace('.', 'd'))) if item else None)) self.pickup.view().setIconSize(QSize(22, 22)) self.pickupLabel.setBuddy(self.pickup) def translatePickupWidget(self): self.pickupLabel.setText(_("Pickup measure:")) self.pickup.model().update() def layoutPickupWidget(self, layout): box = QHBoxLayout() box.addWidget(self.pickupLabel) box.addWidget(self.pickup) layout.addLayout(box) def lyPickup(self, node, builder): if self.pickup.currentIndex() > 0: dur, dots = partialDurations[self.pickup.currentIndex() - 1] ly.dom.Partial(dur, dots, parent=node) # Metronome value def createMetronomeWidget(self): self.metronomeLabel = QLabel() self.metronomeNote = QComboBox() self.metronomeNote.setModel( listmodel.ListModel( durations, display=None, icon=lambda item: symbols.icon('note_{0}'.format( item.replace('.', 'd'))))) self.metronomeNote.setCurrentIndex(durations.index('4')) self.metronomeNote.view().setIconSize(QSize(22, 22)) self.metronomeEqualSign = QLabel('=') self.metronomeEqualSign.setFixedWidth( self.metronomeEqualSign.minimumSizeHint().width()) self.metronomeValue = QComboBox(editable=True) self.metronomeValue.setModel( listmodel.ListModel(metronomeValues, self.metronomeValue, display=format)) self.metronomeValue.setCompleter(None) self.metronomeValue.setValidator( QIntValidator(0, 999, self.metronomeValue)) self.metronomeValue.setCurrentIndex(metronomeValues.index(100)) self.metronomeTempo = widgets.tempobutton.TempoButton() self.metronomeTempo.tempo.connect(self.setMetronomeValue) self.metronomeLabel.setBuddy(self.metronomeNote) self.metronomeRound = QCheckBox() def layoutMetronomeWidget(self, layout): grid = QGridLayout() grid.addWidget(self.metronomeLabel, 0, 0) box = QHBoxLayout(spacing=0) box.addWidget(self.metronomeNote) box.addWidget(self.metronomeEqualSign) box.addWidget(self.metronomeValue) box.addWidget(self.metronomeTempo) grid.addLayout(box, 0, 1) grid.addWidget(self.metronomeRound, 1, 1) layout.addLayout(grid) def tranlateMetronomeWidget(self): self.metronomeLabel.setText(_("Metronome mark:")) self.metronomeRound.setText(_("Round tap tempo value")) self.metronomeRound.setToolTip( _("Round the entered tap tempo to a common value.")) def setMetronomeValue(self, bpm): """ Tap the tempo tap button """ if self.metronomeRound.isChecked(): l = [abs(t - bpm) for t in metronomeValues] m = min(l) if m < 6: self.metronomeValue.setCurrentIndex(l.index(m)) else: self.metronomeValue.setEditText(str(bpm)) # Tempo indication def createTempoWidget(self): self.tempoLabel = QLabel() self.tempo = widgets.lineedit.LineEdit() completionmodel.complete(self.tempo, "scorewiz/completion/scoreproperties/tempo") self.tempo.completer().setCaseSensitivity(Qt.CaseInsensitive) self.tempoLabel.setBuddy(self.tempo) def layoutTempoWidget(self, layout): box = QHBoxLayout() box.addWidget(self.tempoLabel) box.addWidget(self.tempo) layout.addLayout(box) def translateTempoWidget(self): self.tempoLabel.setText(_("Tempo indication:")) def lyTempo(self, node, builder): """Returns an appropriate tempo indication.""" text = self.tempo.text().strip() if builder.showMetronomeMark: dur = durations[self.metronomeNote.currentIndex()] val = self.metronomeValue.currentText() or '60' elif text: dur = None val = None else: return tempo = ly.dom.Tempo(dur, val, node) if text: ly.dom.QuotedString(text, tempo) def lyMidiTempo(self, node): """Sets the configured tempo in the tempoWholesPerMinute variable.""" node['tempoWholesPerMinute'] = ly.dom.Scheme(self.schemeMidiTempo()) def schemeMidiTempo(self): """Returns a string with the tempo like '(ly:make-moment 100 4)' from the settings.""" base, mul = midiDurations[self.metronomeNote.currentIndex()] val = int(self.metronomeValue.currentText() or '60') * mul return "(ly:make-moment {0} {1})".format(val, base) def lySimpleMidiTempo(self, node): r"""Return a simple \tempo x=y node for the currently set tempo.""" dur = durations[self.metronomeNote.currentIndex()] val = self.metronomeValue.currentText() or '60' return ly.dom.Tempo(dur, val, node)