def create_widgets(self, parent, mapp=False): # Layout GBuilder().set_props(self, min_sz_x=500, min_sz_y=150) main_lo = QVBoxLayout() self.setLayout(main_lo) # Get Add Dialog try: # Read API Spec that I need cls = ECUFactory().get_class(self.ecu_type) self.processor = cls.get_add_plugin(parent) if mapp: self.processor.set_gui(mapp) main_lo.addWidget(self.processor) except: print(traceback.format_exc()) ECULogger().log_traceback() # Ok and Cancel main_lo.addWidget(GBuilder().hor_line(parent)) hl = QHBoxLayout() hl.addWidget(GBuilder().label(parent, "")) ok = GBuilder().pushbutton(parent, "OK", self._ok_hit) ok.setFixedWidth(100) hl.addWidget(ok) canc = GBuilder().pushbutton(parent, "Cancel", self._cancel_hit) canc.setFixedWidth(100) hl.addWidget(canc)
def __init__(self, parent, *args, **kwargs): super(FWidget, self).__init__(parent=parent, *args, **kwargs) self.parent = parent vbox = QVBoxLayout() editbox = QGridLayout() self.search_field = LineEdit() # self.search_field.textChanged.connect(self.search) self.search_field.setToolTip(u"Taper le nom ou le numéro de " u"téléphone à chercher") editbox.addWidget(self.search_field, 0, 0) search_but = Button("") search_but.setIcon(QIcon.fromTheme('search', QIcon(''))) search_but.clicked.connect(self.search) editbox.addWidget(search_but, 0, 1) # self.empty = FLabel(u"") # editbox.addWidget(self.empty, 1, 0) addgroup_but = Button(u"Nouveau groupe") addgroup_but.setIcon(QIcon.fromTheme('document-new', QIcon(''))) addgroup_but.clicked.connect(self.addgroup) self.contact_grp = Button(u"Envoyer à groupe") self.contact_grp.setIcon(QIcon.fromTheme('document-new', QIcon(''))) self.contact_grp.clicked.connect(self.contact_group) self.contact_grp.setEnabled(False) editbox.addWidget(addgroup_but, 2, 0) editbox.addWidget(self.contact_grp, 1, 0) vbox.addLayout(editbox) self.setLayout(vbox)
def __init__(self, parent, titre, contenu, fonction_modif): QDialog.__init__(self, parent) self.setWindowTitle(titre) sizer = QVBoxLayout() self.parent = parent self.fonction_modif = fonction_modif self.texte = PythonSTC(self) # self.texte.setMinimumSize(300, 10) self.texte.setText(contenu) ## self.texte.SetInsertionPointEnd() sizer.addWidget(self.texte) boutons = QHBoxLayout() self.btn_modif = QPushButton(u"Modifier - F5") boutons.addWidget(self.btn_modif) self.btn_esc = QPushButton(u"Annuler - ESC") boutons.addStretch() boutons.addWidget(self.btn_esc) sizer.addLayout(boutons) self.setLayout(sizer) self.btn_modif.clicked.connect(self.executer) self.btn_esc.clicked.connect(self.close) self.setMinimumSize(400, 500) self.texte.setFocus()
def __init__(self, parent): QFrame.__init__(self, parent) self.setContentsMargins(0, 0, 0, 0) layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(1) self._setNameLineEdit = QLineEdit(self) layout.addWidget(self._setNameLineEdit) self._setListView = QListView(self) self._listModel = QStandardItemModel(self) self._proxyModel = QSortFilterProxyModel(self) self._proxyModel.setSourceModel(self._listModel) self._setListView.setModel(self._proxyModel) self._setListView.setItemDelegate(ListItemDelegate(self)) self._setNameLineEdit.textChanged.connect( self._proxyModel.setFilterFixedString) self._completer = QCompleter(self._listModel, self) self._setNameLineEdit.setCompleter(self._completer) self._listModel.itemChanged.connect(self._onSetNameChange) layout.addWidget(self._setListView) buttonLayout = QHBoxLayout() self._addAction = QAction( "+", self, toolTip="Add a new sort key") self._updateAction = QAction( "Update", self, toolTip="Update/save current selection") self._removeAction = QAction( "\u2212", self, toolTip="Remove selected sort key.") self._addToolButton = QToolButton(self) self._updateToolButton = QToolButton(self) self._removeToolButton = QToolButton(self) self._updateToolButton.setSizePolicy( QSizePolicy.MinimumExpanding, QSizePolicy.Minimum) self._addToolButton.setDefaultAction(self._addAction) self._updateToolButton.setDefaultAction(self._updateAction) self._removeToolButton.setDefaultAction(self._removeAction) buttonLayout.addWidget(self._addToolButton) buttonLayout.addWidget(self._updateToolButton) buttonLayout.addWidget(self._removeToolButton) layout.addLayout(buttonLayout) self.setLayout(layout) self._addAction.triggered.connect(self.addCurrentSelection) self._updateAction.triggered.connect(self.updateSelectedSelection) self._removeAction.triggered.connect(self.removeSelectedSelection) self._setListView.selectionModel().selectionChanged.connect( self._onListViewSelectionChanged) self.selectionModel = None self._selections = []
def __init__(self, *args): PluginBase.__init__(self, BrickletLine, *args) self.line = self.device self.cbe_reflectivity = CallbackEmulator(self.line.get_reflectivity, self.cb_reflectivity, self.increase_error_count) self.reflectivity_label = ReflectivityLabel() self.rf = ReflectivityFrame() self.current_value = None plot_list = [['', Qt.red, self.get_current_value]] self.plot_widget = PlotWidget('Reflectivity', plot_list) layout_h = QHBoxLayout() layout_h.addStretch() layout_h.addWidget(self.reflectivity_label) layout_h.addStretch() layout_h2 = QHBoxLayout() layout_h2.addStretch() layout_h2.addWidget(self.rf) layout_h2.addStretch() layout = QVBoxLayout(self) layout.addLayout(layout_h) layout.addLayout(layout_h2) layout.addWidget(self.plot_widget)
def __init__(self, project, parent=None): QDialog.__init__(self, parent, Qt.Dialog) self.project = project self.setWindowTitle(translations.TR_PROJECT_PROPERTIES) self.resize(600, 500) vbox = QVBoxLayout(self) self.tab_widget = QTabWidget() self.projectData = ProjectData(self) self.projectExecution = ProjectExecution(self) self.projectMetadata = ProjectMetadata(self) self.tab_widget.addTab(self.projectData, translations.TR_PROJECT_DATA) self.tab_widget.addTab(self.projectExecution, translations.TR_PROJECT_EXECUTION) self.tab_widget.addTab(self.projectMetadata, translations.TR_PROJECT_METADATA) vbox.addWidget(self.tab_widget) self.btnSave = QPushButton(translations.TR_SAVE) self.btnCancel = QPushButton(translations.TR_CANCEL) hbox = QHBoxLayout() hbox.addWidget(self.btnCancel) hbox.addWidget(self.btnSave) vbox.addLayout(hbox) self.connect(self.btnCancel, SIGNAL("clicked()"), self.close) self.connect(self.btnSave, SIGNAL("clicked()"), self.save_properties)
class MainWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self, None) self._setupUi() self.model = MainWindowModel() self.nameTextBox = LineEdit(view=self.nameTextBoxView) self.helloLabel = TextHolder(view=self.helloLabelView) self.model.set_children(self.nameTextBox.model, self.helloLabel.model) self.randomNameButton.clicked.connect(self.model.select_random_name) self.sayHelloButton.clicked.connect(self.model.say_hello) def _setupUi(self): self.setWindowTitle(QCoreApplication.instance().applicationName()) self.centralwidget = QWidget(self) self.verticalLayout = QVBoxLayout(self.centralwidget) self.nameTextBoxView = QLineEdit(self.centralwidget) self.verticalLayout.addWidget(self.nameTextBoxView) self.helloLabelView = QLabel(self.centralwidget) self.verticalLayout.addWidget(self.helloLabelView) self.buttonLayout = QHBoxLayout() self.randomNameButton = QPushButton("Random Name", self.centralwidget) self.buttonLayout.addWidget(self.randomNameButton) self.sayHelloButton = QPushButton("Say Hello", self.centralwidget) self.buttonLayout.addWidget(self.sayHelloButton) self.verticalLayout.addLayout(self.buttonLayout) self.setCentralWidget(self.centralwidget)
def __init__(self, ipcon, uid, version): PluginBase.__init__(self, ipcon, uid, 'Linear Poti Bricklet', version) self.lp = BrickletLinearPoti(uid, ipcon) self.qtcb_position.connect(self.cb_position) self.lp.register_callback(self.lp.CALLBACK_POSITION, self.qtcb_position.emit) self.slider = QSlider(Qt.Horizontal) self.slider.setRange(0, 100) self.position_label = PositionLabel('Position: ') self.current_value = None plot_list = [['', Qt.red, self.get_current_value]] self.plot_widget = PlotWidget('Position', plot_list) layout_h = QHBoxLayout() layout_h.addStretch() layout_h.addWidget(self.position_label) layout_h.addWidget(self.slider) layout_h.addStretch() layout = QVBoxLayout(self) layout.addLayout(layout_h) layout.addWidget(self.plot_widget)
def __init__(self, parent=None): super(SessionEditor, self).__init__(parent) self.setWindowModality(Qt.WindowModal) layout = QVBoxLayout() self.setLayout(layout) grid = QGridLayout() layout.addLayout(grid) self.name = QLineEdit() self.nameLabel = l = QLabel() l.setBuddy(self.name) grid.addWidget(l, 0, 0) grid.addWidget(self.name, 0, 1) self.autosave = QCheckBox() grid.addWidget(self.autosave, 1, 1) self.basedir = widgets.urlrequester.UrlRequester() self.basedirLabel = l = QLabel() l.setBuddy(self.basedir) grid.addWidget(l, 2, 0) grid.addWidget(self.basedir, 2, 1) layout.addWidget(widgets.Separator()) self.buttons = b = QDialogButtonBox(self) layout.addWidget(b) b.setStandardButtons(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) b.accepted.connect(self.accept) b.rejected.connect(self.reject) help.addButton(b, "sessions") app.translateUI(self)
def __init__(self, *args): PluginBase.__init__(self, BrickletAnalogOutV2, *args) self.ao = self.device self.input_voltage_label = VoltageLabel() self.output_voltage_label = QLabel('Output Voltage [mV]: ') self.output_voltage_box = QSpinBox() self.output_voltage_box.setMinimum(0) self.output_voltage_box.setMaximum(12000) self.output_voltage_box.setSingleStep(1) layout_h1 = QHBoxLayout() layout_h1.addStretch() layout_h1.addWidget(self.output_voltage_label) layout_h1.addWidget(self.output_voltage_box) layout_h1.addStretch() layout_h2 = QHBoxLayout() layout_h2.addStretch() layout_h2.addWidget(self.input_voltage_label) layout_h2.addStretch() layout = QVBoxLayout(self) layout.addLayout(layout_h2) layout.addLayout(layout_h1) layout.addStretch() self.output_voltage_box.editingFinished.connect(self.voltage_finished) self.cbe_input_voltage = CallbackEmulator(self.ao.get_input_voltage, self.cb_get_input_voltage, self.increase_error_count)
def __init__(self, parent=None, param=None): super(SphereWidget, self).__init__(parent) if param is None: self.param = SphereParam() else: self.param = param gbC_lay = QVBoxLayout() l_cmap = QLabel("Cmap ") self.cmap = list(get_colormaps().keys()) self.combo = QComboBox(self) self.combo.addItems(self.cmap) self.combo.currentIndexChanged.connect(self.updateParam) self.param.dict["colormap"] = self.cmap[0] hbox = QHBoxLayout() hbox.addWidget(l_cmap) hbox.addWidget(self.combo) gbC_lay.addLayout(hbox) self.sp = [] # subdiv lL = QLabel("subdiv") self.sp.append(QSpinBox()) self.sp[-1].setMinimum(0) self.sp[-1].setMaximum(6) self.sp[-1].setValue(self.param.dict["subdiv"]) # Layout hbox = QHBoxLayout() hbox.addWidget(lL) hbox.addWidget(self.sp[-1]) gbC_lay.addLayout(hbox) # signal's self.sp[-1].valueChanged.connect(self.updateParam) # Banded self.gbBand = QGroupBox(u"Banded") self.gbBand.setCheckable(True) hbox = QGridLayout() lL = QLabel("nbr band", self.gbBand) self.sp.append(QSpinBox(self.gbBand)) self.sp[-1].setMinimum(0) self.sp[-1].setMaximum(100) # Layout hbox = QHBoxLayout() hbox.addWidget(lL) hbox.addWidget(self.sp[-1]) self.gbBand.setLayout(hbox) gbC_lay.addWidget(self.gbBand) # signal's self.sp[-1].valueChanged.connect(self.updateParam) self.gbBand.toggled.connect(self.updateParam) gbC_lay.addStretch(1.0) hbox = QHBoxLayout() hbox.addLayout(gbC_lay) self.setLayout(hbox) self.updateMenu()
def __init__(self, model, parent=None): super().__init__(parent) self._view = QTableView() self._view.setModel(model) cancelButton = QPushButton(_("cancel")) cancelButton.clicked.connect(self.reject) okButton = QPushButton(_("OK")) okButton.setDefault(True) okButton.clicked.connect(self.accept) addButton = QPushButton("+") addButton.clicked.connect(self.add) buttonBox = QHBoxLayout() buttonBox.addWidget(addButton) buttonBox.addStretch(1) buttonBox.addWidget(cancelButton) buttonBox.addWidget(okButton) layout = QVBoxLayout() layout.addWidget(self._view) layout.addLayout(buttonBox) self.setLayout(layout) self.accepted.connect(self.save) self.setWindowTitle(_("Admin.edit" + model.table)) self.resize(600, 300) self._view.resizeColumnsToContents()
def __init__(self, parent=None): super().__init__(parent) layout = QVBoxLayout() textBox = QHBoxLayout() textBox.addStretch(1) textBox.addWidget(QLabel(_("DeleteConfirmation.text"))) textBox.addStretch(1) layout.addLayout(textBox) cancelButton = QPushButton(_("cancel")) cancelButton.clicked.connect(self.reject) okButton = QPushButton(_("OK")) okButton.clicked.connect(self.accept) buttonBox = QHBoxLayout() buttonBox.addStretch(1) buttonBox.addWidget(cancelButton) buttonBox.addWidget(okButton) layout.addLayout(buttonBox) self.setLayout(layout) self.setWindowTitle(_("DeleteConfirmation.title"))
def create_main_frame(self): self.fig = Figure(dpi=100) self.canvas = FigureCanvas(self.fig) self.canvas.setParent(self) self.canvas.setFocusPolicy( Qt.ClickFocus ) self.canvas.setFocus() self.mpl_toolbar = myNavigationToolbar(self.canvas, self) self.canvas.mpl_connect('button_press_event', self.on_click) self.canvas.mpl_connect('key_press_event', self.on_key_press) self.canvas.mpl_connect('key_release_event', self.on_key_release) #self.canvas.mpl_connect('button_press_event', self.disable_clicks) self.cbar_button = QPushButton("Color Range") self.cbar_button.setFocusPolicy( Qt.NoFocus ) self.grid_cb = QCheckBox("Show Grid") self.grid_cb.setFocusPolicy( Qt.NoFocus ) self.grid_cb.stateChanged.connect(self.showGrid) vbox = QVBoxLayout() hbox = QHBoxLayout() vbox.addWidget(self.canvas) # the matplotlib canvas hbox.addWidget(self.mpl_toolbar) hbox.addWidget(self.cbar_button) hbox.addWidget(self.grid_cb) vbox.addLayout(hbox) self.setLayout(vbox)
def __init__(self, item, parent=None): QDialog.__init__(self, parent, Qt.Dialog) self._item = item self.setWindowTitle(self.tr("Project Properties")) vbox = QVBoxLayout(self) self.tab_widget = QTabWidget() self.projectData = ProjectData(self) self.projectExecution = ProjectExecution(self) self.projectMetadata = ProjectMetadata(self) self.tab_widget.addTab(self.projectData, self.tr("Project Data")) self.tab_widget.addTab(self.projectExecution, self.tr("Project Execution")) self.tab_widget.addTab(self.projectMetadata, self.tr("Project Metadata")) vbox.addWidget(self.tab_widget) self.btnSave = QPushButton(self.tr("Save")) self.btnCancel = QPushButton(self.tr("Cancel")) hbox = QHBoxLayout() hbox.addWidget(self.btnCancel) hbox.addWidget(self.btnSave) vbox.addLayout(hbox) self.connect(self.btnCancel, SIGNAL("clicked()"), self.close) self.connect(self.btnSave, SIGNAL("clicked()"), self.save_properties)
class ProprietesAvance(QWidget): def __init__(self, parent): QWidget.__init__(self, parent) self.parent = parent self.objets = parent.objets self.panel = self.parent.parent.panel self.canvas = self.parent.parent.canvas self.islabel = self.parent.parent.islabel self.sizer = QVBoxLayout() if len(self.objets) is 1: self.objet = self.objets[0] style = QVBoxLayout() style_box = QGroupBox(u"Style de l'objet") style_box.setLayout(style) style.addWidget(QLabel(u"Attention, ne modifiez ce contenu que si vous savez ce que vous faites.")) self.avance = QTextEdit() self.avance.setMinimumSize(350, 200) self.actualiser() style.addWidget(self.avance) self.sizer.addWidget(style_box) ok = QPushButton('OK') appliquer = QPushButton(u"Appliquer") actualiser = QPushButton(u"Actualiser") ok.clicked.connect(self.EvtOk) appliquer.clicked.connect(self.EvtAppliquer) actualiser.clicked.connect(self.actualiser) boutons = QHBoxLayout() boutons.addWidget(ok) boutons.addWidget(appliquer) boutons.addWidget(actualiser) self.sizer.addLayout(boutons) self.setLayout(self.sizer) ##self.parent.parent.dim3 = self.sizer.CalcMin().Get() def EvtOk(self): self.EvtAppliquer() self.parent.parent.fenetre_principale.raise_() self.parent.parent.close() # fermeture de la frame def EvtAppliquer(self): txt = self.avance.toPlainText().split('\n') dico = "{" for ligne in txt: key, value = ligne.split(":", 1) key = "'" + key.strip() + "':" dico += key + value + "," dico += "}" if self.islabel: self.canvas.executer(u"%s.etiquette.style(**%s)" %(self.objet.parent.nom, dico)) else: self.canvas.executer(u"%s.style(**%s)" %(self.objet.nom, dico)) def actualiser(self, event = None): items = (txt.split(':', 1) for txt in advanced_split(str(self.objet.style())[1:-1], ",")) self.avance.setPlainText('\n'.join(sorted(key.strip()[1:-1] + ':' + value for key, value in items)))
def __init__(self, parent=None): QDialog.__init__(self, parent, Qt.Dialog) self.setWindowTitle(self.tr("About SIDE-C")) self.setMaximumSize(QSize(0, 0)) vbox = QVBoxLayout(self) #Create an icon for the Dialog # pixmap = QPixmap(":img/icon") # self.lblIcon = QLabel() # self.lblIcon.setPixmap(pixmap) hbox = QHBoxLayout() # hbox.addWidget(self.lblIcon) lblTitle = QLabel( '<h1>SIDE - C</h1>\n<i>Simple Integrated Development Environment for C<i>') lblTitle.setTextFormat(Qt.RichText) lblTitle.setAlignment(Qt.AlignLeft) hbox.addWidget(lblTitle) vbox.addLayout(hbox) #Add description vbox.addWidget(QLabel( self.tr("""ALGO ACA"""))) vbox.addWidget(QLabel("Hola")) link_ninja = QLabel( self.tr('Website: ')) vbox.addWidget(link_ninja) link_source = QLabel( self.tr('Source Code')) vbox.addWidget(link_source)
def __init__(self, title, widget, parent=None): QDialog.__init__(self, parent) self.setWindowTitle(title) self.setModal(True) self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) self.setWindowFlags(self.windowFlags() & ~Qt.WindowCloseButtonHint) self.setWindowFlags(self.windowFlags() & ~Qt.WindowCancelButtonHint) layout = QVBoxLayout() layout.setSizeConstraint(QLayout.SetFixedSize) # not resizable!!! layout.addWidget(widget) self.__button_layout = QHBoxLayout() self.close_button = QPushButton("Close") self.close_button.setObjectName("CLOSE") self.close_button.clicked.connect(self.accept) self.__button_layout.addStretch() self.__button_layout.addWidget(self.close_button) layout.addStretch() layout.addLayout(self.__button_layout) self.setLayout(layout)
def __init__(self, suggested, parent=None): super(PythonDetectDialog, self).__init__(parent, Qt.Dialog) self.setMaximumSize(QSize(0, 0)) self.setWindowTitle("Configure Python Path") vbox = QVBoxLayout(self) lblMessage = QLabel(self.tr("We have detected that you are using " + "Windows,\nplease choose the proper " + "Python application for you:")) vbox.addWidget(lblMessage) self.listPaths = QListWidget() self.listPaths.setSelectionMode(QListWidget.SingleSelection) vbox.addWidget(self.listPaths) hbox = QHBoxLayout() hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding)) btnCancel = QPushButton(self.tr("Cancel")) btnAccept = QPushButton(self.tr("Accept")) hbox.addWidget(btnCancel) hbox.addWidget(btnAccept) vbox.addLayout(hbox) self.connect(btnAccept, SIGNAL("clicked()"), self._set_python_path) self.connect(btnCancel, SIGNAL("clicked()"), self.close) for path in suggested: self.listPaths.addItem(path) self.listPaths.setCurrentRow(0)
def __init__(self, pathProjects, parent=None): #pathProjects must be a list QDialog.__init__(self, parent) self.setWindowTitle(self.tr("Add File to Project")) self.pathSelected = '' vbox = QVBoxLayout(self) self._tree = QTreeWidget() self._tree.header().setHidden(True) self._tree.setSelectionMode(QTreeWidget.SingleSelection) self._tree.setAnimated(True) vbox.addWidget(self._tree) hbox = QHBoxLayout() btnAdd = QPushButton(self.tr("Add here!")) btnCancel = QPushButton(self.tr("Cancel")) hbox.addWidget(btnCancel) hbox.addWidget(btnAdd) vbox.addLayout(hbox) #load folders self._root = None for pathProject in pathProjects: folderStructure = file_manager.open_project(pathProject) self._load_project(folderStructure, pathProject) self.connect(btnCancel, SIGNAL("clicked()"), self.close) self.connect(btnAdd, SIGNAL("clicked()"), self._select_path)
def __init__(self, *args): PluginBase.__init__(self, BrickletUVLight, *args) self.uv_light = self.device self.cbe_uv_light = CallbackEmulator(self.uv_light.get_uv_light, self.cb_uv_light, self.increase_error_count) self.uv_label = UVLabel(u'UV Light: ') self.index_label = IndexLabel(u'UV Index: ') self.current_uv_light = None plot_list = [['', Qt.red, self.get_current_uv_light]] self.plot_widget_uv = PlotWidget(u'UV Light [µW/cm²]', plot_list) layout_h1 = QHBoxLayout() layout_h1.addStretch() layout_h1.addWidget(self.uv_label) layout_h1.addStretch() layout_h2 = QHBoxLayout() layout_h2.addStretch() layout_h2.addWidget(self.index_label) layout_h2.addStretch() layout = QVBoxLayout(self) layout.addLayout(layout_h1) layout.addLayout(layout_h2) layout.addWidget(self.plot_widget_uv)
def __init__(self, ipcon, uid, version): PluginBase.__init__(self, ipcon, uid, 'Line Bricklet', version) self.line = BrickletLine(uid, ipcon) self.qtcb_reflectivity.connect(self.cb_reflectivity) self.line.register_callback(self.line.CALLBACK_REFLECTIVITY, self.qtcb_reflectivity.emit) self.reflectivity_label = ReflectivityLabel() self.rf = ReflectivityFrame() self.current_value = None plot_list = [['', Qt.red, self.get_current_value]] self.plot_widget = PlotWidget('Reflectivity', plot_list) layout_h = QHBoxLayout() layout_h.addStretch() layout_h.addWidget(self.reflectivity_label) layout_h.addStretch() layout_h2 = QHBoxLayout() layout_h2.addStretch() layout_h2.addWidget(self.rf) layout_h2.addStretch() layout = QVBoxLayout(self) layout.addLayout(layout_h) layout.addLayout(layout_h2) layout.addWidget(self.plot_widget)
def __init__(self, pathProjects, parent=None): #pathProjects must be a list QDialog.__init__(self, parent) self.setWindowTitle(self.tr("Add File to Project")) self.pathSelected = '' vbox = QVBoxLayout(self) self._tree = QTreeWidget() self._tree.header().setHidden(True) self._tree.setSelectionMode(QTreeWidget.SingleSelection) self._tree.setAnimated(True) vbox.addWidget(self._tree) hbox = QHBoxLayout() btnAdd = QPushButton(self.tr("Add here!")) btnCancel = QPushButton(self.tr("Cancel")) hbox.addWidget(btnCancel) hbox.addWidget(btnAdd) vbox.addLayout(hbox) #load folders self._root = None self._loading_items = {} self.loading_projects(pathProjects) self._thread_execution = ThreadExecution( self._thread_load_projects, args=[pathProjects]) self.connect(self._thread_execution, SIGNAL("finished()"), self._callback_load_project) self._thread_execution.start() self.connect(btnCancel, SIGNAL("clicked()"), self.close) self.connect(btnAdd, SIGNAL("clicked()"), self._select_path)
def __init__(self): QWidget.__init__(self) self.__filter_popup = FilterPopup(self) self.__filter_popup.filterSettingsChanged.connect(self.onItemChanged) layout = QVBoxLayout() self.model = DataTypeKeysListModel() self.filter_model = DataTypeProxyModel(self.model) filter_layout = QHBoxLayout() self.search_box = SearchBox() self.search_box.filterChanged.connect(self.setSearchString) filter_layout.addWidget(self.search_box) filter_popup_button = QToolButton() filter_popup_button.setIcon(util.resourceIcon("ide/cog_edit.png")) filter_popup_button.clicked.connect(self.showFilterPopup) filter_layout.addWidget(filter_popup_button) layout.addLayout(filter_layout) self.data_type_keys_widget = QListView() self.data_type_keys_widget.setModel(self.filter_model) self.data_type_keys_widget.selectionModel().selectionChanged.connect(self.itemSelected) layout.addSpacing(15) layout.addWidget(self.data_type_keys_widget, 2) layout.addStretch() # layout.addWidget(Legend("Default types", DataTypeKeysListModel.DEFAULT_DATA_TYPE)) layout.addWidget(Legend("Observations available", DataTypeKeysListModel.HAS_OBSERVATIONS)) self.setLayout(layout)
def __init__(self, base, url): QDialog.__init__(self) self.base = base self.setWindowTitle(i18n.get('authorize_turpial')) self.resize(800, 550) self.setModal(True) self.webview = QWebView() qurl = QUrl(url) self.webview.setUrl(qurl) message = QLabel(i18n.get('copy_the_pin')) #message.setAlignment(Qt.AlignRight) self.pin = QLineEdit() self.pin.setPlaceholderText(i18n.get('type_the_pin')) authorize_btn = QPushButton(i18n.get('save')) authorize_btn.clicked.connect(self.accept) widgets_box = QHBoxLayout() widgets_box.setSpacing(3) widgets_box.setContentsMargins(3, 3, 3, 3) widgets_box.addWidget(message, 1) widgets_box.addWidget(self.pin) widgets_box.addWidget(authorize_btn) layout = QVBoxLayout() layout.addWidget(self.webview) layout.addLayout(widgets_box) layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) self.exec_()
def __init__(self, parent = None): self.parentWidget = parent super(FetchPDBDialog, self).__init__(parent) self.text = '' self.setWindowTitle("Fetch PDB") layout = QVBoxLayout() idLayout = QHBoxLayout() self.label = QLabel("Enter PDB ID:") self.lineEdit = QLineEdit() #self.lineEdit.setMaxLength(8) # Check with Piotr about this. idLayout.addWidget(self.label) idLayout.addWidget(self.lineEdit) self.okButton = QPushButton("&OK") self.cancelButton = QPushButton("Cancel") buttonLayout = QHBoxLayout() buttonLayout.addStretch() buttonLayout.addWidget(self.okButton) buttonLayout.addWidget(self.cancelButton) layout.addLayout(idLayout) layout.addLayout(buttonLayout) self.setLayout(layout) self.connect(self.lineEdit, SIGNAL("returnPressed()"), self.getProteinCode) self.connect(self.okButton, SIGNAL("clicked()"), self.getProteinCode) self.connect(self.cancelButton, SIGNAL("clicked()"), self, SLOT("reject()")) self.show() return
def __init__(self, table_p, obj, parent, *args, **kwargs): QDialog.__init__(self, parent, *args, **kwargs) self.setWindowTitle("Confirmation de le suppression") self.title = FPageTitle("Voulez vous vraiment le supprimer?") self.obj = obj self.table_p = table_p self.parent = parent # self.title.setAlignment(Qt.AlignHCenter) title_hbox = QHBoxLayout() title_hbox.addWidget(self.title) report_hbox = QGridLayout() report_hbox.addWidget(FLabel(obj.display_name()), 0, 0) # delete and cancel hbox Button_hbox = QHBoxLayout() # Delete Button widget. delete_but = Button("Supprimer") Button_hbox.addWidget(delete_but) delete_but.clicked.connect(self.delete) # Cancel Button widget. cancel_but = Button("Annuler") Button_hbox.addWidget(cancel_but) cancel_but.clicked.connect(self.cancel) # Create the QVBoxLayout contenaire. vbox = QVBoxLayout() vbox.addLayout(title_hbox) vbox.addLayout(report_hbox) vbox.addLayout(Button_hbox) self.setLayout(vbox)
def __init__(self, current_case): QWidget.__init__(self) self.__model = PlotCaseModel() self.__signal_mapper = QSignalMapper(self) self.__case_selectors = {} self.__case_selectors_order = [] layout = QVBoxLayout() add_button_layout = QHBoxLayout() button = QPushButton(util.resourceIcon("ide/small/add"), "Add case to plot") button.clicked.connect(self.addCaseSelector) add_button_layout.addStretch() add_button_layout.addWidget(button) add_button_layout.addStretch() layout.addLayout(add_button_layout) self.__case_layout = QVBoxLayout() self.__case_layout.setMargin(0) layout.addLayout(self.__case_layout) self.addCaseSelector(disabled=True, current_case=current_case) layout.addStretch() self.setLayout(layout) self.__signal_mapper.mapped[QWidget].connect(self.removeWidget)
def createWidgets(self, window): self.widget = QWidget() layout = QVBoxLayout() self.widget.setLayout(layout) grid = QGridLayout() grid.addWidget(QLabel(tr("Label:")), 0, 0) self.label = QLineEdit(u"label") grid.addWidget(self.label, 0, 1) grid.addWidget(QLabel(tr("Type:")), 1, 0) self.game_types = QComboBox() grid.addWidget(self.game_types, 1, 1) layout.addLayout(grid) spacer = createVerticalSpacer() layout.addItem(spacer) button_box = QHBoxLayout() layout.addLayout(button_box) refresh = QPushButton('&Create') button_box.addWidget(refresh) window.connect(refresh, SIGNAL('clicked()'), self.create) leave = QPushButton('&Leave') button_box.addWidget(leave) window.connect(leave, SIGNAL('clicked()'), self.abort)
def __init__(self, *args): PluginBase.__init__(self, BrickletSoundIntensity, *args) self.si = self.device self.cbe_intensity = CallbackEmulator(self.si.get_intensity, self.cb_intensity, self.increase_error_count) self.intensity_label = IntensityLabel() self.current_value = None self.thermo = TuningThermo() #plot_list = [['', Qt.red, self.get_current_value]] #self.plot_widget = PlotWidget('Intensity Value', plot_list) layout_h = QHBoxLayout() layout_h.addStretch() layout_h.addWidget(self.intensity_label) layout_h.addStretch() layout_h2 = QHBoxLayout() layout_h2.addStretch() layout_h2.addWidget(self.thermo) layout_h2.addStretch() layout = QVBoxLayout(self) layout.addLayout(layout_h) layout.addLayout(layout_h2) layout.addStretch()
class phonesDialog(QDialog): def __init__(self, parent): QDialog.__init__(self, parent) self.prm = self.parent().prm self.currLocale = self.parent().prm['currentLocale'] self.currLocale.setNumberOptions( self.currLocale.OmitGroupSeparator | self.currLocale.RejectGroupSeparator) screen = QDesktopWidget().screenGeometry() self.resize(screen.width() / 2.5, screen.height() / 3) self.isPlaying = False #self.audioManager = audioManager(self) #self.playThread = threadedPlayer(self) self.sizer = QGridLayout() self.v1Sizer = QVBoxLayout() self.v2Sizer = QVBoxLayout() self.calibSizer = QGridLayout() self.phonesTableWidget = QTableWidget() self.phonesTableWidget.setColumnCount(4) self.phonesTableWidget.setSelectionBehavior( QAbstractItemView.SelectRows) self.phonesTableWidget.setSelectionMode( QAbstractItemView.ExtendedSelection) self.phonesTableWidget.setHorizontalHeaderLabels([ self.tr('Phones'), self.tr('Max Level'), self.tr('Default'), 'id' ]) self.phonesTableWidget.hideColumn(3) self.phonesTableWidget.cellDoubleClicked[int, int].connect( self.onCellDoubleClicked) #RENAME Phones BUTTON self.renamePhonesButton = QPushButton(self.tr("Rename Phones"), self) self.renamePhonesButton.clicked.connect(self.onEditLabel) #Change Level Phones BUTTON self.changeLevelPhonesButton = QPushButton(self.tr("Change Max Level"), self) self.changeLevelPhonesButton.clicked.connect(self.onEditMaxLevel) #ADD Phones BUTTON self.addPhonesButton = QPushButton(self.tr("Add Phones"), self) self.addPhonesButton.clicked.connect(self.onClickAddPhonesButton) #REMOVE Phones BUTTON self.removePhonesButton = QPushButton(self.tr("Remove Phones"), self) self.removePhonesButton.clicked.connect(self.onClickRemovePhonesButton) #Set Default Phones BUTTON self.setDefaultPhonesButton = QPushButton(self.tr("Set Default"), self) self.setDefaultPhonesButton.clicked.connect(self.onEditDefault) self.v1Sizer.addWidget(self.renamePhonesButton) self.v1Sizer.addWidget(self.changeLevelPhonesButton) self.v1Sizer.addWidget(self.addPhonesButton) self.v1Sizer.addWidget(self.removePhonesButton) self.v1Sizer.addWidget(self.setDefaultPhonesButton) self.v1Sizer.addStretch() self.phonesList = {} for i in range(len(self.prm['phones']['phonesChoices'])): currCount = i + 1 thisID = self.prm['phones']['phonesID'][i] self.phonesList[thisID] = {} self.phonesList[thisID]['label'] = self.prm['phones'][ 'phonesChoices'][i] self.phonesList[thisID]['maxLevel'] = self.prm['phones'][ 'phonesMaxLevel'][i] self.phonesList[thisID]['default'] = self.prm['phones'][ 'defaultPhones'][i] self.phonesTableWidget.setRowCount(currCount) newItem = QTableWidgetItem(self.phonesList[thisID]['label']) newItem.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.phonesTableWidget.setItem(currCount - 1, 0, newItem) newItem = QTableWidgetItem( self.currLocale.toString(self.phonesList[thisID]['maxLevel'])) newItem.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.phonesTableWidget.setItem(currCount - 1, 1, newItem) newItem = QTableWidgetItem(self.phonesList[thisID]['default']) newItem.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.phonesTableWidget.setItem(currCount - 1, 2, newItem) self.phonesList[thisID]['qid'] = QTableWidgetItem(thisID) self.phonesTableWidget.setItem(currCount - 1, 3, self.phonesList[thisID]['qid']) ##CALIBRATION TONE n = 0 self.calLabel = QLabel(self.tr('Calibration Tone:'), self) self.calibSizer.addWidget(self.calLabel, n, 0, 1, 2) n = n + 1 self.toneFreqLabel = QLabel(self.tr('Frequency (Hz)'), self) self.toneFreqTF = QLineEdit("1000") self.toneFreqTF.setValidator(QDoubleValidator(self)) self.calibSizer.addWidget(self.toneFreqLabel, n, 0) self.calibSizer.addWidget(self.toneFreqTF, n, 1) n = n + 1 self.toneLevLabel = QLabel(self.tr('Level (dB)'), self) self.toneLevTF = QLineEdit("60") self.toneLevTF.setValidator(QDoubleValidator(self)) self.calibSizer.addWidget(self.toneLevLabel, n, 0) self.calibSizer.addWidget(self.toneLevTF, n, 1) n = n + 1 self.toneDurLabel = QLabel(self.tr('Duration (ms)'), self) self.toneDurTF = QLineEdit("980") self.toneDurTF.setValidator(QDoubleValidator(self)) self.calibSizer.addWidget(self.toneDurLabel, n, 0) self.calibSizer.addWidget(self.toneDurTF, n, 1) n = n + 1 self.toneRampsLabel = QLabel(self.tr('Ramps (ms)'), self) self.toneRampsTF = QLineEdit("10") self.toneRampsTF.setValidator(QDoubleValidator(self)) self.calibSizer.addWidget(self.toneRampsLabel, n, 0) self.calibSizer.addWidget(self.toneRampsTF, n, 1) n = n + 1 self.earLabel = QLabel(self.tr('Ear:'), self) self.earChooser = QComboBox() self.earChooser.addItems( [self.tr("Right"), self.tr("Left"), self.tr("Both")]) self.calibSizer.addWidget(self.earLabel, n, 0) self.calibSizer.addWidget(self.earChooser, n, 1) n = n + 1 self.playCalibButton = QPushButton(self.tr("Play"), self) self.playCalibButton.clicked.connect(self.onClickPlayCalibButton) self.playCalibButton.setIcon( QIcon.fromTheme("media-playback-start", QIcon(":/media-playback-start"))) self.calibSizer.addWidget(self.playCalibButton, n, 0, 1, 2) n = n + 1 self.stopCalibButton = QPushButton(self.tr("Stop"), self) self.stopCalibButton.clicked.connect(self.onClickStopCalibButton) self.stopCalibButton.setIcon( QIcon.fromTheme("media-playback-stop", QIcon(":/media-playback-stop"))) self.calibSizer.addWidget(self.stopCalibButton, n, 0, 1, 2) if self.prm['pref']['sound']['playCommand'] in [ "alsaaudio", "pyaudio" ]: self.stopCalibButton.show() else: self.stopCalibButton.hide() buttonBox = QDialogButtonBox(QDialogButtonBox.Apply | QDialogButtonBox.Ok | QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.accept) buttonBox.rejected.connect(self.reject) buttonBox.button(QDialogButtonBox.Apply).clicked.connect( self.permanentApply) self.sizer.addLayout(self.v1Sizer, 0, 0) self.v2Sizer.addLayout(self.calibSizer) self.v2Sizer.addStretch() self.sizer.addWidget(self.phonesTableWidget, 0, 1) self.sizer.addLayout(self.v2Sizer, 0, 2) self.sizer.addWidget(buttonBox, 1, 1, 1, 2) self.sizer.setColumnStretch(1, 2) self.setLayout(self.sizer) self.setWindowTitle(self.tr("Edit Phones")) self.show() def onCellDoubleClicked(self, row, col): if col == 0: self.onEditLabel() elif col == 1: self.onEditMaxLevel() elif col == 2: self.onEditDefault() def onEditLabel(self): ids = self.findSelectedItemIds() if len(ids) > 1: QMessageBox.warning( self, self.tr('Warning'), self.tr('Only one label can be renamed at a time')) elif len(ids) < 1: pass else: selectedSound = ids[0] msg = self.tr('New name:') text, ok = QInputDialog.getText(self, self.tr('Input Dialog'), msg) if ok: self.phonesTableWidget.item( self.phonesList[selectedSound]['qid'].row(), 0).setText(text) self.phonesList[selectedSound]['label'] = text def onEditMaxLevel(self): ids = self.findSelectedItemIds() if len(ids) > 1: QMessageBox.warning( self, self.tr('Warning'), self.tr('Only one item can be edited at a time')) elif len(ids) < 1: pass else: selectedSound = ids[0] msg = self.tr('Level:') text, ok = QInputDialog.getDouble( self, self.tr('Input Dialog'), msg, self.phonesList[selectedSound]['maxLevel']) if ok: self.phonesTableWidget.item( self.phonesList[selectedSound]['qid'].row(), 1).setText(self.currLocale.toString(text)) self.phonesList[selectedSound]['maxLevel'] = text def onEditDefault(self): ids = self.findSelectedItemIds() if len(ids) > 1: QMessageBox.warning( self, self.tr('Warning'), self.tr('Only one item can be edited at a time')) elif len(ids) < 1: pass else: selectedSound = ids[0] for i in range(self.phonesTableWidget.rowCount()): self.phonesTableWidget.item(i, 2).setText("\u2012") self.phonesList[str(self.phonesTableWidget.item( i, 3).text())]['default'] = "\u2012" self.phonesTableWidget.item( self.phonesList[selectedSound]['qid'].row(), 2).setText("\u2713") self.phonesList[selectedSound]['default'] = "\u2713" def findSelectedItemIds(self): selItems = self.phonesTableWidget.selectedItems() selItemsRows = [] for i in range(len(selItems)): selItemsRows.append(selItems[i].row()) selItemsRows = unique(selItemsRows) selItemsIds = [] for i in range(len(selItemsRows)): selItemsIds.append( str(self.phonesTableWidget.item(selItemsRows[i], 3).text())) return selItemsIds def permanentApply(self): self.prm['phones']['phonesChoices'] = [] self.prm['phones']['phonesMaxLevel'] = [] self.prm['phones']['defaultPhones'] = [] self.prm['phones']['phonesID'] = [] keys = sorted(self.phonesList.keys()) for key in keys: self.prm['phones']['phonesChoices'].append( str(self.phonesList[key]['label'])) self.prm['phones']['phonesMaxLevel'].append( self.phonesList[key]['maxLevel']) self.prm['phones']['defaultPhones'].append( self.phonesList[key]['default']) self.prm['phones']['phonesID'].append(key) f = open(self.parent().prm['phonesPrefFile'], 'wb') pickle.dump(self.parent().prm['phones'], f) f.close() for i in range(self.parent().phonesChooser.count()): self.parent().phonesChooser.removeItem(0) self.parent().phonesChooser.addItems( self.prm['phones']['phonesChoices']) def onClickAddPhonesButton(self): keys = sorted(self.phonesList.keys()) thisID = str(int(keys[-1]) + 1) currCount = self.phonesTableWidget.rowCount() + 1 self.phonesList[thisID] = {} self.phonesList[thisID]['label'] = 'Phones' + ' ' + str(currCount) self.phonesList[thisID]['maxLevel'] = 100 self.phonesList[thisID]['default'] = "\u2012" self.phonesTableWidget.setRowCount(currCount) newItem = QTableWidgetItem(self.phonesList[thisID]['label']) newItem.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.phonesTableWidget.setItem(currCount - 1, 0, newItem) newItem = QTableWidgetItem( self.currLocale.toString(self.phonesList[thisID]['maxLevel'])) newItem.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.phonesTableWidget.setItem(currCount - 1, 1, newItem) newItem = QTableWidgetItem(self.phonesList[thisID]['default']) newItem.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.phonesTableWidget.setItem(currCount - 1, 2, newItem) self.phonesList[thisID]['qid'] = QTableWidgetItem(thisID) self.phonesTableWidget.setItem(currCount - 1, 3, self.phonesList[thisID]['qid']) def onClickRemovePhonesButton(self): if self.phonesTableWidget.rowCount() == 1: ret = QMessageBox.warning( self, self.tr("Warning"), self.tr("Only one phone left. Cannot remove!"), QMessageBox.Ok) else: ids = self.findSelectedItemIds() wasDefault = False for i in range(len(ids)): selectedPhones = ids[i] if self.phonesTableWidget.item( self.phonesList[selectedPhones]['qid'].row(), 2).text() == "\u2713": wasDefault = True self.phonesTableWidget.removeRow( self.phonesList[selectedPhones]['qid'].row()) del self.phonesList[selectedPhones] if wasDefault == True: self.phonesTableWidget.item(0, 2).setText("\u2713") self.phonesList[str(self.phonesTableWidget.item( 0, 3).text())]['default'] = "\u2713" def onClickPlayCalibButton(self): ids = self.findSelectedItemIds() if len(ids) > 1: QMessageBox.warning( self, self.tr('Warning'), self.tr('Only one label can be renamed at a time')) return elif len(ids) < 1: QMessageBox.warning(self, self.tr('Warning'), self.tr('Please, select a phone in the table')) return else: selectedSound = ids[0] calMaxLev = self.phonesList[selectedSound]['maxLevel'] frequency = self.currLocale.toDouble(self.toneFreqTF.text())[0] level = self.currLocale.toDouble(self.toneLevTF.text())[0] duration = self.currLocale.toDouble(self.toneDurTF.text())[0] ramp = self.currLocale.toDouble(self.toneRampsTF.text())[0] channel = self.earChooser.currentText() fs = self.currLocale.toInt(self.parent().sampRateTF.text())[0] nBits = self.currLocale.toInt( self.parent().nBitsChooser.currentText())[0] calTone = pureTone(frequency, 0, level, duration, ramp, channel, fs, calMaxLev) self.isPlaying = True if self.prm['pref']['sound']['playCommand'] in [ "alsaaudio", "pyaudio" ]: self.playThread = threadedAudioPlayer(self.parent()) else: self.playThread = threadedExternalAudioPlayer(self.parent()) self.playThread.playThreadedSound( calTone, fs, nBits, self.prm['pref']['sound']['playCommand'], True, 'calibrationTone.wav') if self.playThread.isFinished() == True: self.isPlaying = False def onClickStopCalibButton(self): if self.isPlaying == True: self.playThread.terminate() #self.playThread.__del__() def closeEvent(self, event): if self.isPlaying == True: #self.playThread.__del__() self.playThread.terminate() event.accept() def accept(self): #reimplement accept (i.e. ok button) if self.isPlaying == True: #self.playThread.__del__() self.playThread.terminate() QDialog.accept(self) def reject(self): #reimplement reject if self.isPlaying == True: #self.playThread.__del__() self.playThread.terminate() QDialog.reject(self)
def __init__(self): QWidget.__init__(self) self.shortcuts_text = { "Duplicate": translations.TR_DUPLICATE, "Remove-line": translations.TR_REMOVE_LINE, "Move-up": translations.TR_MOVE_UP, "Move-down": translations.TR_MOVE_DOWN, "Close-file": translations.TR_CLOSE_CURRENT_TAB, "New-file": translations.TR_NEW_TAB, "New-project": translations.TR_NEW_PROJECT, "Open-file": translations.TR_OPEN, "Open-project": translations.TR_OPEN_PROJECT, "Save-file": translations.TR_SAVE, "Save-project": translations.TR_SAVE_PROJECT_FILE, "Print-file": translations.TR_PRINT_FILE, "Redo": translations.TR_REDO, "Comment": translations.TR_COMMENT, "Uncomment": translations.TR_UNCOMMENT, "Horizontal-line": translations.TR_INSERT_HORIZONTAL_LINE, "Title-comment": translations.TR_INSERT_TITLE_COMMENT, "Indent-less": translations.TR_INDENT_LESS, "Hide-misc": translations.TR_HIDE_MISC_CONTAINER, "Hide-editor": translations.TR_HIDE_EDITOR, "Hide-explorer": translations.TR_HIDE_EXPLORER, "Run-file": translations.TR_EXECUTE_FILE, "Run-project": translations.TR_EXECUTE_PROJECT, "Debug": translations.DEBUG, "Switch-Focus": translations.TR_SWITCH_KEYBOARD_FOCUS, "Stop-execution": translations.TR_STOP, "Hide-all": translations.TR_ALL_VISIBILITY, "Full-screen": translations.TR_FULLSCREEN_VISIBILITY, "Find": translations.TR_FIND, "Find-replace": translations.TR_FIND_REPLACE, "Find-with-word": translations.TR_FIND_WORD_UNDER_CURSOR, "Find-next": translations.TR_FIND_NEXT, "Find-previous": translations.TR_FIND_PREVIOUS, "Help": translations.TR_SHOW_PYTHON_HELP, "Split-vertical": translations.TR_SPLIT_VERTICALLY, "Split-horizontal": translations.TR_SPLIT_HORIZONTALLY, "Follow-mode": translations.TR_ACTIVATE_FOLLOW_MODE, "Reload-file": translations.TR_RELOAD_FILE, "Jump": translations.TR_JUMP_TO_LINE, "Find-in-files": translations.TR_FIND_IN_FILES, "Import": translations.TR_IMPORT_FROM_EVERYWHERE, "Go-to-definition": translations.GO_TO_DEFINITION, "Complete-Declarations": translations.TR_COMPLETE_DECLARATION, "Code-locator": translations.TR_SHOW_CODE_LOCATOR, "File-Opener": translations.TR_SHOW_FILE_OPENER, "Navigate-back": translations.TR_GO_BACK, "Navigate-forward": translations.TR_GO_FORWARD, "Open-recent-closed": translations.TR_OPEN_RECENT_CLOSED_FILE, "Change-Tab": translations.TR_CHANGE_TO_NEXT_TAB, "Change-Tab-Reverse": translations.TR_CHANGE_TO_PREVIOUS_TAB, "Move-Tab-to-right": translations.TR_MOVE_TAB_TO_RIGHT, "Move-Tab-to-left": translations.TR_MOVE_TAB_TO_LEFT, "Show-Code-Nav": translations.TR_ACTIVATE_HISTORY, "Show-Bookmarks-Nav": translations.TR_ACTIVATE_BOOKMARKS, "Show-Breakpoints-Nav": translations.TR_ACTIVATE_BREAKPOINTS, "Show-Paste-History": translations.TR_SHOW_CLIPBOARD_HISTORY, "History-Copy": translations.TR_COPY_TO_HISTORY, "History-Paste": translations.TR_PASTE_FROM_HISTORY, #"change-split-focus": #translations.TR_CHANGE_KEYBOARD_FOCUS_BETWEEN_SPLITS, "Add-Bookmark-or-Breakpoint": translations.TR_INSERT_BREAKPOINT, "move-tab-to-next-split": translations.TR_MOVE_TAB_TO_NEXT_SPLIT, "change-tab-visibility": translations.TR_SHOW_TABS_IN_EDITOR, "Highlight-Word": translations.TR_HIGHLIGHT_OCCURRENCES, } self.shortcut_dialog = ShortcutDialog(self) #main layout main_vbox = QVBoxLayout(self) #layout for buttons buttons_layout = QVBoxLayout() #widgets self.result_widget = TreeResult() load_defaults_button = QPushButton(translations.TR_LOAD_DEFAULTS) #add widgets main_vbox.addWidget(self.result_widget) buttons_layout.addWidget(load_defaults_button) main_vbox.addLayout(buttons_layout) main_vbox.addWidget(QLabel( translations.TR_SHORCUTS_IN_MENUS_REFRESH_ON_RESTART)) #load data! self.result_widget.setColumnWidth(0, 400) self._load_shortcuts() #signals #open the set shortcut dialog self.connect(self.result_widget, SIGNAL("itemDoubleClicked(QTreeWidgetItem*, int)"), self._open_shortcut_dialog) #load defaults shortcuts self.connect(load_defaults_button, SIGNAL("clicked()"), self._load_defaults_shortcuts) #one shortcut has changed self.connect(self.shortcut_dialog, SIGNAL('shortcutChanged'), self._shortcut_changed)
def __init__(self, parent=None): super(LogDialog, self).__init__(parent) self.resize(800, 500) self.app = QApplication.instance() icon = QIcon() icon.addPixmap(QPixmap(_fromUtf8(":/freeseer/logo.png")), QIcon.Normal, QIcon.Off) self.setWindowIcon(icon) layout = QVBoxLayout() self.setLayout(layout) self.level = 0 self.handler = LogHandler() self.table_model = QStandardItemModel(0, 5) header_names = ["Date", "Level", "Module", "Message", "LevelNo"] date_column = header_names.index("Date") level_column = header_names.index("Level") module_column = header_names.index("Module") self.level_num_column = header_names.index("LevelNo") self.table_model.setHorizontalHeaderLabels(header_names) self.table_view = QTableView() self.table_view.setModel(self.table_model) self.table_view.horizontalHeader().setStretchLastSection(True) self.table_view.setColumnWidth(date_column, self.set_width_with_dpi(125)) self.table_view.setColumnWidth(level_column, self.set_width_with_dpi(60)) self.table_view.setColumnWidth(module_column, self.set_width_with_dpi(250)) self.table_view.setColumnHidden(self.level_num_column, True) self.table_view.setShowGrid(False) self.table_view.horizontalHeader().setClickable(False) self.table_view.verticalHeader().hide() self.table_view.setStyleSheet("""Qtable_view::item { border-bottom: 1px solid lightgrey; selection-background-color: white; selection-color: black; }""") top_panel = QHBoxLayout() self.log_levels = ["Debug", "Info", "Warning", "Error"] self.level_colors = ["#3E4C85", "#269629", "#B0AB21", "#B32020"] self.levels_label = QLabel("Filter Level: ") self.levels_label.setStyleSheet("QLabel { font-weight: bold }") self.current_level_label = QLabel(self.log_levels[0]) self.current_level_label.setStyleSheet("QLabel {{ color: {} }}".format( self.level_colors[0])) self.clear_button = QPushButton("Clear Log") self.levels_slider = QSlider(Qt.Horizontal) self.levels_slider.setStyleSheet(""" QSlider::handle:horizontal { background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #FFFFFF, stop:1 #E3E3E3); border: 1px solid #707070; width: 10px; margin-top: -4px; margin-bottom: -4px; border-radius: 4px; } QSlider::handle:horizontal:hover { background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #DEDEDE, stop:1 #C9C9C9); border: 1px solid #4F4F4F; border-radius: 4px; } QSlider::sub-page:horizontal { background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #BFBFBF, stop: 1 #9E9E9E); background: qlineargradient(x1: 0, y1: 0.2, x2: 1, y2: 1, stop: 0 #9E9E9E, stop: 1 #858585); border: 1px solid #777; height: 10px; border-radius: 4px; } QSlider::add-page:horizontal { background: #fff; border: 1px solid #707070; height: 10px; border-radius: 4px; }""") self.levels_slider.setRange(0, len(self.log_levels) - 1) self.levels_slider.setTickPosition(QSlider.TicksBelow) self.levels_slider.setTickInterval(1) top_panel.addSpacerItem(self.qspacer_item_with_dpi(10, 0)) top_panel.addWidget(self.levels_label, 3) top_panel.addWidget(self.current_level_label, 2) top_panel.addWidget(self.levels_slider, 8) top_panel.addSpacerItem(self.qspacer_item_with_dpi(25, 0)) top_panel.addWidget(self.clear_button, 10) layout.addLayout(top_panel) layout.addWidget(self.table_view) self.connect(self.clear_button, SIGNAL('clicked()'), functools.partial(self.table_model.setRowCount, 0)) self.connect(self.levels_slider, SIGNAL('valueChanged(int)'), self.slider_set_level) self.setWindowTitle("Log") self.handler.add_listener(self)
class ModelerParametersDialog(QDialog): ENTER_NAME = '[Enter name if this is a final result]' NOT_SELECTED = '[Not selected]' USE_MIN_COVERING_EXTENT = '[Use min covering extent]' def __init__(self, alg, model, algName=None): QDialog.__init__(self) self.setModal(True) #The algorithm to define in this dialog. It is an instance of GeoAlgorithm self._alg = alg #The resulting algorithm after the user clicks on OK. it is an instance of the container Algorithm class self.alg = None #The model this algorithm is going to be added to self.model = model #The name of the algorithm in the model, in case we are editing it and not defining it for the first time self._algName = algName self.setupUi() self.params = None def setupUi(self): self.labels = {} self.widgets = {} self.checkBoxes = {} self.showAdvanced = False self.valueItems = {} self.dependentItems = {} self.resize(650, 450) self.buttonBox = QDialogButtonBox() self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) tooltips = self._alg.getParameterDescriptions() self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.verticalLayout = QVBoxLayout() self.verticalLayout.setSpacing(5) self.verticalLayout.setMargin(20) hLayout = QHBoxLayout() hLayout.setSpacing(5) hLayout.setMargin(0) descriptionLabel = QLabel(self.tr("Description")) self.descriptionBox = QLineEdit() self.descriptionBox.setText(self._alg.name) hLayout.addWidget(descriptionLabel) hLayout.addWidget(self.descriptionBox) self.verticalLayout.addLayout(hLayout) line = QFrame() line.setFrameShape(QFrame.HLine) line.setFrameShadow(QFrame.Sunken) self.verticalLayout.addWidget(line) for param in self._alg.parameters: if param.isAdvanced: self.advancedButton = QPushButton() self.advancedButton.setText( self.tr('Show advanced parameters')) self.advancedButton.setMaximumWidth(150) self.advancedButton.clicked.connect( self.showAdvancedParametersClicked) self.verticalLayout.addWidget(self.advancedButton) break for param in self._alg.parameters: if param.hidden: continue desc = param.description if isinstance(param, ParameterExtent): desc += '(xmin, xmax, ymin, ymax)' label = QLabel(desc) self.labels[param.name] = label widget = self.getWidgetFromParameter(param) self.valueItems[param.name] = widget if param.name in tooltips.keys(): tooltip = tooltips[param.name] else: tooltip = param.description label.setToolTip(tooltip) widget.setToolTip(tooltip) if param.isAdvanced: label.setVisible(self.showAdvanced) widget.setVisible(self.showAdvanced) self.widgets[param.name] = widget self.verticalLayout.addWidget(label) self.verticalLayout.addWidget(widget) for output in self._alg.outputs: if output.hidden: continue if isinstance(output, (OutputRaster, OutputVector, OutputTable, OutputHTML, OutputFile, OutputDirectory)): label = QLabel(output.description + '<' + output.__class__.__name__ + '>') item = QLineEdit() if hasattr(item, 'setPlaceholderText'): item.setPlaceholderText(ModelerParametersDialog.ENTER_NAME) self.verticalLayout.addWidget(label) self.verticalLayout.addWidget(item) self.valueItems[output.name] = item label = QLabel(' ') self.verticalLayout.addWidget(label) label = QLabel(self.tr('Parent algorithms')) self.dependenciesPanel = self.getDependenciesPanel() self.verticalLayout.addWidget(label) self.verticalLayout.addWidget(self.dependenciesPanel) self.verticalLayout.addStretch(1000) self.setLayout(self.verticalLayout) self.setPreviousValues() self.setWindowTitle(self._alg.name) self.verticalLayout2 = QVBoxLayout() self.verticalLayout2.setSpacing(2) self.verticalLayout2.setMargin(0) self.tabWidget = QTabWidget() self.tabWidget.setMinimumWidth(300) self.paramPanel = QWidget() self.paramPanel.setLayout(self.verticalLayout) self.scrollArea = QScrollArea() self.scrollArea.setWidget(self.paramPanel) self.scrollArea.setWidgetResizable(True) self.tabWidget.addTab(self.scrollArea, self.tr('Parameters')) self.webView = QWebView() html = None url = None isText, help = self._alg.help() if help is not None: if isText: html = help else: url = QUrl(help) else: html = self.tr('<h2>Sorry, no help is available for this ' 'algorithm.</h2>') try: if html: self.webView.setHtml(html) elif url: self.webView.load(url) except: self.webView.setHtml( self.tr('<h2>Could not open help file :-( </h2>')) self.tabWidget.addTab(self.webView, 'Help') self.verticalLayout2.addWidget(self.tabWidget) self.verticalLayout2.addWidget(self.buttonBox) self.setLayout(self.verticalLayout2) self.buttonBox.accepted.connect(self.okPressed) self.buttonBox.rejected.connect(self.cancelPressed) QMetaObject.connectSlotsByName(self) def getAvailableDependencies(self): if self._algName is None: dependent = [] else: dependent = self.model.getDependentAlgorithms(self._algName) opts = [] for alg in self.model.algs.values(): if alg.name not in dependent: opts.append(alg) return opts def getDependenciesPanel(self): return MultipleInputPanel( [alg.algorithm.name for alg in self.getAvailableDependencies()]) def showAdvancedParametersClicked(self): self.showAdvanced = not self.showAdvanced if self.showAdvanced: self.advancedButton.setText(self.tr('Hide advanced parameters')) else: self.advancedButton.setText(self.tr('Show advanced parameters')) for param in self._alg.parameters: if param.isAdvanced: self.labels[param.name].setVisible(self.showAdvanced) self.widgets[param.name].setVisible(self.showAdvanced) def getAvailableValuesOfType(self, paramType, outType=None): values = [] inputs = self.model.inputs for i in inputs.values(): param = i.param if isinstance(param, paramType): values.append(ValueFromInput(param.name)) if outType is None: return values if self._algName is None: dependent = [] else: dependent = self.model.getDependentAlgorithms(self._algName) for alg in self.model.algs.values(): if alg.name not in dependent: for out in alg.algorithm.outputs: if isinstance(out, outType): values.append(ValueFromOutput(alg.name, out.name)) return values def resolveValueDescription(self, value): if isinstance(value, ValueFromInput): return self.model.inputs[value.name].param.description else: alg = self.model.algs[value.alg] return self.tr("'%s' from algorithm '%s'") % ( alg.algorithm.getOutputFromName( value.output).description, alg.description) def getWidgetFromParameter(self, param): if isinstance(param, ParameterRaster): item = QComboBox() layers = self.getAvailableValuesOfType(ParameterRaster, OutputRaster) if param.optional: item.addItem(self.NOT_SELECTED, None) for layer in layers: item.addItem(self.resolveValueDescription(layer), layer) elif isinstance(param, ParameterVector): item = QComboBox() layers = self.getAvailableValuesOfType(ParameterVector, OutputVector) if param.optional: item.addItem(self.NOT_SELECTED, None) for layer in layers: item.addItem(self.resolveValueDescription(layer), layer) elif isinstance(param, ParameterTable): item = QComboBox() tables = self.getAvailableValuesOfType(ParameterTable, OutputTable) layers = self.getAvailableValuesOfType(ParameterVector, OutputVector) if param.optional: item.addItem(self.NOT_SELECTED, None) for table in tables: item.addItem(self.resolveValueDescription(table), table) for layer in layers: item.addItem(self.resolveValueDescription(layer), layer) elif isinstance(param, ParameterBoolean): item = QComboBox() item.addItem('Yes') item.addItem('No') bools = self.getAvailableValuesOfType(ParameterBoolean, None) for b in bools: item.addItem(self.resolveValueDescription(b), b) elif isinstance(param, ParameterSelection): item = QComboBox() item.addItems(param.options) elif isinstance(param, ParameterFixedTable): item = FixedTablePanel(param) elif isinstance(param, ParameterRange): item = RangePanel(param) elif isinstance(param, ParameterMultipleInput): if param.datatype == ParameterMultipleInput.TYPE_VECTOR_ANY: options = self.getAvailableValuesOfType( ParameterVector, OutputVector) else: options = self.getAvailableValuesOfType( ParameterRaster, OutputRaster) opts = [] for opt in options: opts.append(self.resolveValueDescription(opt)) item = MultipleInputPanel(opts) elif isinstance(param, ParameterString): strings = self.getAvailableValuesOfType(ParameterString, OutputString) options = [(self.resolveValueDescription(s), s) for s in strings] if param.multiline: item = MultilineTextPanel(options) item.setText(unicode(param.default)) else: item = QComboBox() item.setEditable(True) for desc, val in options: item.addItem(desc, val) item.setEditText(unicode(param.default)) elif isinstance(param, ParameterTableField): item = QComboBox() item.setEditable(True) fields = self.getAvailableValuesOfType(ParameterTableField, None) for f in fields: item.addItem(self.resolveValueDescription(f), f) elif isinstance(param, ParameterNumber): item = QComboBox() item.setEditable(True) numbers = self.getAvailableValuesOfType(ParameterNumber, OutputNumber) for n in numbers: item.addItem(self.resolveValueDescription(n), n) item.setEditText(str(param.default)) elif isinstance(param, ParameterCrs): item = CrsSelectionPanel(param.default) elif isinstance(param, ParameterExtent): item = QComboBox() item.setEditable(True) extents = self.getAvailableValuesOfType(ParameterExtent, OutputExtent) if self.canUseAutoExtent(): item.addItem(self.USE_MIN_COVERING_EXTENT, None) for ex in extents: item.addItem(self.resolveValueDescription(ex), ex) if not self.canUseAutoExtent(): item.setEditText(str(param.default)) elif isinstance(param, ParameterFile): item = QComboBox() item.setEditable(True) files = self.getAvailableValuesOfType(ParameterFile, OutputFile) for f in files: item.addItem(self.resolveValueDescription(f), f) elif isinstance(param, ParameterGeometryPredicate): item = GeometryPredicateSelectionPanel(param.enabledPredicates) else: item = QLineEdit() try: item.setText(str(param.default)) except: pass return item def canUseAutoExtent(self): for param in self._alg.parameters: if isinstance( param, (ParameterRaster, ParameterVector, ParameterMultipleInput)): return True return False def setTableContent(self): params = self._alg.parameters outputs = self._alg.outputs visibleParams = [p for p in params if not p.hidden] visibleOutputs = [p for o in outputs if not o.hidden] self.tableWidget.setRowCount(len(visibleParams) + len(visibleOutputs)) for i, param in visibleParams: item = QTableWidgetItem(param.description) item.setFlags(Qt.ItemIsEnabled) self.tableWidget.setItem(i, 0, item) item = self.getWidgetFromParameter(param) self.valueItems[param.name] = item self.tableWidget.setCellWidget(i, 1, item) self.tableWidget.setRowHeight(i, 22) for i, output in visibleOutputs: item = QTableWidgetItem(output.description + '<' + output.__module__.split('.')[-1] + '>') item.setFlags(Qt.ItemIsEnabled) self.tableWidget.setItem(i, 0, item) item = QLineEdit() if hasattr(item, 'setPlaceholderText'): item.setPlaceholderText(ModelerParametersDialog.ENTER_NAME) self.valueItems[output.name] = item self.tableWidget.setCellWidget(i, 1, item) self.tableWidget.setRowHeight(i, 22) def setComboBoxValue(self, combo, value, param): if isinstance(value, list): value = value[0] items = [combo.itemData(i) for i in range(combo.count())] try: idx = items.index(value) combo.setCurrentIndex(idx) return except ValueError: pass if combo.isEditable(): if value is not None: combo.setEditText(unicode(value)) elif isinstance(param, ParameterSelection): combo.setCurrentIndex(int(value)) elif isinstance(param, ParameterBoolean): if value: combo.setCurrentIndex(0) else: combo.setCurrentIndex(1) def setPreviousValues(self): if self._algName is not None: alg = self.model.algs[self._algName] self.descriptionBox.setText(alg.description) for param in alg.algorithm.parameters: if param.hidden: continue widget = self.valueItems[param.name] value = alg.params[param.name] if isinstance( param, (ParameterRaster, ParameterVector, ParameterTable, ParameterTableField, ParameterSelection, ParameterNumber, ParameterBoolean, ParameterExtent, ParameterFile)): self.setComboBoxValue(widget, value, param) elif isinstance(param, ParameterString): if param.multiline: widget.setValue(value) else: self.setComboBoxValue(widget, value, param) elif isinstance(param, ParameterCrs): widget.setAuthId(value) elif isinstance(param, ParameterFixedTable): pass # TODO! elif isinstance(param, ParameterMultipleInput): if param.datatype == ParameterMultipleInput.TYPE_VECTOR_ANY: options = self.getAvailableValuesOfType( ParameterVector, OutputVector) else: options = self.getAvailableValuesOfType( ParameterRaster, OutputRaster) selected = [] for i, opt in enumerate(options): if opt in value: selected.append(i) widget.setSelectedItems(selected) elif isinstance(param, ParameterGeometryPredicate): widget.setValue(value) for name, out in alg.outputs.iteritems(): widget = self.valueItems[name].setText(out.description) selected = [] dependencies = self.getAvailableDependencies() for idx, dependency in enumerate(dependencies): if dependency in alg.dependencies: selected.append(idx) self.dependenciesPanel.setSelectedItems(selected) def createAlgorithm(self): alg = Algorithm(self._alg.commandLineName()) alg.setName(self.model) alg.description = self.descriptionBox.text() params = self._alg.parameters outputs = self._alg.outputs for param in params: if param.hidden: continue if not self.setParamValue(alg, param, self.valueItems[param.name]): return None for output in outputs: if not output.hidden: name = unicode(self.valueItems[output.name].text()) if name.strip( ) != '' and name != ModelerParametersDialog.ENTER_NAME: alg.outputs[output.name] = ModelerOutput(name) selectedOptions = self.dependenciesPanel.selectedoptions availableDependencies = self.getAvailableDependencies() for selected in selectedOptions: alg.dependencies.append(availableDependencies[selected].name) return alg def setParamValueLayerOrTable(self, alg, param, widget): idx = widget.currentIndex() if idx < 0: return False else: value = widget.itemData(widget.currentIndex()) alg.params[param.name] = value return True def setParamTableFieldValue(self, alg, param, widget): idx = widget.findText(widget.currentText()) if idx < 0: s = str(widget.currentText()).strip() if s == '': if param.optional: alg.params[param.name] = None return True else: return False else: alg.params[param.name] = s return True else: alg.params[param.name] = widget.itemData(widget.currentIndex()) return True def setParamStringValue(self, alg, param, widget): if param.multiline: value = widget.getValue() option = widget.getOption() if option == MultilineTextPanel.USE_TEXT: if value == '': if param.optional: alg.params[param.name] = None return True else: return False else: alg.params[param.name] = value else: alg.params[param.name] = value else: idx = widget.findText(widget.currentText()) if idx < 0: value = widget.currentText().strip() if value == '': if param.optional: alg.params[param.name] = None return True else: return False else: alg.params[param.name] = value else: alg.params[param.name] = widget.itemData(widget.currentIndex()) return True def setParamFileValue(self, alg, param, widget): idx = widget.findText(widget.currentText()) if idx < 0: value = widget.currentText() else: value = widget.itemData(widget.currentIndex()) alg.params[param.name] = value return True def setParamNumberValue(self, alg, param, widget): idx = widget.findText(widget.currentText()) if idx < 0: s = widget.currentText() try: value = float(s) except: return False else: value = widget.itemData(widget.currentIndex()) alg.params[param.name] = value return True def setParamExtentValue(self, alg, param, widget): idx = widget.findText(widget.currentText()) if idx < 0: s = str(widget.currentText()) try: tokens = s.split(',') if len(tokens) != 4: return False for token in tokens: float(token) except: return False alg.params[param.name] = [s] else: value = widget.itemData(widget.currentIndex()) alg.params[param.name] = value return True def setParamValue(self, alg, param, widget): if isinstance(param, (ParameterRaster, ParameterVector, ParameterTable)): return self.setParamValueLayerOrTable(alg, param, widget) elif isinstance(param, ParameterBoolean): if widget.currentIndex() < 2: value = widget.currentIndex() == 0 else: value = widget.itemData(widget.currentIndex()) alg.params[param.name] = value return True elif isinstance(param, ParameterString): return self.setParamStringValue(alg, param, widget) elif isinstance(param, ParameterNumber): return self.setParamNumberValue(alg, param, widget) elif isinstance(param, ParameterExtent): return self.setParamExtentValue(alg, param, widget) elif isinstance(param, ParameterFile): return self.setParamFileValue(alg, param, widget) elif isinstance(param, ParameterSelection): alg.params[param.name] = widget.currentIndex() return True elif isinstance(param, ParameterRange): alg.params[param.name] = widget.getValue() return True elif isinstance(param, ParameterCrs): authid = widget.getValue() if authid is None: alg.params[param.name] = None else: alg.params[param.name] = authid return True elif isinstance(param, ParameterFixedTable): alg.params[param.name] = ParameterFixedTable.tableToString( widget.table) return True elif isinstance(param, ParameterTableField): return self.setParamTableFieldValue(alg, param, widget) elif isinstance(param, ParameterMultipleInput): if param.datatype == ParameterMultipleInput.TYPE_VECTOR_ANY: options = self.getAvailableValuesOfType( ParameterVector, OutputVector) else: options = self.getAvailableValuesOfType( ParameterRaster, OutputRaster) values = [options[i] for i in widget.selectedoptions] if len(values) == 0 and not param.optional: return False alg.params[param.name] = values return True elif isinstance(param, ParameterGeometryPredicate): alg.params[param.name] = widget.value() return True else: alg.params[param.name] = unicode(widget.text()) return True def okPressed(self): self.alg = self.createAlgorithm() if self.alg is not None: self.close() else: QMessageBox.warning(self, self.tr('Unable to add algorithm'), self.tr('Wrong or missing parameter values')) def cancelPressed(self): self.alg = None self.close()
def initUI(self): self.setGeometry(200, 200, 250, 200) self.setWindowTitle(u'查找') title = QLabel(u'请选择搜索模式:') self.type_site_id = QRadioButton(u"基站ID ") self.type_site_id.setChecked(True) # 默认查找基站ID self.type_site_name = QRadioButton(u"基站名 ") self.type_cell_id = QRadioButton(u"小区ID ") self.type_cell_name = QRadioButton(u"小区名 ") self.type_pn = QRadioButton(u"PN ") self.type_psc = QRadioButton(u"PSC ") self.type_pci = QRadioButton(u"PCI ") self.type_bcch = QRadioButton(u"BCCH ") search_type = QButtonGroup() search_type.addButton(self.type_site_id) search_type.addButton(self.type_site_name) search_type.addButton(self.type_cell_id) search_type.addButton(self.type_cell_name) search_type.addButton(self.type_pn) search_type.addButton(self.type_psc) search_type.addButton(self.type_pci) search_type.addButton(self.type_bcch) search_grid = QGridLayout() search_grid.setSpacing(10) search_grid.addWidget(self.type_site_id, 0, 1) search_grid.addWidget(self.type_site_name, 0, 2) search_grid.addWidget(self.type_cell_id, 0, 3) search_grid.addWidget(self.type_cell_name, 0, 4) search_grid.addWidget(self.type_pn, 1, 1) search_grid.addWidget(self.type_psc, 1, 2) search_grid.addWidget(self.type_pci, 1, 3) search_grid.addWidget(self.type_bcch, 1, 4) search_hbox = QHBoxLayout() search_hbox.setSpacing(10) search_hbox.addStretch(1) search_hbox.addLayout(search_grid) search_hbox.addStretch(1) self.searchText = QLineEdit() ok = QPushButton(u'确定') self.connect(ok, SIGNAL('clicked()'), self.search) cancel = QPushButton(u'取消') self.connect(cancel, SIGNAL('clicked()'), self.cancel) btn_hbox = QHBoxLayout() btn_hbox.setSpacing(10) btn_hbox.addStretch(1) btn_hbox.addWidget(ok) btn_hbox.addWidget(cancel) btn_hbox.addStretch(1) vbox = QVBoxLayout() vbox.setSpacing(15) vbox.addWidget(title) vbox.addLayout(search_hbox) vbox.addWidget(self.searchText) vbox.addStretch(1) vbox.addLayout(btn_hbox) self.setLayout(vbox) self.resize(350, 190)
def __init__(self, *args): PluginBase.__init__(self, BrickletPTC, *args) self.ptc = self.device self.str_connected = 'Sensor is currently <font color="green">connected</font>' self.str_not_connected = 'Sensor is currently <font color="red">not connected</font>' self.cbe_temperature = CallbackEmulator(self.ptc.get_temperature, self.cb_temperature, self.increase_error_count) # self.cbe_resistance = CallbackEmulator(self.ptc.get_resistance, # self.cb_resistance, # self.increase_error_count) self.temperature_label = TemperatureLabel() # self.resistance_label = ResistanceLabel() self.wire_label = QLabel('Wire Type:') self.wire_combo = QComboBox() self.wire_combo.addItem('2-Wire') self.wire_combo.addItem('3-Wire') self.wire_combo.addItem('4-Wire') self.noise_label = QLabel('Noise Rejection Filter:') self.noise_combo = QComboBox() self.noise_combo.addItem('50Hz') self.noise_combo.addItem('60Hz') self.connected_label = QLabel(self.str_connected) self.current_value = None self.wire_combo.currentIndexChanged.connect( self.wire_combo_index_changed) self.noise_combo.currentIndexChanged.connect( self.noise_combo_index_changed) plot_list = [['', Qt.red, self.get_current_value]] self.plot_widget = PlotWidget('Temperature [%cC]' % 0xB0, plot_list) layout_h = QHBoxLayout() layout_h.addStretch() layout_h.addWidget(self.temperature_label) layout_h.addStretch() layout_h.addWidget(self.connected_label) layout_h.addStretch() layout_h2 = QHBoxLayout() layout_h2.addWidget(self.wire_label) layout_h2.addWidget(self.wire_combo) layout_h2.addStretch() layout_h2.addWidget(self.noise_label) layout_h2.addWidget(self.noise_combo) layout = QVBoxLayout(self) layout.addLayout(layout_h) layout.addWidget(self.plot_widget) layout.addLayout(layout_h2) self.connected_timer = QTimer() self.connected_timer.timeout.connect(self.update_connected) self.connected_timer.setInterval(1000)
def createWidgets(self): """ QtWidgets creation """ self.setContextMenuPolicy(Qt.CustomContextMenu) mainLayout = QVBoxLayout() gridLayout = QGridLayout() font = QFont(FONT_NAME, FONT_SIZE) font.setBold(True) self.passLabel = QLabel("PASS") self.passLabel.setFont(font) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.passLabel.setPalette(passPalette) self.passLabel.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.failLabel = QLabel("FAILED") self.failLabel.setFont(font) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.failLabel.setPalette(failPalette) self.failLabel.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.undefLabel = QLabel("UNDEFINED") font2 = QFont(FONT_NAME, FONT_SIZE2) font2.setBold(False) self.undefLabel.setFont(font2) self.undefLabel.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.totalLabel = QLabel() self.totalLabel.setStyleSheet("""background-color: #EAEAEA; background-image: url(:/main_logo.png); background-position: center; background-repeat: no-repeat; background-attachment: fixed;""") self.totalLabel.setAlignment(Qt.AlignHCenter) self.logoLabel = QLabel() # testglobal self.counterTgPass = QLCDNumber(self) try: # this function does not exist on linux centos 6.3 self.counterTgPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTgPass.setSegmentStyle(QLCDNumber.Flat) self.counterTgPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTgPass.setPalette(passPalette) self.counterTgFail = QLCDNumber(self) try: self.counterTgFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTgFail.setSegmentStyle(QLCDNumber.Flat) self.counterTgFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTgFail.setPalette(failPalette) self.counterTgUndef = QLCDNumber(self) try: self.counterTgUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTgUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTgUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTgUndef.setPalette(underPalette) self.counterTgTotal = QLCDNumber(self) self.counterTgTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTgTotal.setFrameShape(QFrame.NoFrame) # testplan self.counterTpPass = QLCDNumber(self) try: self.counterTpPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTpPass.setSegmentStyle(QLCDNumber.Flat) self.counterTpPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTpPass.setPalette(passPalette) self.counterTpFail = QLCDNumber(self) try: self.counterTpFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTpFail.setSegmentStyle(QLCDNumber.Flat) self.counterTpFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTpFail.setPalette(failPalette) self.counterTpUndef = QLCDNumber(self) try: self.counterTpUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTpUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTpUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTpUndef.setPalette(underPalette) self.counterTpTotal = QLCDNumber(self) self.counterTpTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTpTotal.setFrameShape(QFrame.NoFrame) # testsuites self.counterTsPass = QLCDNumber(self) try: self.counterTsPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTsPass.setSegmentStyle(QLCDNumber.Flat) self.counterTsPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTsPass.setPalette(passPalette) self.counterTsFail = QLCDNumber(self) try: self.counterTsFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTsFail.setSegmentStyle(QLCDNumber.Flat) self.counterTsFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTsFail.setPalette(failPalette) self.counterTsUndef = QLCDNumber(self) try: self.counterTsUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTsUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTsUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTsUndef.setPalette(underPalette) self.counterTsTotal = QLCDNumber(self) self.counterTsTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTsTotal.setFrameShape(QFrame.NoFrame) # testunit self.counterTuPass = QLCDNumber(self) try: self.counterTuPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTuPass.setSegmentStyle(QLCDNumber.Flat) self.counterTuPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTuPass.setPalette(passPalette) self.counterTuFail = QLCDNumber(self) try: self.counterTuFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTuFail.setSegmentStyle(QLCDNumber.Flat) self.counterTuFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTuFail.setPalette(failPalette) self.counterTuUndef = QLCDNumber(self) try: self.counterTuUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTuUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTuUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTuUndef.setPalette(underPalette) self.counterTuTotal = QLCDNumber(self) self.counterTuTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTuTotal.setFrameShape(QFrame.NoFrame) # testabstracts self.counterTaPass = QLCDNumber(self) try: self.counterTaPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTaPass.setSegmentStyle(QLCDNumber.Flat) self.counterTaPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTaPass.setPalette(passPalette) self.counterTaFail = QLCDNumber(self) try: self.counterTaFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTaFail.setSegmentStyle(QLCDNumber.Flat) self.counterTaFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTaFail.setPalette(failPalette) self.counterTaUndef = QLCDNumber(self) try: self.counterTaUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTaUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTaUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTaUndef.setPalette(underPalette) self.counterTaTotal = QLCDNumber(self) self.counterTaTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTaTotal.setFrameShape(QFrame.NoFrame) # testcases self.counterTcPass = QLCDNumber(self) try: self.counterTcPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTcPass.setSegmentStyle(QLCDNumber.Flat) self.counterTcPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTcPass.setPalette(passPalette) self.counterTcFail = QLCDNumber(self) try: self.counterTcFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTcFail.setSegmentStyle(QLCDNumber.Flat) self.counterTcFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTcFail.setPalette(failPalette) self.counterTcUndef = QLCDNumber(self) try: self.counterTcUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTcUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTcUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTcUndef.setPalette(underPalette) self.counterTcTotal = QLCDNumber(self) try: self.counterTcTotal.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTcTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTcTotal.setFrameShape(QFrame.NoFrame) font2 = QFont(FONT_NAME, FONT_SIZE2) font2.setBold(True) self.tgLabel = QLabel("Tests\nGlobal") self.tgLabel.setFont(font2) self.tgLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.tpLabel = QLabel("Tests\nPlan") self.tpLabel.setFont(font2) self.tpLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.tsLabel = QLabel("Tests\nSuite") self.tsLabel.setFont(font2) self.tsLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.tuLabel = QLabel("Tests\nUnit") self.tuLabel.setFont(font2) self.tuLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.taLabel = QLabel("Tests\nAbstract") self.taLabel.setFont(font2) self.taLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.tcLabel = QLabel("Tests\nCase") self.tcLabel.setFont(font2) self.tcLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.totLabel = QLabel("TOTAL") self.totLabel.setFont(font2) self.totLabel.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) font3 = QFont(FONT_NAME, FONT_SIZE3) font3.setItalic(True) self.totPassValue = QLabel("0<br />0%") self.totPassValue.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.totPassValue.setFont(font3) self.totFailedValue = QLabel("0<br />0%") self.totFailedValue.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.totFailedValue.setFont(font3) self.totUndefValue = QLabel("0<br />0%") self.totUndefValue.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.totUndefValue.setFont(font3) self.totValue = QLabel("0<br />0%") self.totValue.setFont(font3) self.totValue.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) #gridLayout.addWidget(self.totalLabel, 0, 0) gridLayout.addWidget(self.tgLabel, 0, 1) gridLayout.addWidget(self.tpLabel, 0, 2) gridLayout.addWidget(self.tsLabel, 0, 3) gridLayout.addWidget(self.tuLabel, 0, 4) gridLayout.addWidget(self.taLabel, 0, 5) gridLayout.addWidget(self.tcLabel, 0, 6) gridLayout.addWidget(self.passLabel, 1, 0) gridLayout.addWidget(self.counterTgPass, 1, 1) gridLayout.addWidget(self.counterTpPass, 1, 2) gridLayout.addWidget(self.counterTsPass, 1, 3) gridLayout.addWidget(self.counterTuPass, 1, 4) gridLayout.addWidget(self.counterTaPass, 1, 5) gridLayout.addWidget(self.counterTcPass, 1, 6) gridLayout.addWidget(self.failLabel, 2, 0) gridLayout.addWidget(self.counterTgFail, 2, 1) gridLayout.addWidget(self.counterTpFail, 2, 2) gridLayout.addWidget(self.counterTsFail, 2, 3) gridLayout.addWidget(self.counterTuFail, 2, 4) gridLayout.addWidget(self.counterTaFail, 2, 5) gridLayout.addWidget(self.counterTcFail, 2, 6) gridLayout.addWidget(self.undefLabel, 3, 0) gridLayout.addWidget(self.counterTgUndef, 3, 1) gridLayout.addWidget(self.counterTpUndef, 3, 2) gridLayout.addWidget(self.counterTsUndef, 3, 3) gridLayout.addWidget(self.counterTuUndef, 3, 4) gridLayout.addWidget(self.counterTaUndef, 3, 5) gridLayout.addWidget(self.counterTcUndef, 3, 6) gridLayout.addWidget(self.counterTgTotal, 4, 1) gridLayout.addWidget(self.counterTpTotal, 4, 2) gridLayout.addWidget(self.counterTsTotal, 4, 3) gridLayout.addWidget(self.counterTuTotal, 4, 4) gridLayout.addWidget(self.counterTaTotal, 4, 5) gridLayout.addWidget(self.counterTcTotal, 4, 6) gridLayout.addWidget(self.totLabel, 0, 7) gridLayout.addWidget(self.totPassValue, 1, 7) gridLayout.addWidget(self.totFailedValue, 2, 7) gridLayout.addWidget(self.totUndefValue, 3, 7) gridLayout.addWidget(self.totValue, 4, 7) mainLayout.addLayout(gridLayout) self.setLayout(mainLayout)
def setup_ui(self): """Load all the components of the ui during the install process.""" vbox = QVBoxLayout(self) vbox.setContentsMargins(0, 0, 0, 0) vbox.setSpacing(0) self.__toolbar = QToolBar() self.__toolbar.setObjectName('custom') hbox = QHBoxLayout() vbox.addLayout(hbox) self.stack = StackedWidget() vbox.addWidget(self.stack) self._console = console_widget.ConsoleWidget() self.stack.addWidget(self._console) self._runWidget = run_widget.RunWidget() self.stack.addWidget(self._runWidget) self._web = web_render.WebRender() self.stack.addWidget(self._web) self._findInFilesWidget = find_in_files.FindInFilesWidget( self.parent()) self.stack.addWidget(self._findInFilesWidget) #Last Element in the Stacked widget self._results = results.Results(self) self.stack.addWidget(self._results) self._btnConsole = QPushButton(QIcon(":img/console"), '') self._btnConsole.setToolTip(self.tr("Console")) self._btnRun = QPushButton(QIcon(":img/play"), '') self._btnRun.setToolTip(self.tr("Output")) self._btnWeb = QPushButton(QIcon(":img/web"), '') self._btnWeb.setToolTip(self.tr("Web Preview")) self._btnFind = QPushButton(QIcon(":img/find"), '') self._btnFind.setToolTip(self.tr("Find in Files")) #Toolbar hbox.addWidget(self.__toolbar) self.__toolbar.addWidget(self._btnConsole) self.__toolbar.addWidget(self._btnRun) self.__toolbar.addWidget(self._btnWeb) self.__toolbar.addWidget(self._btnFind) self.__toolbar.addSeparator() hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding)) btn_close = QPushButton( self.style().standardIcon(QStyle.SP_DialogCloseButton), '') btn_close.setObjectName('navigation_button') btn_close.setToolTip(self.tr('F4: Show/Hide')) hbox.addWidget(btn_close) # Not Configurable Shortcuts shortEscMisc = QShortcut(QKeySequence(Qt.Key_Escape), self) self.connect(shortEscMisc, SIGNAL("activated()"), self.hide) self.connect(self._btnConsole, SIGNAL("clicked()"), lambda: self._item_changed(0)) self.connect(self._btnRun, SIGNAL("clicked()"), lambda: self._item_changed(1)) self.connect(self._btnWeb, SIGNAL("clicked()"), lambda: self._item_changed(2)) self.connect(self._btnFind, SIGNAL("clicked()"), lambda: self._item_changed(3)) self.connect(btn_close, SIGNAL('clicked()'), self.hide)
def create_layout(self): ok_cancel_box = QHBoxLayout() ok_cancel_box.addWidget(self.cancel_button) grid = QGridLayout() irow = 0 grid.addWidget(self.name, irow, 0) grid.addWidget(self.name_edit, irow, 1) irow += 1 grid.addWidget(self.color, irow, 0) grid.addWidget(self.color_edit, irow, 1) irow += 1 grid.addWidget(self.opacity, irow, 0) if self.use_slider: grid.addWidget(self.opacity_edit, irow, 2) grid.addWidget(self.opacity_slider_edit, irow, 1) else: grid.addWidget(self.opacity_edit, irow, 1) irow += 1 grid.addWidget(self.line_width, irow, 0) if self.use_slider: grid.addWidget(self.line_width_edit, irow, 2) grid.addWidget(self.line_width_slider_edit, irow, 1) else: grid.addWidget(self.line_width_edit, irow, 1) irow += 1 grid.addWidget(self.point_size, irow, 0) if self.use_slider: grid.addWidget(self.point_size_edit, irow, 2) grid.addWidget(self.point_size_slider_edit, irow, 1) else: grid.addWidget(self.point_size_edit, irow, 1) irow += 1 grid.addWidget(self.bar_scale, irow, 0) if self.use_slider and 0: grid.addWidget(self.bar_scale_edit, irow, 2) grid.addWidget(self.bar_scale_slider_edit, irow, 1) else: grid.addWidget(self.bar_scale_edit, irow, 1) irow += 1 checkboxs = QButtonGroup(self) checkboxs.addButton(self.checkbox_show) checkboxs.addButton(self.checkbox_hide) vbox = QVBoxLayout() vbox.addWidget(self.table) vbox.addLayout(grid) if 0: vbox.addWidget(self.checkbox_show) vbox.addWidget(self.checkbox_hide) else: vbox1 = QVBoxLayout() vbox1.addWidget(self.checkbox_show) vbox1.addWidget(self.checkbox_hide) vbox.addLayout(vbox1) vbox.addStretch() #vbox.addWidget(self.check_apply) vbox.addLayout(ok_cancel_box) self.setLayout(vbox)
def setup_page(self): run_dlg = _("Run Settings") run_menu = _("Run") about_label = QLabel(_("The following are the default <i>%s</i>. "\ "These options may be overriden using the "\ "<b>%s</b> dialog box (see the <b>%s</b> menu)"\ ) % (run_dlg, run_dlg, run_menu)) about_label.setWordWrap(True) interpreter_group = QGroupBox(_("Interpreter")) interpreter_bg = QButtonGroup(interpreter_group) self.current_radio = self.create_radiobutton( CURRENT_INTERPRETER, CURRENT_INTERPRETER_OPTION, True, button_group=interpreter_bg) self.dedicated_radio = self.create_radiobutton( DEDICATED_INTERPRETER, DEDICATED_INTERPRETER_OPTION, False, button_group=interpreter_bg) self.systerm_radio = self.create_radiobutton( SYSTERM_INTERPRETER, SYSTERM_INTERPRETER_OPTION, False, button_group=interpreter_bg) interpreter_layout = QVBoxLayout() interpreter_group.setLayout(interpreter_layout) interpreter_layout.addWidget(self.current_radio) interpreter_layout.addWidget(self.dedicated_radio) interpreter_layout.addWidget(self.systerm_radio) wdir_group = QGroupBox(_("Working directory")) wdir_bg = QButtonGroup(wdir_group) wdir_label = QLabel(_("Default working directory is:")) wdir_label.setWordWrap(True) dirname_radio = self.create_radiobutton(_("the script directory"), WDIR_USE_SCRIPT_DIR_OPTION, True, button_group=wdir_bg) thisdir_radio = self.create_radiobutton(_("the following directory:"), WDIR_USE_FIXED_DIR_OPTION, False, button_group=wdir_bg) thisdir_bd = self.create_browsedir("", WDIR_FIXED_DIR_OPTION, os.getcwdu()) self.connect(thisdir_radio, SIGNAL("toggled(bool)"), thisdir_bd.setEnabled) self.connect(dirname_radio, SIGNAL("toggled(bool)"), thisdir_bd.setDisabled) thisdir_layout = QHBoxLayout() thisdir_layout.addWidget(thisdir_radio) thisdir_layout.addWidget(thisdir_bd) wdir_layout = QVBoxLayout() wdir_layout.addWidget(wdir_label) wdir_layout.addWidget(dirname_radio) wdir_layout.addLayout(thisdir_layout) wdir_group.setLayout(wdir_layout) firstrun_cb = self.create_checkbox( ALWAYS_OPEN_FIRST_RUN % _("Run Settings dialog"), ALWAYS_OPEN_FIRST_RUN_OPTION, False) vlayout = QVBoxLayout() vlayout.addWidget(about_label) vlayout.addSpacing(10) vlayout.addWidget(interpreter_group) vlayout.addWidget(wdir_group) vlayout.addWidget(firstrun_cb) vlayout.addStretch(1) self.setLayout(vlayout)
def initAppletDrawerUi(self): """ Overridden from base class (LayerViewerGui) """ op = self.topLevelOperatorView def configure_update_handlers( qt_signal, op_slot ): qt_signal.connect( self.configure_operator_from_gui ) op_slot.notifyDirty( self.configure_gui_from_operator ) self.__cleanup_fns.append( partial( op_slot.unregisterDirty, self.configure_gui_from_operator ) ) def control_layout( label_text, widget ): row_layout = QHBoxLayout() row_layout.addWidget( QLabel(label_text) ) row_layout.addSpacerItem( QSpacerItem(10, 0, QSizePolicy.Expanding) ) row_layout.addWidget(widget) return row_layout drawer_layout = QVBoxLayout() channel_button = QPushButton() self.channel_menu = QMenu(self) # Must retain menus (in self) or else they get deleted. channel_button.setMenu(self.channel_menu) channel_button.clicked.connect(channel_button.showMenu) def populate_channel_menu(*args): if sip.isdeleted(channel_button): return self.channel_menu.clear() self.channel_actions = [] for ch in range(op.Input.meta.getTaggedShape()['c']): action = QAction("Channel {}".format(ch), self.channel_menu) action.setCheckable(True) self.channel_menu.addAction(action) self.channel_actions.append(action) configure_update_handlers( action.toggled, op.ChannelSelections ) populate_channel_menu() op.Input.notifyMetaChanged( populate_channel_menu ) self.__cleanup_fns.append( partial( op.Input.unregisterMetaChanged, populate_channel_menu ) ) drawer_layout.addLayout( control_layout( "Input Channel", channel_button ) ) self.channel_button = channel_button threshold_box = QDoubleSpinBox() threshold_box.setDecimals(2) threshold_box.setMinimum(0.00) threshold_box.setMaximum(1.0) threshold_box.setSingleStep(0.1) configure_update_handlers( threshold_box.valueChanged, op.Pmin ) drawer_layout.addLayout( control_layout( "Threshold", threshold_box ) ) self.threshold_box = threshold_box membrane_size_box = QSpinBox() membrane_size_box.setMinimum(0) membrane_size_box.setMaximum(1000000) configure_update_handlers( membrane_size_box.valueChanged, op.MinMembraneSize ) drawer_layout.addLayout( control_layout( "Min Membrane Size", membrane_size_box ) ) self.membrane_size_box = membrane_size_box seed_presmoothing_box = QDoubleSpinBox() seed_presmoothing_box.setDecimals(1) seed_presmoothing_box.setMinimum(0.0) seed_presmoothing_box.setMaximum(10.0) seed_presmoothing_box.setSingleStep(0.1) configure_update_handlers( seed_presmoothing_box.valueChanged, op.SigmaMinima ) drawer_layout.addLayout( control_layout( "Presmooth before seeds", seed_presmoothing_box ) ) self.seed_presmoothing_box = seed_presmoothing_box seed_method_combo = QComboBox() seed_method_combo.addItem("Connected") seed_method_combo.addItem("Clustered") configure_update_handlers( seed_method_combo.currentIndexChanged, op.GroupSeeds ) drawer_layout.addLayout( control_layout( "Seed Labeling", seed_method_combo ) ) self.seed_method_combo = seed_method_combo watershed_presmoothing_box = QDoubleSpinBox() watershed_presmoothing_box.setDecimals(1) watershed_presmoothing_box.setMinimum(0.0) watershed_presmoothing_box.setMaximum(10.0) watershed_presmoothing_box.setSingleStep(0.1) configure_update_handlers( watershed_presmoothing_box.valueChanged, op.SigmaWeights ) drawer_layout.addLayout( control_layout( "Presmooth before watershed", watershed_presmoothing_box ) ) self.watershed_presmoothing_box = watershed_presmoothing_box superpixel_size_box = QSpinBox() superpixel_size_box.setMinimum(0) superpixel_size_box.setMaximum(1000000) configure_update_handlers( superpixel_size_box.valueChanged, op.MinSegmentSize ) drawer_layout.addLayout( control_layout( "Min Superpixel Size", superpixel_size_box ) ) self.superpixel_size_box = superpixel_size_box preserve_pmaps_box = QCheckBox() configure_update_handlers( preserve_pmaps_box.toggled, op.PreserveMembranePmaps ) drawer_layout.addLayout( control_layout( "Preserve membrane probabilities", preserve_pmaps_box ) ) self.preserve_pmaps_box = preserve_pmaps_box enable_debug_box = QCheckBox() configure_update_handlers( enable_debug_box.toggled, op.EnableDebugOutputs ) drawer_layout.addLayout( control_layout( "Show Debug Layers", enable_debug_box ) ) self.enable_debug_box = enable_debug_box op.Superpixels.notifyReady(self.configure_gui_from_operator) op.Superpixels.notifyUnready(self.configure_gui_from_operator) self.__cleanup_fns.append( partial( op.Superpixels.unregisterReady, self.configure_gui_from_operator ) ) self.__cleanup_fns.append( partial( op.Superpixels.unregisterUnready, self.configure_gui_from_operator ) ) self.update_ws_button = QPushButton("Update Watershed", clicked=self.onUpdateWatershedsButton) drawer_layout.addWidget( self.update_ws_button ) drawer_layout.setSpacing(0) drawer_layout.addSpacerItem( QSpacerItem(0, 10, QSizePolicy.Minimum, QSizePolicy.Expanding) ) # Finally, the whole drawer widget drawer = QWidget(parent=self) drawer.setLayout(drawer_layout) # Save these members for later use self._drawer = drawer # Initialize everything with the operator's initial values self.configure_gui_from_operator()
def __init__(self, parent, search_text, search_text_regexp, search_path, include, include_idx, include_regexp, exclude, exclude_idx, exclude_regexp, supported_encodings, in_python_path, more_options): QWidget.__init__(self, parent) if search_path is None: search_path = os.getcwdu() if not isinstance(search_text, (list, tuple)): search_text = [search_text] if not isinstance(search_path, (list, tuple)): search_path = [search_path] if not isinstance(include, (list, tuple)): include = [include] if not isinstance(exclude, (list, tuple)): exclude = [exclude] self.supported_encodings = supported_encodings # Layout 1 hlayout1 = QHBoxLayout() self.search_text = PatternComboBox(self, search_text, _("Search pattern")) self.edit_regexp = create_toolbutton(self, icon=get_icon("advanced.png"), tip=_("Regular expression")) self.edit_regexp.setCheckable(True) self.edit_regexp.setChecked(search_text_regexp) self.more_widgets = () self.more_options = create_toolbutton(self, toggled=self.toggle_more_options) self.more_options.setCheckable(True) self.more_options.setChecked(more_options) self.ok_button = create_toolbutton(self, text=_("Search"), icon=get_std_icon("DialogApplyButton"), triggered=lambda: self.emit(SIGNAL('find()')), tip=_("Start search"), text_beside_icon=True) self.connect(self.ok_button, SIGNAL('clicked()'), self.update_combos) self.stop_button = create_toolbutton(self, text=_("Stop"), icon=get_icon("terminate.png"), triggered=lambda: self.emit(SIGNAL('stop()')), tip=_("Stop search"), text_beside_icon=True) self.stop_button.setEnabled(False) for widget in [self.search_text, self.edit_regexp, self.ok_button, self.stop_button, self.more_options]: hlayout1.addWidget(widget) # Layout 2 hlayout2 = QHBoxLayout() self.include_pattern = PatternComboBox(self, include, _("Included filenames pattern")) if include_idx is not None and include_idx >= 0 \ and include_idx < self.include_pattern.count(): self.include_pattern.setCurrentIndex(include_idx) self.include_regexp = create_toolbutton(self, icon=get_icon("advanced.png"), tip=_("Regular expression")) self.include_regexp.setCheckable(True) self.include_regexp.setChecked(include_regexp) include_label = QLabel(_("Include:")) include_label.setBuddy(self.include_pattern) self.exclude_pattern = PatternComboBox(self, exclude, _("Excluded filenames pattern")) if exclude_idx is not None and exclude_idx >= 0 \ and exclude_idx < self.exclude_pattern.count(): self.exclude_pattern.setCurrentIndex(exclude_idx) self.exclude_regexp = create_toolbutton(self, icon=get_icon("advanced.png"), tip=_("Regular expression")) self.exclude_regexp.setCheckable(True) self.exclude_regexp.setChecked(exclude_regexp) exclude_label = QLabel(_("Exclude:")) exclude_label.setBuddy(self.exclude_pattern) for widget in [include_label, self.include_pattern, self.include_regexp, exclude_label, self.exclude_pattern, self.exclude_regexp]: hlayout2.addWidget(widget) # Layout 3 hlayout3 = QHBoxLayout() self.python_path = QRadioButton(_("PYTHONPATH"), self) self.python_path.setChecked(in_python_path) self.python_path.setToolTip(_( "Search in all directories listed in sys.path which" " are outside the Python installation directory")) self.hg_manifest = QRadioButton(_("Hg repository"), self) self.detect_hg_repository() self.hg_manifest.setToolTip( _("Search in current directory hg repository")) self.custom_dir = QRadioButton(_("Here:"), self) self.custom_dir.setChecked(not in_python_path) self.dir_combo = PathComboBox(self) self.dir_combo.addItems(search_path) self.dir_combo.setToolTip(_("Search recursively in this directory")) self.connect(self.dir_combo, SIGNAL("open_dir(QString)"), self.set_directory) self.connect(self.python_path, SIGNAL('toggled(bool)'), self.dir_combo.setDisabled) self.connect(self.hg_manifest, SIGNAL('toggled(bool)'), self.dir_combo.setDisabled) browse = create_toolbutton(self, icon=get_std_icon('DirOpenIcon'), tip=_('Browse a search directory'), triggered=self.select_directory) for widget in [self.python_path, self.hg_manifest, self.custom_dir, self.dir_combo, browse]: hlayout3.addWidget(widget) self.connect(self.search_text, SIGNAL("valid(bool)"), lambda valid: self.emit(SIGNAL('find()'))) self.connect(self.include_pattern, SIGNAL("valid(bool)"), lambda valid: self.emit(SIGNAL('find()'))) self.connect(self.exclude_pattern, SIGNAL("valid(bool)"), lambda valid: self.emit(SIGNAL('find()'))) self.connect(self.dir_combo, SIGNAL("valid(bool)"), lambda valid: self.emit(SIGNAL('find()'))) vlayout = QVBoxLayout() vlayout.setContentsMargins(0, 0, 0, 0) vlayout.addLayout(hlayout1) vlayout.addLayout(hlayout2) vlayout.addLayout(hlayout3) self.more_widgets = (hlayout2, hlayout3) self.toggle_more_options(more_options) self.setLayout(vlayout) self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)
def create_layout(self): """displays the menu objects""" grid = QGridLayout() grid.addWidget(self.icase, 0, 0) grid.addWidget(self.icase_edit, 0, 1) grid.addWidget(self.scale, 1, 0) grid.addWidget(self.scale_edit, 1, 1) grid.addWidget(self.scale_button, 1, 2) grid.addWidget(self.time, 2, 0) grid.addWidget(self.time_edit, 2, 1) grid.addWidget(self.time_button, 2, 2) # spacer spacer = QLabel('') grid.addWidget(self.fps, 3, 0) grid.addWidget(self.fps_edit, 3, 1) grid.addWidget(self.fps_button, 3, 2) grid.addWidget(self.resolution, 4, 0) grid.addWidget(self.resolution_edit, 4, 1) grid.addWidget(self.resolution_button, 4, 2) grid.addWidget(self.browse_folder, 5, 0) grid.addWidget(self.browse_folder_edit, 5, 1) grid.addWidget(self.browse_folder_button, 5, 2) grid.addWidget(self.gif, 6, 0) grid.addWidget(self.gif_edit, 6, 1) grid.addWidget(self.gif_button, 6, 2) grid.addWidget(self.animation_type, 7, 0) grid.addWidget(self.animation_type_edit, 7, 1) grid.addWidget(spacer, 8, 0) #---------- #Time grid_time = QGridLayout() grid_time.addWidget(self.icase_start, 0, 0) grid_time.addWidget(self.icase_start_edit, 0, 1) #grid_time.addWidget(self.icase_start_button, 0, 2) grid_time.addWidget(self.icase_end, 1, 0) grid_time.addWidget(self.icase_end_edit, 1, 1) #grid_time.addWidget(self.icase_end_button, 1, 2) grid_time.addWidget(self.icase_delta, 2, 0) grid_time.addWidget(self.icase_delta_edit, 2, 1) #grid_time.addWidget(self.icase_delta_button, 2, 2) #grid_time.addWidget(self.min_value, 3, 0) #grid_time.addWidget(self.min_value_edit, 3, 1) #grid_time.addWidget(self.min_value_button, 3, 2) #grid_time.addWidget(self.max_value, 4, 0) #grid_time.addWidget(self.max_value_edit, 4, 1) #grid_time.addWidget(self.max_value_button, 4, 2) grid_time.addWidget(spacer, 5, 0) #-------------- grid_scale = QGridLayout() grid_scale.addWidget(self.animation_profile, 0, 0) grid_scale.addWidget(self.animation_profile_edit, 0, 1) #grid_scale.addWidget(self.csv_profile, 1, 0) #grid_scale.addWidget(self.csv_profile_edit, 1, 1) #grid_scale.addWidget(self.csv_profile_browse_button, 1, 2) self.csv_profile = QLabel("CSV profile:") self.csv_profile_edit = QLineEdit() self.csv_profile_button = QPushButton('Browse') #box_time = QVBoxLayout() # TODO: It's super annoying that the animate time box doesn't # line up with the previous box box_scale = QGroupBox('Animate Scale') box_scale.setLayout(grid_scale) box_time = QGroupBox('Animate Time') box_time.setLayout(grid_time) #---------- grid2 = QGridLayout() #grid2.addWidget(self.animate_scale_radio, 8, 0) #grid2.addWidget(self.animate_phase_radio, 8, 1) #grid2.addWidget(self.animate_time_radio, 8, 2) #grid2.addWidget(self.animate_freq_sweeep_radio, 8, 3) grid2.addWidget(self.animate_in_gui_checkbox, 10, 0) grid2.addWidget(self.make_images_checkbox, 11, 0) #grid2.addWidget(self.overwrite_images_checkbox, 11, 0) grid2.addWidget(self.delete_images_checkbox, 11, 1) grid2.addWidget(self.make_gif_checkbox, 11, 2) grid2.addWidget(self.repeat_checkbox, 12, 0) grid2.addWidget(spacer, 13, 0) grid_hbox = QHBoxLayout() grid_hbox.addWidget(spacer) grid_hbox.addLayout(grid2) grid_hbox.addWidget(spacer) # bottom buttons step_run_box = QHBoxLayout() step_run_box.addWidget(self.step_button) step_run_box.addWidget(self.stop_button) step_run_box.addWidget(self.run_button) ok_cancel_box = QHBoxLayout() ok_cancel_box.addWidget(self.cancel_button) vbox = QVBoxLayout() vbox.addLayout(grid) vbox.addWidget(box_scale) vbox.addWidget(box_time) #vbox.addLayout(checkboxes) vbox.addLayout(grid_hbox) vbox.addStretch() vbox.addLayout(step_run_box) vbox.addLayout(ok_cancel_box) self.setLayout(vbox)
def __init__(self, result_widget): QDialog.__init__(self) self._find_thread = FindInFilesThread() self.setWindowTitle("Find in files") self.resize(400, 300) #MAIN LAYOUT main_vbox = QVBoxLayout(self) self.pattern_line_edit = QLineEdit() self.dir_name_root = None self.user_home = os.path.expanduser('~') self.dir_combo = QComboBox() self.dir_combo.addItem(self.user_home) self.dir_combo.setEditable(True) self.open_button = QPushButton(QIcon(resources.IMAGES['find']), self.tr("Open")) self.filters_line_edit = QLineEdit("*.py") self.case_checkbox = QCheckBox(self.tr("C&ase sensitive")) self.type_checkbox = QCheckBox(self.tr("R&egular Expression")) self.recursive_checkbox = QCheckBox(self.tr("Rec&ursive")) self.recursive_checkbox.setCheckState(Qt.Checked) self.phrase_radio = QRadioButton( self.tr("Search by Phrase (Exact Match).")) self.phrase_radio.setChecked(True) self.words_radio = QRadioButton( self.tr("Search for all the words " "(anywhere in the document, not together).")) self.find_button = QPushButton(self.tr("Find!")) self.find_button.setMaximumWidth(150) self.cancel_button = QPushButton(self.tr("Cancel")) self.cancel_button.setMaximumWidth(150) self.result_widget = result_widget hbox = QHBoxLayout() hbox.addWidget(self.find_button) hbox.addWidget(self.cancel_button) #main section find_group_box = QGroupBox(self.tr("Main")) grid = QGridLayout() grid.addWidget(QLabel(self.tr("Text: ")), 0, 0) grid.addWidget(self.pattern_line_edit, 0, 1) grid.addWidget(QLabel(self.tr("Directory: ")), 1, 0) grid.addWidget(self.dir_combo, 1, 1) grid.addWidget(self.open_button, 1, 2) grid.addWidget(QLabel(self.tr("Filter: ")), 2, 0) grid.addWidget(self.filters_line_edit, 2, 1) find_group_box.setLayout(grid) #add main section to MAIN LAYOUT main_vbox.addWidget(find_group_box) #options sections options_group_box = QGroupBox(self.tr("Options")) gridOptions = QGridLayout() gridOptions.addWidget(self.case_checkbox, 0, 0) gridOptions.addWidget(self.type_checkbox, 1, 0) gridOptions.addWidget(self.recursive_checkbox, 2, 0) gridOptions.addWidget(self.phrase_radio, 0, 1) gridOptions.addWidget(self.words_radio, 1, 1) options_group_box.setLayout(gridOptions) #add options sections to MAIN LAYOUT main_vbox.addWidget(options_group_box) #add buttons to MAIN LAYOUT main_vbox.addLayout(hbox) #Focus self.pattern_line_edit.setFocus() self.open_button.setFocusPolicy(Qt.NoFocus) #signal self.connect(self.open_button, SIGNAL("clicked()"), self._select_dir) self.connect(self.find_button, SIGNAL("clicked()"), self._find_in_files) self.connect(self.cancel_button, SIGNAL("clicked()"), self._kill_thread) self.connect(self._find_thread, SIGNAL("found_pattern(PyQt_PyObject)"), self._found_match) self.connect(self._find_thread, SIGNAL("finished()"), self._find_thread_finished) self.connect(self.type_checkbox, SIGNAL("stateChanged(int)"), self._change_radio_enabled)
def __init__(self, parent, comp, basePMCheck, model): ''' Constructor ''' QMainWindow.__init__(self, parent) self.basePMCheck = basePMCheck # self.ui = Ui_Previewself.grbPageProperty() # self.ui.setupUi(self) self.resize(1000, 700) self.setWindowTitle("Preview Dialog") self.view = QgsComposerView(self) viewLayout = QGridLayout() viewLayout.setSpacing(0) viewLayout.setMargin(0) mHorizontalRuler = QgsComposerRuler(QgsComposerRuler.Horizontal) mVerticalRuler = QgsComposerRuler(QgsComposerRuler.Vertical) mRulerLayoutFix = QWidget() mRulerLayoutFix.setAttribute(Qt.WA_NoMousePropagation) mRulerLayoutFix.setBackgroundRole(QPalette.Window) mRulerLayoutFix.setFixedSize(mVerticalRuler.rulerSize(), mHorizontalRuler.rulerSize()) viewLayout.addWidget(mRulerLayoutFix, 0, 0) viewLayout.addWidget(mHorizontalRuler, 0, 1) viewLayout.addWidget(mVerticalRuler, 1, 0) self.view.setContentsMargins(0, 0, 0, 0) self.view.setHorizontalRuler(mHorizontalRuler) self.view.setVerticalRuler(mVerticalRuler) viewLayout.addWidget(self.view, 1, 1) # self.scene = comp self.view.setZoomLevel(1.0) self.view.setComposition(comp) self.scene = self.view.composition() layout = QVBoxLayout() hLayout = QHBoxLayout() hLayout.addLayout(viewLayout) self.mapItem = self.scene.getComposerMapById(0) self.view.scale(2.8, 2.8) self.view.setPreviewModeEnabled(True) self.toolBarAction = self.addToolBar("composer action") self.actionMapRefresh = QAction(self) self.actionMapRefresh.setObjectName("actionMapRefresh") icon3 = QIcon("Resource/Refresh.png") self.actionMapRefresh.setIcon(icon3) self.actionMapRefresh.setToolTip("Refresh") # self.textItemAction.setCheckable(True) self.connect(self.actionMapRefresh, SIGNAL("triggered()"), self.actionMapRefresh_triggered) self.toolBarAction.addAction(self.actionMapRefresh) # # self.templeteCreateAction = QAction(self) # # self.templeteCreateAction.setObjectName("createTempleteAction") # # icon4 = QIcon("Resource\\templetepointer.png") # # self.templeteCreateAction.setIcon(icon4) # # self.templeteCreateAction.setToolTip("Create Templete") # # self.templeteCreateAction.setCheckable(True) # # self.connect(self.templeteCreateAction, SIGNAL("triggered()"), self.createTempleteAction) # # self.toolBar.addAction(self.templeteCreateAction) # layout.insertWidget(0, self.toolBar) # self.scene.selectedItemChanged.connect(self.selectedItemDisplay) self.view.selectedItemChanged.connect(self.selectedItemDisplay) self.view.cursorPosChanged.connect(self.cursorPosChangedEvent) # self.connect(self.view, SIGNAL("selectedItemChanged(QgsComposerItem)"),self, SLOT("selectedItemDisplay(QgsComposerItem)")) # self.scene.composerLabelAdded.connect(self.composerLabelAddedEvent) self.view.itemRemoved.connect(self.deleteItem) # self.connect( self.view, SIGNAL( "actionFinished()" ), self.setSelectionTool) #listen out for position updates from the QgsComposerView self.propertyWidget = QWidget(self) hLayout.addWidget(self.propertyWidget) self.propertyWidget.setObjectName("propertyWidget") self.propertyWidget.resize(222, 302) self.vLayout_3 = QVBoxLayout(self.propertyWidget) self.vLayout_3.setObjectName("vLayout_3") self.groupBox = QGroupBox(self.propertyWidget) self.groupBox.setObjectName("groupBox") self.horizontalLayout_2 = QHBoxLayout(self.groupBox) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.frame = QFrame(self.groupBox) self.frame.setFrameShape(QFrame.StyledPanel) self.frame.setFrameShadow(QFrame.Raised) self.frame.setObjectName("frame") self.verticalLayout = QVBoxLayout(self.frame) self.verticalLayout.setObjectName("verticalLayout") self.label = QLabel(self.frame) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.labelText = QPlainTextEdit(self.frame) self.labelText.setObjectName("labelText") self.verticalLayout.addWidget(self.labelText) self.btnLabelFont = QPushButton(self.frame) self.btnLabelFont.setObjectName("btnLabelFont") self.verticalLayout.addWidget(self.btnLabelFont) self.btnLabelColor = QPushButton(self.frame) self.btnLabelColor.setObjectName("btnLabelColor") self.verticalLayout.addWidget(self.btnLabelColor) self.frame_2 = QFrame(self.frame) self.frame_2.setFrameShape(QFrame.StyledPanel) self.frame_2.setFrameShadow(QFrame.Raised) self.frame_2.setObjectName("frame_2") self.horizontalLayout = QHBoxLayout(self.frame_2) self.horizontalLayout.setObjectName("horizontalLayout") self.label_2 = QLabel(self.frame_2) self.label_2.setObjectName("label_2") self.horizontalLayout.addWidget(self.label_2) self.spinLabelRotation = QSpinBox(self.frame_2) self.spinLabelRotation.setObjectName("spinLabelRotation") self.spinLabelRotation.setMinimum(-360) self.spinLabelRotation.setMaximum(360) self.horizontalLayout.addWidget(self.spinLabelRotation) self.verticalLayout.addWidget(self.frame_2) self.chbBackgroundEnable = QCheckBox(self.frame) self.chbBackgroundEnable.setChecked(True) self.chbBackgroundEnable.setObjectName("chbBackgroundEnable") self.verticalLayout.addWidget(self.chbBackgroundEnable) self.horizontalLayout_2.addWidget(self.frame) self.vLayout_3.addWidget(self.groupBox) self.resolutionFrame = QFrame(self.frame) self.resolutionFrame.setFrameShape(QFrame.StyledPanel) self.resolutionFrame.setFrameShadow(QFrame.Raised) self.resolutionFrame.setObjectName("resolutionFrame") self.horizontalLayout4 = QHBoxLayout(self.resolutionFrame) self.horizontalLayout4.setObjectName("horizontalLayout4") self.label_resolution = QLabel(self.resolutionFrame) self.label_resolution.setObjectName("label_resolution") self.label_resolution.setText("Print Resolution (dpi):") self.horizontalLayout4.addWidget(self.label_resolution) self.spinResolution = QSpinBox(self.resolutionFrame) self.spinResolution.setObjectName("spinResolution") self.spinResolution.setMinimum(0) self.spinResolution.setMaximum(1000) self.spinResolution.setValue(300) self.horizontalLayout4.addWidget(self.spinResolution) # self.verticalLayout.addWidget(self.frame_2) self.vLayout_3.addWidget(self.resolutionFrame) self.gbTable = GroupBox(self.propertyWidget) self.gbTable.Caption = "Table" self.vLayout_3.addWidget(self.gbTable) self.mTableView = QTableView(self.gbTable) self.gbTable.Add = self.mTableView hHeder = self.mTableView.horizontalHeader() hHeder.setVisible(False) vHeder = self.mTableView.verticalHeader() vHeder.setVisible(False) # self.mTableView.setFixedHeight(70) # self.mTableView.setFixedWidth(comp.paperWidth() - 40) # self.stdItemModel = QStandardItemModel() # self. self.spaceItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.vLayout_3.addItem(self.spaceItem) self.groupBox.setTitle("Label Property") self.label.setText("Label Text:") self.btnLabelFont.setText("Label Font") self.btnLabelColor.setText("Label Color") self.label_2.setText("Label Rotation:") self.chbBackgroundEnable.setText("Background Enable") self.groupBox.setEnabled(False) self.connect(self.btnLabelFont, SIGNAL("clicked()"), self.btnLabelFontClick) self.connect(self.btnLabelColor, SIGNAL("clicked()"), self.btnLabelColorClick) self.connect(self.chbBackgroundEnable, SIGNAL("clicked()"), self.chbBackgroundEnableClick) self.labelText.textChanged.connect(self.labelTextChanged) self.spinLabelRotation.valueChanged.connect( self.spinLabelRotationValueChanged) layout.addLayout(hLayout) # self.btnBack = QPushButton() self.btnBack.setText("back") footerLayout = QHBoxLayout() footerLayout.addWidget(self.btnBack) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") footerLayout.addWidget(self.buttonBox) layout.addLayout(footerLayout) self.setLayout(layout) deleteItemKey = QShortcut(QKeySequence(Qt.Key_Delete), self) deleteItemKey.activated.connect(self.deleteItem) # self.btnBack.clicked.connect(self.back) self.connect(self.buttonBox, SIGNAL("accepted()"), self.acceptMethod) self.connect(self.buttonBox, SIGNAL("rejected()"), self.reject) self.btnCancel = self.buttonBox.button(QDialogButtonBox.Cancel) self.view.setCurrentTool(QgsComposerView.Select) self.btnLabelColor.setVisible(False) # self.btnBack.setVisible(False) self.chbBackgroundEnable.setVisible(False) # self.view.emit(SIGNAL("actionFinished")) # if self.scene.plotStyle() != QgsComposition.Preview: # self.scene.setPlotStyle(QgsComposition.Preview) # self.mapItem.setPreviewMode(QgsComposerMap.Render) # self.mapItem.updateCachedImage() # self.mapItem.setSelected(True) self.mComposition = comp self.composerMapItem = self.mComposition.composerMapItems()[0] self.composerMapItem.setUpdatesEnabled(True) self.mStdModel = model self.mTableView.setModel(self.mStdModel) self.mTableView.setSpan(0, 0, 1, 6) self.mTableView.setSpan(1, 0, 1, 2) self.mTableView.setSpan(2, 0, 2, 1) self.mTableView.setSpan(4, 0, 1, 2) self.mTableView.setSpan(5, 0, 1, 2) self.mTableView.setSpan(6, 0, 1, 2) self.mTableView.setSpan(0, 6, 1, 8) self.mTableView.setSpan(1, 7, 1, 4) self.mTableView.setSpan(1, 11, 1, 3) self.mTableView.setSpan(2, 7, 1, 4) self.mTableView.setSpan(2, 11, 1, 3)
def __createLayout( self ): """ Creates the dialog layout """ self.resize( 600, 400 ) self.setSizeGripEnabled( True ) verticalLayout = QVBoxLayout( self ) gridLayout = QGridLayout() # Project name nameLabel = QLabel( self ) nameLabel.setText( "Project name:" ) gridLayout.addWidget( nameLabel, 0, 0, 1, 1 ) self.nameEdit = QLineEdit( self ) self.nameEdit.setToolTip( "Type a project name without a path" ) self.nameEdit.installEventFilter( self ) gridLayout.addWidget( self.nameEdit, 0, 1, 1, 1 ) # Project dir dirLabel = QLabel( self ) dirLabel.setText( "Project directory:" ) gridLayout.addWidget( dirLabel, 1, 0, 1, 1 ) self.dirEdit = QLineEdit( self ) self.dirEdit.setToolTip( "Not existed directories will be created" ) gridLayout.addWidget( self.dirEdit, 1, 1, 1, 1 ) self.dirButton = QPushButton( self ) self.dirButton.setText( "..." ) gridLayout.addWidget( self.dirButton, 1, 2, 1, 1 ) self.dirCompleter = DirCompleter( self.dirEdit ) # Project script mainScriptLabel = QLabel( "Main script:", self ) gridLayout.addWidget( mainScriptLabel, 2, 0, 1, 1 ) self.scriptEdit = QLineEdit( self ) self.scriptEdit.setToolTip( "Project main script, " "used when the project is run" ) gridLayout.addWidget( self.scriptEdit, 2, 1, 1, 1 ) self.scriptButton = QPushButton( "...", self ) gridLayout.addWidget( self.scriptButton, 2, 2, 1, 1 ) self.fileCompleter = FileCompleter( self.scriptEdit ) # Import dirs importLabel = QLabel( self ) importLabel.setText( "Import directories:" ) importLabel.setAlignment( Qt.AlignTop ) gridLayout.addWidget( importLabel, 3, 0, 1, 1 ) self.importDirList = QListWidget( self ) self.importDirList.setAlternatingRowColors( True ) self.importDirList.setSelectionMode( QAbstractItemView.SingleSelection ) self.importDirList.setSelectionBehavior( QAbstractItemView.SelectRows ) self.importDirList.setItemDelegate( NoOutlineHeightDelegate( 4 ) ) self.importDirList.setToolTip( "Directories where to look for " "project specific imports" ) gridLayout.addWidget( self.importDirList, 3, 1, 1, 1 ) self.addImportDirButton = QPushButton( self ) self.addImportDirButton.setText( "Add dir" ) self.delImportDirButton = QPushButton( self ) self.delImportDirButton.setText( "Delete dir" ) self.delImportDirButton.setEnabled( False ) vLayout = QVBoxLayout() vLayout.addWidget( self.addImportDirButton ) vLayout.addWidget( self.delImportDirButton ) vLayout.addStretch( 0 ) gridLayout.addLayout( vLayout, 3, 2, 1, 1 ) # Version versionLabel = QLabel( self ) versionLabel.setText( "Version:" ) gridLayout.addWidget( versionLabel, 4, 0, 1, 1 ) self.versionEdit = QLineEdit( self ) gridLayout.addWidget( self.versionEdit, 4, 1, 1, 1 ) # Author authorLabel = QLabel( self ) authorLabel.setText( "Author:" ) gridLayout.addWidget( authorLabel, 5, 0, 1, 1 ) self.authorEdit = QLineEdit( self ) gridLayout.addWidget( self.authorEdit, 5, 1, 1, 1 ) # E-mail emailLabel = QLabel( self ) emailLabel.setText( "E-mail:" ) gridLayout.addWidget( emailLabel, 6, 0, 1, 1 ) self.emailEdit = QLineEdit( self ) gridLayout.addWidget( self.emailEdit, 6, 1, 1, 1 ) # License licenseLabel = QLabel( self ) licenseLabel.setText( "License:" ) gridLayout.addWidget( licenseLabel, 7, 0, 1, 1 ) self.licenseEdit = QLineEdit( self ) gridLayout.addWidget( self.licenseEdit, 7, 1, 1, 1 ) # Copyright copyrightLabel = QLabel( self ) copyrightLabel.setText( "Copyright:" ) gridLayout.addWidget( copyrightLabel, 8, 0, 1, 1 ) self.copyrightEdit = QLineEdit( self ) gridLayout.addWidget( self.copyrightEdit, 8, 1, 1, 1 ) # Description descriptionLabel = QLabel( self ) descriptionLabel.setText( "Description:" ) descriptionLabel.setAlignment( Qt.AlignTop ) gridLayout.addWidget( descriptionLabel, 9, 0, 1, 1 ) self.descriptionEdit = QTextEdit( self ) self.descriptionEdit.setTabChangesFocus( True ) self.descriptionEdit.setAcceptRichText( False ) gridLayout.addWidget( self.descriptionEdit, 9, 1, 1, 1 ) # Creation date creationDateLabel = QLabel( self ) creationDateLabel.setText( "Creation date:" ) gridLayout.addWidget( creationDateLabel, 10, 0, 1, 1 ) self.creationDateEdit = FramedLabelWithDoubleClick() self.creationDateEdit.setToolTip( "Double click to copy" ) gridLayout.addWidget( self.creationDateEdit, 10, 1, 1, 1 ) # Project UUID uuidLabel = QLabel( self ) uuidLabel.setText( "UUID:" ) gridLayout.addWidget( uuidLabel, 11, 0, 1, 1 ) self.uuidEdit = FramedLabelWithDoubleClick( "", self.__copyProjectPath ) gridLayout.addWidget( self.uuidEdit, 11, 1, 1, 1 ) verticalLayout.addLayout( gridLayout ) # Buttons at the bottom buttonBox = QDialogButtonBox( self ) buttonBox.setOrientation( Qt.Horizontal ) buttonBox.setStandardButtons( QDialogButtonBox.Cancel | \ QDialogButtonBox.Ok ) verticalLayout.addWidget( buttonBox ) nameLabel.setBuddy( self.nameEdit ) dirLabel.setBuddy( self.dirEdit ) versionLabel.setBuddy( self.versionEdit ) authorLabel.setBuddy( self.authorEdit ) emailLabel.setBuddy( self.emailEdit ) licenseLabel.setBuddy( self.licenseEdit ) copyrightLabel.setBuddy( self.copyrightEdit ) descriptionLabel.setBuddy( self.descriptionEdit ) buttonBox.accepted.connect( self.onOKButton ) buttonBox.rejected.connect( self.reject ) self.dirButton.clicked.connect( self.onDirButton ) self.scriptButton.clicked.connect( self.onScriptButton ) self.importDirList.currentRowChanged.connect( self.onImportDirRowChanged ) self.addImportDirButton.clicked.connect( self.onAddImportDir ) self.delImportDirButton.clicked.connect( self.onDelImportDir ) self.nameEdit.textEdited.connect( self.onProjectNameChanged ) self.setTabOrder( self.nameEdit, self.dirEdit ) self.setTabOrder( self.dirEdit, self.dirButton ) self.setTabOrder( self.dirButton, self.scriptEdit ) self.setTabOrder( self.scriptEdit, self.scriptButton ) self.setTabOrder( self.scriptButton, self.importDirList ) self.setTabOrder( self.importDirList, self.addImportDirButton ) self.setTabOrder( self.addImportDirButton, self.delImportDirButton ) self.setTabOrder( self.delImportDirButton, self.versionEdit ) self.setTabOrder( self.versionEdit, self.authorEdit ) self.setTabOrder( self.authorEdit, self.emailEdit ) self.setTabOrder( self.emailEdit, self.licenseEdit ) self.setTabOrder( self.licenseEdit, self.copyrightEdit ) self.setTabOrder( self.copyrightEdit, self.descriptionEdit ) self.setTabOrder( self.descriptionEdit, buttonBox ) return
def __init__(self, parent=None): super(Dialog, self).__init__(parent) self._info = None self._text = '' self._convertedtext = '' self._encoding = None self.mainwindow = parent self.fromVersionLabel = QLabel() self.fromVersion = QLineEdit() self.reason = QLabel() self.toVersionLabel = QLabel() self.toVersion = QLineEdit() self.lilyChooser = lilychooser.LilyChooser() self.messages = QTextBrowser() self.diff = QTextBrowser(lineWrapMode=QTextBrowser.NoWrap) self.uni_diff = QTextBrowser(lineWrapMode=QTextBrowser.NoWrap) self.copyCheck = QCheckBox( checked=QSettings().value('convert_ly/copy_messages', True, bool)) self.tabw = QTabWidget() self.tabw.addTab(self.messages, '') self.tabw.addTab(self.diff, '') self.tabw.addTab(self.uni_diff, '') self.buttons = QDialogButtonBox(QDialogButtonBox.Reset | QDialogButtonBox.Save | QDialogButtonBox.Ok | QDialogButtonBox.Cancel) self.buttons.button(QDialogButtonBox.Ok).clicked.connect(self.accept) self.buttons.rejected.connect(self.reject) self.buttons.button(QDialogButtonBox.Reset).clicked.connect(self.run) self.buttons.button(QDialogButtonBox.Save).clicked.connect( self.saveFile) layout = QVBoxLayout() self.setLayout(layout) grid = QGridLayout() grid.addWidget(self.fromVersionLabel, 0, 0) grid.addWidget(self.fromVersion, 0, 1) grid.addWidget(self.reason, 0, 2, 1, 3) grid.addWidget(self.toVersionLabel, 1, 0) grid.addWidget(self.toVersion, 1, 1) grid.addWidget(self.lilyChooser, 1, 3, 1, 2) layout.addLayout(grid) layout.addWidget(self.tabw) layout.addWidget(self.copyCheck) layout.addWidget(widgets.Separator()) layout.addWidget(self.buttons) app.translateUI(self) qutil.saveDialogSize(self, 'convert_ly/dialog/size', QSize(600, 300)) app.settingsChanged.connect(self.readSettings) self.readSettings() self.finished.connect(self.saveCopyCheckSetting) self.lilyChooser.currentIndexChanged.connect( self.slotLilyPondVersionChanged) self.slotLilyPondVersionChanged()
def __init__(self, *args): PluginBase.__init__(self, BrickletVoltageCurrent, *args) self.setupUi(self) self.vc = self.device self.cbe_current = CallbackEmulator(self.vc.get_current, self.cb_current, self.increase_error_count) self.cbe_voltage = CallbackEmulator(self.vc.get_voltage, self.cb_voltage, self.increase_error_count) self.cbe_power = CallbackEmulator(self.vc.get_power, self.cb_power, self.increase_error_count) self.current_label = CurrentLabel('Current: ') self.voltage_label = VoltageLabel('Voltage: ') self.power_label = PowerLabel('Power: ') self.current_value = 0 self.voltage_value = 0 self.power_value = 0 plot_list_current = [['', Qt.red, self.get_current_value]] plot_list_voltage = [['', Qt.blue, self.get_voltage_value]] plot_list_power = [['', Qt.darkGreen, self.get_power_value]] self.plot_widget_current = PlotWidget('Current [mA]', plot_list_current) self.plot_widget_voltage = PlotWidget('Voltage [mV]', plot_list_voltage) self.plot_widget_power = PlotWidget('Power [mW]', plot_list_power) self.save_cal_button.clicked.connect(self.save_cal_clicked) self.save_conf_button.clicked.connect(self.save_conf_clicked) layout_plots = QHBoxLayout() layout_current = QVBoxLayout() layout_voltage = QVBoxLayout() layout_power = QVBoxLayout() layout_label_current = QHBoxLayout() layout_label_current.addStretch() layout_label_current.addWidget(self.current_label) layout_label_current.addStretch() layout_current.addLayout(layout_label_current) layout_current.addWidget(self.plot_widget_current) layout_label_voltage = QHBoxLayout() layout_label_voltage.addStretch() layout_label_voltage.addWidget(self.voltage_label) layout_label_voltage.addStretch() layout_voltage.addLayout(layout_label_voltage) layout_voltage.addWidget(self.plot_widget_voltage) layout_label_power = QHBoxLayout() layout_label_power.addStretch() layout_label_power.addWidget(self.power_label) layout_label_power.addStretch() layout_power.addLayout(layout_label_power) layout_power.addWidget(self.plot_widget_power) layout_plots.addLayout(layout_current) layout_plots.addLayout(layout_voltage) layout_plots.addLayout(layout_power) self.main_layout.insertLayout(0, layout_plots)
class ExportCSVDialog(QDialog): def __init__(self, parent, nodes, selectedAttributes): #current column QDialog.__init__(self, parent) self.nodes = nodes self.exportPath = os.path.join(os.path.expanduser("~"), "dff.csv") self.attributes = selectedAttributes self.split = False self.dialogLayout = QVBoxLayout() self.setLayout(self.dialogLayout) self.setPathEdit() self.setAttributesSelection() self.setSplitCheckBox() self.setButtons() def setButtons(self): self.dialogButtonsLayout = QHBoxLayout() self.dialogButtonsBox = QDialogButtonBox() self.dialogButtonsBox.setStandardButtons(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) self.connect(self.dialogButtonsBox, SIGNAL("accepted()"), self.accept) self.connect(self.dialogButtonsBox, SIGNAL("rejected()"), self.reject) self.dialogButtonsLayout.addWidget(self.dialogButtonsBox) self.dialogLayout.addLayout(self.dialogButtonsLayout) def setSplitCheckBox(self): self.splitCheckBox = QCheckBox("Split file every 65536 lines") self.connect(self.splitCheckBox, SIGNAL("stateChanged(int)"), self.setSplit) self.dialogLayout.addWidget(self.splitCheckBox) def setSplit(self, state): if state: self.split = True else: self.split = False def setAttributesSelection(self): self.attributesSelectionLayout = QHBoxLayout() self.attributesSelectionLabel = QLabel(self.tr("Choose CSV column :")) attributesSelectionButton = QPushButton("...") self.attributesSelectionLayout.addWidget(self.attributesSelectionLabel) self.attributesSelectionLayout.addWidget(attributesSelectionButton) self.dialogLayout.addLayout(self.attributesSelectionLayout) self.connect(attributesSelectionButton, SIGNAL("clicked()"), self.askColumn) def askColumn(self): #if timeline node selectAttributesWizard = SelectAttributesWizard( self.parent().model(), self.attributes, self.parent().model().defaultAttributes() ) # need model by default for list check and defalt atributs, 'current selected file as steel a meaning' rather always parse list ? , use attribute selector ? if selectAttributesWizard.exec_( ) == 1: #get choosen attribtes iand set to list # if iret == 1: self.attributes = selectAttributesWizard.getSelectedAttributes() def setPathEdit(self): self.exportPathLayout = QHBoxLayout() self.exportPathLabel = QLabel(self.tr("Path of csv file:")) self.exportPathLineEdit = QLineEdit(self.exportPath) self.exportPathLineEdit.setReadOnly(True) exportPathButton = QPushButton("...") self.exportPathLayout.addWidget(self.exportPathLabel) self.exportPathLayout.addWidget(self.exportPathLineEdit) self.exportPathLayout.addWidget(exportPathButton) self.dialogLayout.addLayout(self.exportPathLayout) self.connect(exportPathButton, SIGNAL("clicked()"), self.askExportPath) def askExportPath(self): newPath = QFileDialog().getSaveFileName(self, self.tr("CSV path"), self.exportPath) if len(newPath): self.exportPath = unicode(newPath.toUtf8(), 'utf-8') self.exportPathLineEdit.clear() self.exportPathLineEdit.insert(self.exportPath) def accept(self): #XXX thread me self.exportCSV() QDialog.accept(self) #show advancement in widget (next) def exportCSV(self): try: csv = CSV() ##if not self.timeLineButton.isChecked(): csv.exportNodes(self.exportPath, self.nodes, self.attributes, self.split) except Exception as e: msg = QMessageBox(self) msg.setWindowTitle(self.tr("Export to CSV error")) msg.setText(self.tr("An issue occured while exporting to CSV")) msg.setIcon(QMessageBox.Warning) msg.setDetailedText(str(e)) msg.setStandardButtons(QMessageBox.Ok) ret = msg.exec_()
def __init__(self, parent): QDialog.__init__(self, parent) self.prm = parent.prm self.currLocale = self.parent().prm['data']['currentLocale'] self.currLocale.setNumberOptions(self.currLocale.OmitGroupSeparator | self.currLocale.RejectGroupSeparator) vbl = QVBoxLayout() self.grid = QGridLayout() #Sound Label soundLabelLabel = QLabel(self.tr('Sound Label: ')) self.soundLabelWidget = QLineEdit(self.tr('Sinusoid')) self.grid.addWidget(soundLabelLabel, 0, 0) self.grid.addWidget(self.soundLabelWidget, 0, 1) # Sound Frequency soundFrequencyLabel = QLabel(self.tr('Frequency (Hz):')) defaultFrequency = 1000 self.soundFrequencyWidget = QLineEdit(self.currLocale.toString(defaultFrequency)) self.soundFrequencyWidget.setValidator(QDoubleValidator(self)) self.grid.addWidget(soundFrequencyLabel, 1, 0) self.grid.addWidget(self.soundFrequencyWidget, 1, 1) # Sound Phase soundPhaseLabel = QLabel(self.tr('Phase (radians):')) defaultPhase = 0 self.soundPhaseWidget = QLineEdit(self.currLocale.toString(defaultPhase)) self.soundPhaseWidget.setValidator(QDoubleValidator(self)) self.grid.addWidget(soundPhaseLabel, 2, 0) self.grid.addWidget(self.soundPhaseWidget, 2, 1) # Sound Duration soundDurationLabel = QLabel(self.tr('Duration (ms):')) defaultDuration = 980 self.soundDurationWidget = QLineEdit(self.currLocale.toString(defaultDuration)) self.soundDurationWidget.setValidator(QDoubleValidator(self)) self.grid.addWidget(soundDurationLabel, 3, 0) self.grid.addWidget(self.soundDurationWidget, 3, 1) #Sound Ramps soundRampsLabel = QLabel(self.tr('Ramps (ms):')) defaultRamps = 10 self.soundRampsWidget = QLineEdit(self.currLocale.toString(defaultRamps)) self.soundRampsWidget.setValidator(QDoubleValidator(self)) self.grid.addWidget(soundRampsLabel, 4, 0) self.grid.addWidget(self.soundRampsWidget, 4, 1) #Sound Level soundLevelLabel = QLabel(self.tr('Level (dB):')) defaultLevel = 40 self.soundLevelWidget = QLineEdit(self.currLocale.toString(defaultLevel)) self.soundLevelWidget.setValidator(QIntValidator(self)) self.grid.addWidget(soundLevelLabel, 5, 0) self.grid.addWidget(self.soundLevelWidget, 5, 1) #Sound Sampling Rate sampRateLabel = QLabel(self.tr('Sampling Rate')) defaultSampRate = 48000 self.sampRateWidget = QLineEdit(self.currLocale.toString(defaultSampRate)) self.sampRateWidget.setValidator(QIntValidator(self)) self.grid.addWidget(sampRateLabel, 6, 0) self.grid.addWidget(self.sampRateWidget, 6, 1) #Ear soundEarLabel = QLabel(self.tr('Ear: ')) self.soundEarChooser = QComboBox() self.soundEarChooser.addItems([self.tr('Right'), self.tr('Left'), self.tr('Both')]) self.soundEarChooser.setCurrentIndex(0) self.grid.addWidget(soundEarLabel, 7, 0) self.grid.addWidget(self.soundEarChooser, 7, 1) self.soundEarChooser.currentIndexChanged[int].connect(self.onChangeChannel) self.currChannel = self.tr('Right') buttonBox = QDialogButtonBox(QDialogButtonBox.Ok| QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.accept) buttonBox.rejected.connect(self.reject) vbl.addLayout(self.grid) vbl.addWidget(buttonBox) self.setLayout(vbl) self.setWindowTitle(self.tr("Generate Sinusoid"))
def __createLayout( self ): " Creates the widget layout " verticalLayout = QVBoxLayout( self ) verticalLayout.setContentsMargins( 0, 0, 0, 0 ) verticalLayout.setSpacing( 0 ) headerFrame = QFrame() headerFrame.setFrameStyle( QFrame.StyledPanel ) headerFrame.setAutoFillBackground( True ) headerPalette = headerFrame.palette() headerBackground = headerPalette.color( QPalette.Background ) headerBackground.setRgb( min( headerBackground.red() + 30, 255 ), min( headerBackground.green() + 30, 255 ), min( headerBackground.blue() + 30, 255 ) ) headerPalette.setColor( QPalette.Background, headerBackground ) headerFrame.setPalette( headerPalette ) headerFrame.setFixedHeight( 24 ) self.__headerLabel = QLabel( "Variables" ) expandingSpacer = QSpacerItem( 10, 10, QSizePolicy.Expanding ) fixedSpacer = QSpacerItem( 3, 3 ) fixedSpacer1 = QSpacerItem( 5, 5 ) self.__mcfButton = QToolButton() self.__mcfButton.setCheckable( True ) self.__mcfButton.setChecked( self.__hideMCFFilter ) self.__mcfButton.setIcon( PixmapCache().getIcon( 'dbgfltmcf.png' ) ) self.__mcfButton.setFixedSize( 20, 20 ) self.__mcfButton.setToolTip( "Show/hide modules, classes and functions" ) self.__mcfButton.setFocusPolicy( Qt.NoFocus ) self.__mcfButton.clicked.connect( self.__onMCFFilter ) self.__globalAndLocalButton = QToolButton() self.__globalAndLocalButton.setCheckable( True ) self.__globalAndLocalButton.setChecked( self.__filter == VariablesViewer.FilterGlobalAndLocal ) self.__globalAndLocalButton.setIcon( PixmapCache().getIcon( 'dbgfltgl.png' ) ) self.__globalAndLocalButton.setFixedSize( 20, 20 ) self.__globalAndLocalButton.setToolTip( "Do not filter out global or local variables" ) self.__globalAndLocalButton.setFocusPolicy( Qt.NoFocus ) self.__globalAndLocalButton.clicked.connect( self.__onGlobalAndLocalFilter ) self.__localOnlyButton = QToolButton() self.__localOnlyButton.setCheckable( True ) self.__localOnlyButton.setChecked( self.__filter == VariablesViewer.FilterLocalOnly ) self.__localOnlyButton.setIcon( PixmapCache().getIcon( 'dbgfltlo.png' ) ) self.__localOnlyButton.setFixedSize( 20, 20 ) self.__localOnlyButton.setToolTip( "Filter out global variables" ) self.__localOnlyButton.setFocusPolicy( Qt.NoFocus ) self.__localOnlyButton.clicked.connect( self.__onLocalFilter ) self.__globalOnlyButton = QToolButton() self.__globalOnlyButton.setCheckable( True ) self.__globalOnlyButton.setChecked( self.__filter == VariablesViewer.FilterGlobalOnly ) self.__globalOnlyButton.setIcon( PixmapCache().getIcon( 'dbgfltgo.png' ) ) self.__globalOnlyButton.setFixedSize( 20, 20 ) self.__globalOnlyButton.setToolTip( "Filter out local variables" ) self.__globalOnlyButton.setFocusPolicy( Qt.NoFocus ) self.__globalOnlyButton.clicked.connect( self.__onGlobalFilter ) self.__execStatement = CDMComboBox( True ) self.__execStatement.setSizePolicy( QSizePolicy.Expanding, QSizePolicy.Expanding ) self.__execStatement.lineEdit().setToolTip( "Expression to be executed" ) self.__execStatement.setFixedHeight( 26 ) self.__execStatement.editTextChanged.connect( self.__execStatementChanged ) self.__execStatement.enterClicked.connect( self.__onEnterInExec ) self.__execButton = QPushButton( "Exec" ) # self.__execButton.setFocusPolicy( Qt.NoFocus ) self.__execButton.setEnabled( False ) self.__execButton.clicked.connect( self.__onExec ) self.__evalStatement = CDMComboBox( True ) self.__evalStatement.setSizePolicy( QSizePolicy.Expanding, QSizePolicy.Expanding ) self.__evalStatement.lineEdit().setToolTip( "Expression to be evaluated" ) self.__evalStatement.setFixedHeight( 26 ) self.__evalStatement.editTextChanged.connect( self.__evalStatementChanged ) self.__evalStatement.enterClicked.connect( self.__onEnterInEval ) self.__evalButton = QPushButton( "Eval" ) # self.__evalButton.setFocusPolicy( Qt.NoFocus ) self.__evalButton.setEnabled( False ) self.__evalButton.clicked.connect( self.__onEval ) headerLayout = QHBoxLayout() headerLayout.setContentsMargins( 0, 0, 0, 0 ) headerLayout.setSpacing( 0 ) headerLayout.addSpacerItem( fixedSpacer ) headerLayout.addWidget( self.__headerLabel ) headerLayout.addSpacerItem( expandingSpacer ) headerLayout.addWidget( self.__mcfButton ) headerLayout.addSpacerItem( fixedSpacer1 ) headerLayout.addWidget( self.__globalAndLocalButton ) headerLayout.addWidget( self.__localOnlyButton ) headerLayout.addWidget( self.__globalOnlyButton ) headerFrame.setLayout( headerLayout ) execEvalLayout = QGridLayout() execEvalLayout.setContentsMargins( 1, 1, 1, 1 ) execEvalLayout.setSpacing( 1 ) execEvalLayout.addWidget( self.__execStatement, 0, 0 ) execEvalLayout.addWidget( self.__execButton, 0, 1 ) execEvalLayout.addWidget( self.__evalStatement, 1, 0 ) execEvalLayout.addWidget( self.__evalButton, 1, 1 ) verticalLayout.addWidget( headerFrame ) verticalLayout.addWidget( self.__browser ) verticalLayout.addLayout( execEvalLayout ) return
class Window(QMainWindow): def __init__(self): self.a = 0 QMainWindow.__init__(self) self.setWindowTitle("Explorador de archivos y carpetas") self.back_history = [] self.forward_history = [] self.back_button = QPushButton(self) self.back_button.setIcon(QIcon("images/back.png")) self.back_button.clicked.connect(self.back_clicked) self.back_button.setEnabled(False) self.forward_button = QPushButton(self) self.forward_button.setIcon(QIcon("images/forward.png")) self.forward_button.clicked.connect(self.forward_clicked) self.forward_button.setEnabled(False) self.up_button = QPushButton(self) self.up_button.setIcon(QIcon("images/up.png")) self.up_button.clicked.connect(self.up_button_clicked) self.address_edit = QLineEdit(self) self.refresh_button = QPushButton(self) self.refresh_button.setIcon(QIcon("images/update.png")) self.refresh_button.clicked.connect(self.refresh_button_clicked) self.toplayout = QHBoxLayout() self.toplayout.addWidget(self.back_button) self.toplayout.addWidget(self.forward_button) self.toplayout.addWidget(self.up_button) self.toplayout.addWidget(self.address_edit) self.toplayout.addWidget(self.refresh_button) self.main_tree = QTreeWidget(self) self.main_tree.setRootIsDecorated(False) self.main_tree.setHeaderLabels( ("Nombre", u"Fecha de modificación", u"Tamaño")) self.main_tree.itemDoubleClicked.connect(self.item_double_clicked) self.layout = QVBoxLayout() self.layout.addLayout(self.toplayout) self.layout.addWidget(self.main_tree) self.central_widget = QWidget(self) self.central_widget.setLayout(self.layout) self.setCentralWidget(self.central_widget) self.resize(800, 600) # Iniciar en el directorio actual. self.load_path(getcwd()) def back_clicked(self, checked): if self.back_history and len(self.back_history) > 1: # Obtener el último elemento. path = self.back_history[-2] self.forward_history.append(self.back_history[-1]) # Remover el directorio actual. del self.back_history[-1] self.load_path(path, False) def forward_clicked(self, checked): if self.forward_history: path = self.forward_history[-1] self.back_history.append(path) del self.forward_history[-1] self.load_path(path, False) def item_double_clicked(self, item, column): filepath = join(self.current_path, unicode(item.text(0))) if isdir(filepath): self.load_path(filepath) else: # Iniciar archivo con el programa predeterminado. #startfile(filepath) a = filepath parcial.ponfoto(a) #print self.a def up_button_clicked(self, checked): parent = dirname(self.current_path) if parent != self.current_path: self.load_path(parent) def load_path(self, path, use_history=True): # Obtener archivos y carpetas. items = listdir(unicode(path)) # Eliminar el contenido anterior. self.main_tree.clear() for i in items: # Omitir archivos ocultos. if i.startswith("."): continue filepath = join(path, i) # Obtener informacion del archivo. stats = stat(filepath) # Crear el control ítem. item_widget = QTreeWidgetItem( (i, strftime("%c", localtime(stats.st_mtime)).decode("utf-8"), size(stats.st_size) if isfile(filepath) else "")) # Establecer el ícono correspondiente. item_widget.setIcon( 0, QIcon("images/%s.png" % ("file" if isfile(filepath) else "folder"))) # Añadir elemento. self.main_tree.addTopLevelItem(item_widget) # Ajustar el tamaño de las columnas. for i in range(3): self.main_tree.resizeColumnToContents(i) self.current_path = path self.address_edit.setText(self.current_path) # Añadir al historial. if use_history: self.back_history.append(self.current_path) # Habilitar / dehabilitar botones del historial. if self.back_history and len(self.back_history) > 1: if not self.back_button.isEnabled(): self.back_button.setEnabled(True) else: if self.back_button.isEnabled(): self.forward_history = [] self.back_button.setEnabled(False) if self.forward_history: if not self.forward_button.isEnabled(): self.forward_button.setEnabled(True) else: if self.forward_button.isEnabled(): self.forward_button.setEnabled(False) def refresh_button_clicked(self, checked): self.load_path(self.current_path)
class GenericParameterWidget(QWidget, object): """Widget class for generic parameter.""" def __init__(self, parameter, parent=None): """Constructor .. versionadded:: 2.2 :param parameter: A Generic object. :type parameter: GenericParameter """ QWidget.__init__(self, parent) self._parameter = parameter # Create elements # Label (name) self._label = QLabel(self._parameter.name) # Label (help text) # Hacky fix for #1830 - checking the base type if isinstance(self._parameter.help_text, basestring): self._help_text_label = QLabel(self._parameter.help_text) else: self._help_text_label = QLabel() self._help_text_label.setWordWrap(True) # Label (description) self._description_label = QLabel(self._parameter.description) self._description_label.setWordWrap(True) self._description_label.hide() # Flag for show-status of description self._hide_description = True # Tool button for showing and hide detail description self._switch_button = QToolButton() self._switch_button.setArrowType(4) # 2=down arrow, 4=right arrow # noinspection PyUnresolvedReferences self._switch_button.clicked.connect(self.show_hide_description) self._switch_button.setToolTip('Click for detail description') self._switch_button_stylesheet = 'border: none;' self._switch_button.setStyleSheet(self._switch_button_stylesheet) # Layouts self._main_layout = QVBoxLayout() self._input_layout = QHBoxLayout() self._help_layout = QGridLayout() # _inner_input_layout must be filled with widget in the child class self._inner_input_layout = QHBoxLayout() self._inner_help_layout = QVBoxLayout() # spacing self._main_layout.setSpacing(0) self._main_layout.setContentsMargins(0, 0, 0, 0) self._input_layout.setSpacing(0) self._input_layout.setContentsMargins(0, 0, 0, 0) self._help_layout.setSpacing(0) self._help_layout.setContentsMargins(0, 0, 0, 0) self._inner_input_layout.setSpacing(7) self._inner_input_layout.setContentsMargins(0, 0, 0, 0) self._inner_help_layout.setSpacing(0) self._inner_help_layout.setContentsMargins(0, 0, 0, 0) # Put elements into layouts self._input_layout.addWidget(self._label) self._input_layout.addLayout(self._inner_input_layout) # self._input_layout.addSpacing(100) if self._parameter.description: self._help_layout.addWidget(self._switch_button, 0, 0) self._help_layout.addWidget(self._description_label, 1, 1) if self._parameter.help_text: self._help_layout.addWidget(self._help_text_label, 0, 1) self._main_layout.addLayout(self._input_layout) self._main_layout.addLayout(self._help_layout) self.setLayout(self._main_layout) self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.MinimumExpanding) def get_parameter(self): """Interface for returning parameter object. This must be implemented in child class. :raises: NotImplementedError """ raise NotImplementedError('Must be implemented in child class') def show_hide_description(self): """Show and hide long description.""" if self._hide_description: self._hide_description = False self._description_label.show() self._switch_button.setArrowType(2) self._switch_button.setToolTip('Click for hide detail description') else: self._hide_description = True self._description_label.hide() self._switch_button.setArrowType(4) self._switch_button.setToolTip('Click for detail description')
class AutoRecordWidget(QWidgetWithDpi): """Widget that displays the fullscreen countdown for Freeseer's automated recording mode""" def __init__(self, parent=None): super(AutoRecordWidget, self).__init__(parent) self.secs = None self.recording = False self.flashMillisecs = 1000 self.flashTimes = [0, 250, 500, 750] self.resize(400, 400) self.mainLayout = QVBoxLayout() self.setLayout(self.mainLayout) self.setStyleSheet("QWidget { background-color: white; }") self.talkInfoFont = QFont('Serif', 50, QFont.Light) self.countdownFont = QFont('Serif', 300, QFont.Light) titleLayout = QHBoxLayout() self.mainLayout.addLayout(titleLayout) self.talkInfoString = QLabel() titleLayout.addWidget(self.talkInfoString, 20) self.talkInfoString.setFont(self.talkInfoFont) self.talkInfoString.setAlignment(Qt.AlignCenter) self.leaveButton = QPushButton("Leave") titleLayout.addWidget(self.leaveButton, 1, Qt.AlignRight | Qt.AlignTop) self.countdownString = QLabel() self.mainLayout.addWidget(self.countdownString) self.countdownString.setFont(self.countdownFont) self.countdownString.setAlignment(Qt.AlignCenter) self.countdownTimer = QTimer() self.countdownTimer.timeout.connect(self.timertick) self.flashTimer = QTimer() self.flashTimer.timeout.connect(self.flash_display_text) QShortcut(QKeySequence("Esc"), self, self.showNormal) def set_recording(self, recording): """Sets recording to true or false""" self.recording = recording def set_display_message(self, title="", speaker=""): """Sets the part of the display message on screen that is not related to countdown""" if self.recording: self.talkInfoString.setText("RECORDING\n\nTime remaining:") else: self.talkInfoString.setText( "NEXT TALK\nTitle: %s\nSpeaker: %s\n\nTime until recording:" % (title, speaker)) def start_timer(self, secs): """Sets how much time to count down and starts the timer""" self.secs = secs self.countdownTimer.start(1000) def start_flash_timer(self): """Sets how much time to flash the screen and starts the timer""" self.flashMillisecs = 1000 self.flashTimer.start(50) def flash_display_text(self): """Sets the flashing talk info and countdown display, decrements flash countdown and stops timer""" if self.flashMillisecs in self.flashTimes: self.countdownString.setStyleSheet( "QLabel { background-color : white; color : black; }") self.talkInfoString.setStyleSheet( "QLabel { background-color : white; color : black; }") else: self.countdownString.setStyleSheet( "QLabel { background-color : black; color : white; }") self.talkInfoString.setStyleSheet( "QLabel { background-color : black; color : white; }") self.flashMillisecs -= 50 if self.flashMillisecs < 0: self.flashTimer.stop() def timertick(self): """Sets the countdown display string, decrements countdown, plays alert and stops timer. Sets and displays the countdown until the start or end of recording of a talk using a countdown timer. The size of one unit of timer tick is one second. Before recording starts, plays an alert sound. """ if self.secs > 120: self.countdownString.setText("%d min." % (self.secs / 60 + 1)) # e.g., 5 min else: self.countdownString.setText( "%02d:%02d" % (self.secs / 60, self.secs % 60)) # e.g., 01:36 # Flash the screen when there is 1 minute and when there is 30 seconds left if self.secs == 60 or self.secs == 30: self.start_flash_timer() # In the last 10 seconds, display countdown in red if self.secs <= 10: self.countdownString.setStyleSheet( "QLabel { background-color : white; color : red; }") self.secs -= 1 if self.secs < 0: self.stop_timer() self.countdownString.setStyleSheet( "QLabel { background-color : white; color : black; }") def stop_timer(self): """Stops the countdown timer""" self.countdownTimer.stop()
class MyWindow(QMainWindow): text_update = pyqtSignal(str) # Create main window def __init__(self, parent=None): QMainWindow.__init__(self, parent) # self. self.central = QWidget(self) self.control_side = QVBoxLayout() self.textbox = QTextEdit(self.central) self.textbox.setFont(TEXT_FONT) self.textbox.setMinimumSize(50, 50) self.text_update.connect(self.append_text) sys.stdout = self print("Camera number %u" % camera_num) self.logic = 0 self.value = 1 self.V_Logic = 0 self.ImageName = "" #LoginForm.center(self) #PickName.valueChanged.connect(print(PickName)) #print(PickName) if DISP_SCALE > 1: print("Display scale %u:1" % DISP_SCALE) self.vlayout = QVBoxLayout() # Window layout self.displays = QHBoxLayout() self.control = QVBoxLayout() self.textboxs = QHBoxLayout() self.co2 = QVBoxLayout() self.buttons = QVBoxLayout() self.disp = ImageWidget(self) self.controls = QTabWidget() self.vlayout.addLayout(self.displays) self.displays.addWidget(self.disp) self.label = QLabel(self) # self.displays.addLayout(self.control) self.displays.addLayout(self.textboxs) self.vlayout.addWidget(self.label) self.vlayout.addWidget(self.textbox) self.central.setLayout(self.vlayout) self.setCentralWidget(self.central) self.central.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.MinimumExpanding) self.displays.addLayout(self.control_side) self.control_side.addWidget(self.controls) self.control_side.addLayout(self.control) #widget self.Pictures = QWidget() self.Pictures.layout = QVBoxLayout() self.Pictures.setLayout(self.Pictures.layout) self.Videos = QWidget() self.Videos.layout = QVBoxLayout() self.Videos.setLayout(self.Videos.layout) self.controls.addTab(self.Pictures, "Pictures") self.controls.addTab(self.Videos, "Videos") #carbon self.control.addLayout(self.co2) # C02(+) self.btnco2p = QPushButton('CO2+') self.btnco2p.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.co2.addWidget(self.btnco2p) #Labels self.setco2 = QLabel("mmHg") self.co2.addWidget(self.setco2) self.setco2.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.MinimumExpanding) self.setco2.setAlignment(Qt.AlignCenter) # CO2(-) self.btnco2m = QPushButton('CO2-') self.co2.addWidget(self.btnco2m) self.btnco2m.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.mainMenu = self.menuBar() # Menu bar exitAction = QAction('&Exit', self) exitAction.setShortcut('Ctrl+Q') exitAction.triggered.connect(self.close) self.fileMenu = self.mainMenu.addMenu('&File') self.fileMenu.addAction(exitAction) #spacers self.verticalSpacer = QSpacerItem(150, 100, QSizePolicy.Expanding) self.verticalSpacerb = QSpacerItem(70, 50, QSizePolicy.Expanding) #sizes size = QSize(60, 60) # Camera self.btnc = QPushButton('Capture') self.btnc.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.MinimumExpanding) self.Pictures.layout.addLayout(self.buttons) self.buttons.addWidget(self.btnc) self.buttons.addSpacerItem(self.verticalSpacer) self.btnc.setIcon(QIcon('camera.png')) #self.btnc.setStyleSheet("border-radius : 50;") self.btnc.setIconSize(size) #Video self.btnr = QPushButton('Record') self.btnr.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.MinimumExpanding) self.Videos.layout.addWidget(self.btnr) self.Videos.layout.addSpacerItem(self.verticalSpacerb) self.btnr.setIcon(QIcon('video.png')) self.btnr.setIconSize(size) self.btns = QPushButton('Stop') self.btns.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.MinimumExpanding) self.Videos.layout.addWidget(self.btns) self.btns.setIcon(QIcon('stop.png')) self.btns.setIconSize(size) self.Videos.layout.addSpacerItem(self.verticalSpacerb) self.btnc.clicked.connect(self.CaptureClicked) # Capture Photo trigger self.btnr.clicked.connect( self.RecordingClicked) # Recording Video trigger self.btns.clicked.connect(self.StopClicked) #Stop recording Trigger # capturing image def CaptureClicked(self): self.now = datetime.now() self.dt_string = self.now.strftime("%d_%m-%H_%M_%S") self.ImageName = PatientName + "-" + self.dt_string self.logic = 2 #print(self.ImageName) ##recording video def RecordingClicked(self): self.V_Logic = 3 self.FileName = self.ImageName + ".avi" def StopClicked(self): self.V_Logic = 4 def change_res(cap, width, height): cap.set(3, width) cap.set(4, height) # grab resolution dimensions and set video capture to it. def get_dims(cap, res='720p'): width, height = STD_DIMENSIONS["480p"] if res in STD_DIMENSIONS: width, height = STD_DIMENSIONS[res] ## change the current caputre device ## to the resulting resolution MyWindow.change_res(cap, width, height) return width, height def get_video_type(FileName): FileName, ext = os.path.splitext(FileName) if ext in VIDEO_TYPE: return VIDEO_TYPE[ext] return VIDEO_TYPE['avi'] #>>>>>>>>>>>>>>>>>>>>>>>> # Start image capture & display def start(self): self.timer = QTimer(self) # Timer to trigger display self.timer.timeout.connect( lambda: self.show_image(image_queue, self.disp, DISP_SCALE)) self.timer.start(DISP_MSEC) self.capture_thread = threading.Thread(target=grab_images, args=(camera_num, image_queue)) self.capture_thread.start() # Thread to grab images # Fetch camera image from queue, and display it def show_image(self, imageq, display, scale): if not imageq.empty(): image = imageq.get() if image is not None and len(image) > 0: img = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) self.display_image(img, display, scale) #capturing if (self.logic == 2): self.value = self.value + 1 cv2.imwrite('%s.jpg' % self.ImageName, image) print('your Image have been Saved') self.logic = 1 #else: #print("error printing") #video recording if (self.V_Logic == 3): out.write(image) print("Recording...") if (self.V_Logic == 4): out.release() print("Recording Stopped.") self.V_Logic = 0 def DisplayPatient(self): # self.setco2.setText(B.PatientName) print("Patient Name:", PatientName) # Display an image, reduce size if required def display_image(self, img, display, scale=1): disp_size = img.shape[1] // scale, img.shape[0] // scale disp_bpl = disp_size[0] * 3 if scale > 1: img = cv2.resize(img, disp_size, interpolation=cv2.INTER_CUBIC) qimg = QImage(img.data, disp_size[0], disp_size[1], disp_bpl, IMG_FORMAT) display.setImage(qimg) # Handle sys.stdout.write: update text display def write(self, text): self.text_update.emit(str(text)) def flush(self): pass # Append to text display def append_text(self, text): cur = self.textbox.textCursor() # Move cursor to end of text cur.movePosition(QTextCursor.End) s = str(text) while s: head, sep, s = s.partition("\n") # Split line at LF cur.insertText(head) # Insert text at cursor if sep: # New line if LF cur.insertBlock() self.textbox.setTextCursor(cur) # Update visible cursor # Window is closing: stop video capture def closeEvent(self, event): global capturing capturing = False self.capture_thread.join()
def __init__(self, parent=None): super(UserDialog, self).__init__(parent) self.pagetitle = self.sessionname self.tableFont = QFont('Century Gothic', 8) self.table = QTableWidget() self.cols = [ 'SN', 'ITEM', 'QUANTITY', 'UNIT AMOUNT', 'TOTAL AMOUNT', 'DATE' ] self.h1_pull_box = QVBoxLayout() #self.tableFont.setFamily('Century Gothic') self.tableHeaderStyle = "::section {" "background-color: teal; color:white}" #pull all CA self.editID = 0 self.hold_unit = {} self.hold_store = {} self.hold_storeGroup = {} self.hold_borrowed = {} from_label = QLabel('From:') to_label = QLabel('To:') self.fromData = QDateEdit() self.toData = QDateEdit() currentDate = QDate() self.fromData.setDate(currentDate.currentDate()) self.fromData.setCalendarPopup(True) self.toData.setDate(currentDate.currentDate()) self.toData.setCalendarPopup(True) menu = QMenu() menu.addAction('All', lambda: self.reloadTable(0)) menu.addAction('In-Stock', lambda: self.reloadTable(1)) menu.addAction('Out-Stock', lambda: self.reloadTable(2)) menu.addAction('Damaged', lambda: self.reloadTable(3)) menu.addAction('Borrowed', lambda: self.reloadTable(4)) self.pull_btn = QPushButton() self.pull_btn.setText("Load") self.pull_btn.setMenu(menu) h_pull_box = QHBoxLayout() h_pull_box.addWidget(from_label) h_pull_box.addWidget(self.fromData) h_pull_box.addWidget(to_label) h_pull_box.addWidget(self.toData) h_pull_box.addWidget(self.pull_btn) storeGroup = self.pullGroupStore() unit = self.pullUnit() self.storeGroupText = QLabel('Category') self.storeGroupData = QComboBox() self.storeGroupData.currentIndexChanged.connect(self.reloadStore) self.storeText = QLabel('Items') self.storeData = QComboBox() self.amountText = QLabel('Total Cost') self.amountData = QLineEdit() self.amountData.setPlaceholderText('0000.00') self.tellerText = QLabel('Reciept No.') self.tellerData = QLineEdit() self.tellerData.setPlaceholderText('xxxxxxxxx') self.quantityText = QLabel('Quantity.') self.quantityData = QLineEdit() self.quantityData.setPlaceholderText('00.0') self.periodText = QLabel('Period (days)') self.periodData = QLineEdit() self.periodData.setPlaceholderText('00.0') self.personText = QLabel('Recieved By:') self.personData = QLineEdit() self.personData.setPlaceholderText('00.0') self.unitText = QLabel('Unit') self.unitData = QComboBox() self.borrowedText = QLabel('Borrowed') self.borrowedData = QComboBox() self.dateText = QLabel('Date') self.dateData = QDateEdit() self.dateData.setDate(currentDate.currentDate()) self.dateData.setCalendarPopup(True) self.descriptionText = QLabel('Description') self.descriptionData = QPlainTextEdit() self.descriptionData.move(200, 100) self.borrowedText.hide() self.borrowedData.hide() mboz = QVBoxLayout() hboz = QHBoxLayout() self.state = QLabel('') self.r1 = QRadioButton('In-stock') self.r1.setChecked(True) self.r1.toggled.connect(lambda: self.changeStates()) self.r2 = QRadioButton('Out-stock') self.r2.toggled.connect(lambda: self.changeStates()) self.r3 = QRadioButton('Damaged') self.r3.toggled.connect(lambda: self.changeStates()) self.r4 = QRadioButton('Borrowed') self.r4.toggled.connect(lambda: self.changeStates()) self.r5 = QRadioButton('Returned') self.r5.toggled.connect(lambda: self.changeStates()) hboz.addWidget(self.r1) hboz.addWidget(self.r2) hboz.addWidget(self.r3) hboz.addWidget(self.r4) hboz.addWidget(self.r5) i = 0 for a in storeGroup: self.hold_storeGroup[i] = a['id'] tex = str(a['name']).upper() self.storeGroupData.addItem(tex) i += 1 i = 0 str_key = self.hold_storeGroup[self.storeGroupData.currentIndex()] store = self.pullStore(str_key) for a in store: self.hold_store[i] = a['id'] tex = str(a['name']).upper() self.storeData.addItem(tex) i += 1 i = 0 for a in unit: self.hold_unit[i] = a['id'] tex = str(a['name']).upper() self.unitData.addItem(tex) i += 1 self.reloadBorrowed() self.FormLayout = QFormLayout() self.FormLayout.addRow(self.storeGroupText, self.storeGroupData) self.FormLayout.addRow(self.storeText, self.storeData) self.FormLayout.addRow(self.tellerText, self.tellerData) self.FormLayout.addRow(self.quantityText, self.quantityData) self.FormLayout.addRow(self.amountText, self.amountData) self.FormLayout.addRow(self.dateText, self.dateData) self.FormLayout.addRow(self.periodText, self.periodData) self.FormLayout.addRow(self.borrowedText, self.borrowedData) self.FormLayout.addRow(self.personText, self.personData) self.FormLayout.addRow(self.descriptionText, self.descriptionData) self.periodText.hide() self.periodData.hide() mboz.addLayout(hboz) mboz.addLayout(self.FormLayout) mboz.addWidget(self.state) groupBox1 = QGroupBox('Add Store Item') groupBox1.setLayout(mboz) self.pb = QPushButton() self.pb.setObjectName("Add") self.pb.setText("Add Store Item") self.pb1 = QPushButton() self.pb1.setObjectName("Edit") self.pb1.setText("Edit Row") self.pb1.setEnabled(False) self.pb2 = QPushButton() self.pb2.setObjectName("Close") self.pb2.setText("Close") self.pb3 = QPushButton() self.pb3.setObjectName("Delete") self.pb3.setText("Delete Row") self.pb3.setEnabled(False) self.pb4 = QPushButton() self.pb4.setObjectName("Reset") self.pb4.setText("Reset") self.pb4.hide() self.pb5 = QPushButton() self.pb5.setObjectName("Change") self.pb5.setText("Change Store") self.pb5.hide() self.pb6 = QPushButton() self.pb6.setObjectName("Clear") self.pb6.setText("Clear Selection") self.pb6.setEnabled(False) hbo = QHBoxLayout() hbo.addWidget(self.pb) hbo.addWidget(self.pb5) hbo.addWidget(self.pb4) hbo.addWidget(self.pb2) groupBox2 = QGroupBox('Store Data') groupBox2.setLayout(hbo) al = self.pullStoreData(0) if al and len(al) > 0: al = al else: al = {} self.storeData.currentIndexChanged.connect( lambda: self.reloadBorrowed()) header = self.table.horizontalHeader() header.setResizeMode(QHeaderView.ResizeToContents) header.setStretchLastSection(True) header.setStyleSheet(self.tableHeaderStyle) vheader = self.table.verticalHeader() vheader.setStyleSheet(self.tableHeaderStyle) # Body self.table.setWindowTitle("Store") self.table.setStyleSheet("color:white") self.table.resize(300, 250) self.table.setFont(self.tableFont) self.table.setSortingEnabled(2) #self.table.resizeColumnsToContents() self.table.setRowCount(len(al)) self.table.setColumnCount(len(self.cols)) self.table.setHorizontalHeaderLabels(self.cols) self.table.setContextMenuPolicy(Qt.CustomContextMenu) self.table.customContextMenuRequested.connect(self.handleHeaderMenu) self.table.hideColumn(0) self.table.setSelectionMode(QAbstractItemView.MultiSelection) self.table.setSelectionBehavior(QAbstractItemView.SelectRows) self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) i = 0 for q in al: #row id if q['state'] == 1: color = QColor(100, 0, 0) elif q['state'] == 2: color = QColor(100, 100, 0) elif q['state'] == 3: color = QColor(100, 0, 100) elif q['state'] == 4: color = QColor(0, 100, 100) else: color = QColor(0, 50, 150) self.table.setItem(i, 0, QTableWidgetItem(str(q['id']))) self.table.item(i, 0).setBackground(color) self.table.setItem(i, 1, QTableWidgetItem(str(q['itemname']).upper())) self.table.item(i, 1).setBackground(color) self.table.setItem(i, 2, QTableWidgetItem(str(q['quantity']).upper())) self.table.item(i, 2).setBackground(color) try: zamt = str("{:,}".format(float(q['amount']))) except: zamt = '' self.table.setItem(i, 3, QTableWidgetItem(zamt)) self.table.item(i, 3).setBackground(color) try: if len(q['amount']) > 0 and float(q['amount']) > 0: tot = float(q['amount']) * float(q['quantity']) else: tot = 0 except: tot = 0 self.table.setItem(i, 4, QTableWidgetItem(str(tot).upper())) self.table.item(i, 4).setBackground(color) damz = float(q['datepaid']) damt = datetime.utcfromtimestamp(damz).strftime('%d-%m-%Y') self.table.setItem(i, 5, QTableWidgetItem(str(damt))) self.table.item(i, 5).setBackground(color) i += 1 self.table.itemSelectionChanged.connect(self.confirmSelection) self.table.resizeRowsToContents() v_pull_box = QVBoxLayout() self.h1_pull_box.addWidget(self.table) v_pull_box.addLayout(h_pull_box) v_pull_box.addLayout(self.h1_pull_box) h2_pull_box = QHBoxLayout() h2_pull_box.addWidget(self.pb1) h2_pull_box.addWidget(self.pb3) h2_pull_box.addWidget(self.pb6) v_pull_box.addLayout(h2_pull_box) groupBox3 = QGroupBox() groupBox3.setLayout(hbo) groupBox2.setLayout(v_pull_box) grid = QGridLayout() grid.addWidget(groupBox1, 0, 0) grid.addWidget(groupBox2, 0, 1, 2, 1) grid.addWidget(groupBox3, 1, 0) self.setLayout(grid) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click()) self.connect(self.pb1, SIGNAL("clicked()"), lambda: self.button_editshow()) self.connect(self.pb2, SIGNAL("clicked()"), lambda: self.button_close(self)) self.connect(self.pb3, SIGNAL("clicked()"), lambda: self.button_delete()) self.connect(self.pb4, SIGNAL("clicked()"), lambda: self.button_reset()) self.connect(self.pb5, SIGNAL("clicked()"), lambda: self.button_edit()) self.connect(self.pb6, SIGNAL("clicked()"), lambda: self.button_clear()) #self.connect(self.pull_btn, SIGNAL("clicked()"), lambda x =1: self.reloadTable(x)) self.setWindowTitle(self.pagetitle)
class ModelerParameterDefinitionDialog(QDialog): PARAMETER_NUMBER = 'Number' PARAMETER_RASTER = 'Raster layer' PARAMETER_TABLE = 'Table' PARAMETER_VECTOR = 'Vector layer' PARAMETER_STRING = 'String' PARAMETER_BOOLEAN = 'Boolean' PARAMETER_TABLE_FIELD = 'Table field' PARAMETER_EXTENT = 'Extent' PARAMETER_FILE = 'File' # To add PARAMETER_MULTIPLE = 'Multiple input' PARAMETER_FIXED_TABLE = 'Fixed table' paramTypes = [ PARAMETER_BOOLEAN, PARAMETER_EXTENT, PARAMETER_FILE, PARAMETER_NUMBER, PARAMETER_RASTER, PARAMETER_STRING, PARAMETER_TABLE, PARAMETER_TABLE_FIELD, PARAMETER_VECTOR, ] def __init__(self, alg, paramType=None, param=None): self.alg = alg self.paramType = paramType self.param = param QDialog.__init__(self) self.setModal(True) self.setupUi() def setupUi(self): self.setWindowTitle(self.tr('Parameter definition')) self.verticalLayout = QVBoxLayout(self) self.verticalLayout.setSpacing(40) self.verticalLayout.setMargin(20) self.horizontalLayout = QHBoxLayout(self) self.horizontalLayout.setSpacing(2) self.horizontalLayout.setMargin(0) self.label = QLabel(self.tr('Parameter name')) self.horizontalLayout.addWidget(self.label) self.nameTextBox = QLineEdit() self.horizontalLayout.addWidget(self.nameTextBox) self.verticalLayout.addLayout(self.horizontalLayout) self.horizontalLayout2 = QHBoxLayout(self) self.horizontalLayout2.setSpacing(2) self.horizontalLayout2.setMargin(0) self.horizontalLayout3 = QHBoxLayout(self) self.horizontalLayout3.setSpacing(2) self.horizontalLayout3.setMargin(0) self.horizontalLayout4 = QHBoxLayout(self) self.horizontalLayout4.setSpacing(2) self.horizontalLayout4.setMargin(0) if isinstance(self.param, Parameter): self.nameTextBox.setText(self.param.description) if self.paramType == ModelerParameterDefinitionDialog.PARAMETER_BOOLEAN or \ isinstance(self.param, ParameterBoolean): self.state = QCheckBox() self.state.setText(self.tr('Checked')) self.state.setChecked(False) if self.param is not None: self.state.setChecked(True if self.param.value else False) self.horizontalLayout3.addWidget(self.state) self.verticalLayout.addLayout(self.horizontalLayout3) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_TABLE_FIELD or \ isinstance(self.param, ParameterTableField): self.horizontalLayout3.addWidget(QLabel(self.tr('Parent layer'))) self.parentCombo = QComboBox() idx = 0 for param in self.alg.inputs.values(): if isinstance(param.param, (ParameterVector, ParameterTable)): self.parentCombo.addItem(param.param.description, param.param.name) if self.param is not None: if self.param.parent == param.param.name: self.parentCombo.setCurrentIndex(idx) idx += 1 self.horizontalLayout3.addWidget(self.parentCombo) self.verticalLayout.addLayout(self.horizontalLayout3) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_VECTOR or \ isinstance(self.param, ParameterVector): self.horizontalLayout3.addWidget(QLabel(self.tr('Shape type'))) self.shapetypeCombo = QComboBox() self.shapetypeCombo.addItem(self.tr('Any')) self.shapetypeCombo.addItem(self.tr('Point')) self.shapetypeCombo.addItem(self.tr('Line')) self.shapetypeCombo.addItem(self.tr('Polygon')) if self.param is not None: self.shapetypeCombo.setCurrentIndex(self.param.shapetype[0] + 1) self.horizontalLayout3.addWidget(self.shapetypeCombo) self.verticalLayout.addLayout(self.horizontalLayout3) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_MULTIPLE or \ isinstance(self.param, ParameterMultipleInput): self.horizontalLayout3.addWidget(QLabel(self.tr('Data type'))) self.datatypeCombo = QComboBox() self.datatypeCombo.addItem(self.tr('Vector (any)')) self.datatypeCombo.addItem(self.tr('Vector (point)')) self.datatypeCombo.addItem(self.tr('Vector (line)')) self.datatypeCombo.addItem(self.tr('Vector (polygon)')) self.datatypeCombo.addItem(self.tr('Raster')) self.datatypeCombo.addItem(self.tr('Table')) if self.param is not None: self.datatypeCombo.setCurrentIndex(self.param.datatype + 1) self.horizontalLayout3.addWidget(self.datatypeCombo) self.verticalLayout.addLayout(self.horizontalLayout3) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_NUMBER or \ isinstance(self.param, ParameterNumber): self.horizontalLayout3.addWidget(QLabel(self.tr('Min/Max values'))) self.minTextBox = QLineEdit() self.maxTextBox = QLineEdit() if self.param is not None: self.minTextBox.setText(unicode(self.param.min)) self.maxTextBox.setText(unicode(self.param.max)) self.horizontalLayout3.addWidget(self.minTextBox) self.horizontalLayout3.addWidget(self.maxTextBox) self.verticalLayout.addLayout(self.horizontalLayout3) self.horizontalLayout4.addWidget(QLabel(self.tr('Default value'))) self.defaultTextBox = QLineEdit() self.defaultTextBox.setText(self.tr('0')) if self.param is not None: default = self.param.default if self.param.isInteger: default = int(math.floor(default)) self.defaultTextBox.setText(unicode(default)) self.horizontalLayout4.addWidget(self.defaultTextBox) self.verticalLayout.addLayout(self.horizontalLayout4) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_STRING or \ isinstance(self.param, ParameterString): self.horizontalLayout3.addWidget(QLabel(self.tr('Default value'))) self.defaultTextBox = QLineEdit() if self.param is not None: self.defaultTextBox.setText(self.param.default) self.horizontalLayout3.addWidget(self.defaultTextBox) self.verticalLayout.addLayout(self.horizontalLayout3) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_FILE or \ isinstance(self.param, ParameterFile): self.horizontalLayout3.addWidget(QLabel(self.tr('Type'))) self.fileFolderCombo = QComboBox() self.fileFolderCombo.addItem(self.tr('File')) self.fileFolderCombo.addItem(self.tr('Folder')) if self.param is not None: self.fileFolderCombo.setCurrentIndex( 1 if self.param.isFolder else 0) self.horizontalLayout3.addWidget(self.fileFolderCombo) self.verticalLayout.addLayout(self.horizontalLayout3) self.horizontalLayout2.addWidget(QLabel(self.tr('Required'))) self.yesNoCombo = QComboBox() self.yesNoCombo.addItem(self.tr('Yes')) self.yesNoCombo.addItem(self.tr('No')) self.horizontalLayout2.addWidget(self.yesNoCombo) if self.param is not None: self.yesNoCombo.setCurrentIndex(1 if self.param.optional else 0) self.verticalLayout.addLayout(self.horizontalLayout2) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.buttonBox.setObjectName('buttonBox') self.buttonBox.accepted.connect(self.okPressed) self.buttonBox.rejected.connect(self.cancelPressed) self.verticalLayout.addWidget(self.buttonBox) self.setLayout(self.verticalLayout) def okPressed(self): description = unicode(self.nameTextBox.text()) if description.strip() == '': QMessageBox.warning(self, self.tr('Unable to define parameter'), self.tr('Invalid parameter name')) return if self.param is None: validChars = \ 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' safeName = ''.join(c for c in description if c in validChars) name = safeName.lower() i = 2 while name in self.alg.inputs: name = safeName.lower() + str(i) else: name = self.param.name if self.paramType \ == ModelerParameterDefinitionDialog.PARAMETER_BOOLEAN \ or isinstance(self.param, ParameterBoolean): self.param = ParameterBoolean(name, description, self.state.isChecked()) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_TABLE_FIELD or \ isinstance(self.param, ParameterTableField): if self.parentCombo.currentIndex() < 0: QMessageBox.warning( self, self.tr('Unable to define parameter'), self.tr('Wrong or missing parameter values')) return parent = self.parentCombo.itemData(self.parentCombo.currentIndex()) self.param = ParameterTableField(name, description, parent) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_RASTER or \ isinstance(self.param, ParameterRaster): self.param = ParameterRaster(name, description, self.yesNoCombo.currentIndex() == 1) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_TABLE or \ isinstance(self.param, ParameterTable): self.param = ParameterTable(name, description, self.yesNoCombo.currentIndex() == 1) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_VECTOR or \ isinstance(self.param, ParameterVector): self.param = ParameterVector( name, description, [self.shapetypeCombo.currentIndex() - 1], self.yesNoCombo.currentIndex() == 1) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_MULTIPLE or \ isinstance(self.param, ParameterMultipleInput): self.param = ParameterMultipleInput( name, description, self.datatypeCombo.currentIndex() - 1, self.yesNoCombo.currentIndex() == 1) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_NUMBER or \ isinstance(self.param, ParameterNumber): try: vmin = unicode(self.minTextBox.text()).strip() if vmin == '': vmin = None else: vmin = float(vmin) vmax = unicode(self.maxTextBox.text()).strip() if vmax == '': vmax = None else: vmax = float(vmax) self.param = ParameterNumber( name, description, vmin, vmax, unicode(self.defaultTextBox.text())) except: QMessageBox.warning( self, self.tr('Unable to define parameter'), self.tr('Wrong or missing parameter values')) return elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_STRING or \ isinstance(self.param, ParameterString): self.param = ParameterString(name, description, unicode(self.defaultTextBox.text())) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_EXTENT or \ isinstance(self.param, ParameterExtent): self.param = ParameterExtent(name, description) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_FILE or \ isinstance(self.param, ParameterFile): isFolder = self.fileFolderCombo.currentIndex() == 1 self.param = ParameterFile(name, description, isFolder=isFolder) self.param.optional = self.yesNoCombo.currentIndex() == 1 self.close() def cancelPressed(self): self.param = None self.close()
class DictParameterWidget(GenericParameterWidget): """Widget class for DictParameter.""" def __init__(self, parameter, parent=None): """Constructor .. versionadded:: 3.1 :param parameter: A DictParameter object. :type parameter: DictParameter """ # pylint: disable=E1002 super(DictParameterWidget, self).__init__(parameter, parent) # pylint: enable=E1002 self._input = QTreeWidget() # generate tree model widget_items = self.generate_tree_model(self._parameter.value) self._input.addTopLevelItems(widget_items) # set header self._input.headerItem().setText(0, 'Keys') self._input.headerItem().setText(1, 'Values') self._inner_input_layout.addWidget(self._input) # override self._input_layout arrangement to make the label at the top # reset the layout self._input_layout.setParent(None) self._help_layout.setParent(None) self._label.setParent(None) self._inner_input_layout.setParent(None) self._input_layout = QVBoxLayout() self._input_layout.setSpacing(0) # put element into layout self._input_layout.addWidget(self._label) self._input_layout.addLayout(self._inner_input_layout) self._main_layout.addLayout(self._input_layout) self._main_layout.addLayout(self._help_layout) def generate_tree_model(self, data_dict): """Generate a tree model for specified dictionary :param data_dict: A dictionary :type data_dict: dict :return: list of QTreeWidgetItem :rtype list: """ widget_items = [] font = QFont() font.setBold(True) for key in data_dict.keys(): entry = data_dict[key] key_item = QTreeWidgetItem() key_item.setText(0, str(key)) key_item.setFont(0, font) if isinstance(entry, dict): items = self.generate_tree_model(entry) key_item.addChildren(items) else: # value_item = QTreeWidgetItem() key_item.setText(1, str(entry)) key_item.setFlags(key_item.flags() | Qt.ItemIsEditable) # key_item.addChild(key_item) widget_items.append(key_item) return widget_items def extract_dict(self, widget_items): """Extract dictionary key and values from QTreeWidgetItems :param widget_items: List of QTreeWidgetItems :type widget_items: list :return: hierarchical dictionary extracted from widget_items :rtype dict: """ data_dict = {} element_type = self._parameter.element_type if element_type == object: def object_cast(obj): return obj element_type = object_cast for key_item in widget_items: key = str(key_item.text(0)) value = None if key_item.childCount() == 0: # value_item = key_item.child(0) value = element_type(key_item.text(1)) elif key_item.childCount() > 1: value_items = [key_item.child(i) for i in range(key_item.childCount())] value = self.extract_dict(value_items) data_dict[key] = value return data_dict def get_parameter(self): """Obtain the parameter object from the current widget state. :returns: A DictParameter from the current state of widget """ root_widget_item = self._input.invisibleRootItem() widget_items = [root_widget_item.child(i) for i in range(root_widget_item.childCount())] data_dict = self.extract_dict(widget_items) self._parameter.value = data_dict return self._parameter
def __init__(self, *args): PluginBase.__init__(self, BrickletAnalogIn, *args) self.ai = self.device self.cbe_voltage = CallbackEmulator(self.ai.get_voltage, self.cb_voltage, self.increase_error_count) self.voltage_label = VoltageLabel('Voltage: ') self.current_value = None plot_list = [['', Qt.red, self.get_current_value]] self.plot_widget = PlotWidget('Voltage [mV]', plot_list) layout_h2 = QHBoxLayout() layout_h2.addStretch() layout_h2.addWidget(self.voltage_label) layout_h2.addStretch() layout = QVBoxLayout(self) layout.addLayout(layout_h2) layout.addWidget(self.plot_widget) if self.firmware_version >= (2, 0, 1): self.combo_range = QComboBox() self.combo_range.addItem('Automatic', BrickletAnalogIn.RANGE_AUTOMATIC) if self.firmware_version >= (2, 0, 3): self.combo_range.addItem('0V - 3.30V', BrickletAnalogIn.RANGE_UP_TO_3V) self.combo_range.addItem('0V - 6.05V', BrickletAnalogIn.RANGE_UP_TO_6V) self.combo_range.addItem('0V - 10.32V', BrickletAnalogIn.RANGE_UP_TO_10V) self.combo_range.addItem('0V - 36.30V', BrickletAnalogIn.RANGE_UP_TO_36V) self.combo_range.addItem('0V - 45.00V', BrickletAnalogIn.RANGE_UP_TO_45V) self.combo_range.currentIndexChanged.connect(self.range_changed) layout_h1 = QHBoxLayout() layout_h1.addStretch() layout_h1.addWidget(QLabel('Range:')) layout_h1.addWidget(self.combo_range) if self.firmware_version >= (2, 0, 3): self.spin_average = QSpinBox() self.spin_average.setMinimum(0) self.spin_average.setMaximum(255) self.spin_average.setSingleStep(1) self.spin_average.setValue(50) self.spin_average.editingFinished.connect( self.spin_average_finished) layout_h1.addStretch() layout_h1.addWidget(QLabel('Average Length:')) layout_h1.addWidget(self.spin_average) layout_h1.addStretch() layout.addLayout(layout_h1)
def __init__(self, parent=None): super(AffectiveCaDialog, self).__init__(parent) ko = 0 self.subjects = self.pullSubjects() self.frame1 = QGroupBox('Behaviors') self.frame2 = QGroupBox('Categories') hc1_box = QVBoxLayout() hc2_box = QVBoxLayout() self.li = [] self.liID = [] for subject in self.subjects: num = subject['id'] self.liID.append(num) self.c = QRadioButton('cb'+str(num)) self.c.setText(str(subject['name']).upper()) self.c.setObjectName("chk"+str(num)) self.c.setChecked(False) self.c.toggled.connect(lambda state, x=num, y=self.c: self.catItems(x, y)) hc1_box.addWidget(self.c) self.li.append(self.c) ko += 1 self.li1 = [] self.li1ID = [] self.hc2_box = QVBoxLayout() self.frame1.setLayout(hc1_box) #frame1.setFrameShape(QFrame.StyledPanel) self.frame2.setLayout(self.hc2_box) #frame2.setFrameShape(QFrame.StyledPanel) h_box = QHBoxLayout() h_box.addWidget(self.frame1) h_box.addWidget(self.frame2) self.pb = QPushButton() self.pb.setObjectName("MakeEntries") self.pb.setText("Edit View") self.pb1 = QPushButton() self.pb1.setObjectName("View Report") self.pb1.setText("Report View") self.pb2 = QPushButton() self.pb2.setObjectName("Cancel") self.pb2.setText("Cancel") but_box = QHBoxLayout() but_box.addWidget(self.pb2) but_box.addWidget(self.pb1) but_box.addWidget(self.pb) main_box = QVBoxLayout() main_box.addLayout(h_box) main_box.addLayout(but_box) self.setLayout(main_box) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click()) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click()) self.connect(self.pb2, SIGNAL("clicked()"), lambda: self.button_close()) self.setWindowTitle(self.pagetitle)