def getMute(self): mute = QToolButton(self) mute.setText("mute") mute.setCheckable(True) mute.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) return mute
def __createToolbarsAndConnect(self): actionGroup = QActionGroup(self) actionGroup.addAction(self.actionImport) actionGroup.addAction(self.actionVyhledavani) actionGroup.addAction(self.actionZpracujZmeny) # QSignalMapper self.signalMapper = QSignalMapper(self) # connect to 'clicked' on all buttons self.connect(self.actionImport, SIGNAL( "triggered()"), self.signalMapper, SLOT("map()")) self.connect(self.actionVyhledavani, SIGNAL( "triggered()"), self.signalMapper, SLOT("map()")) self.connect(self.actionZpracujZmeny, SIGNAL( "triggered()"), self.signalMapper, SLOT("map()")) # setMapping on each button to the QStackedWidget index we'd like to # switch to self.signalMapper.setMapping(self.actionImport, 0) self.signalMapper.setMapping(self.actionVyhledavani, 2) self.signalMapper.setMapping(self.actionZpracujZmeny, 1) # connect mapper to stackedWidget self.connect(self.signalMapper, SIGNAL("mapped(int)"), self.stackedWidget, SLOT("setCurrentIndex(int)")) self.actionImport.trigger() self.connect(self.vfkBrowser, SIGNAL( "switchToPanelImport"), self.switchToImport) self.connect(self.vfkBrowser, SIGNAL( "switchToPanelSearch"), self.switchToSearch) self.connect(self.vfkBrowser, SIGNAL( "switchToPanelChanges"), self.switchToChanges) # Browser toolbar # --------------- self.__mBrowserToolbar = QToolBar(self) self.connect(self.actionBack, SIGNAL( "triggered()"), self.vfkBrowser.goBack) self.connect(self.actionForward, SIGNAL( "triggered()"), self.vfkBrowser.goForth) self.connect(self.actionSelectBudInMap, SIGNAL("triggered()"), self.selectBudInMap) self.connect(self.actionSelectParInMap, SIGNAL("triggered()"), self.selectParInMap) self.connect(self.actionCuzkPage, SIGNAL("triggered()"), self.showOnCuzk) self.connect(self.actionExportLatex, SIGNAL("triggered()"), self.latexExport) self.connect(self.actionExportHtml, SIGNAL("triggered()"), self.htmlExport) self.connect(self.actionShowInfoaboutSelection, SIGNAL( "toggled(bool)"), self.setSelectionChangedConnected) self.connect(self.actionShowHelpPage, SIGNAL( "triggered()"), self.vfkBrowser.showHelpPage) self.loadVfkButton.clicked.connect(self.loadVfkButton_clicked) self.__browseButtons['browseButton_1'] = self.browseButton self.__browseButtons['browseButton_1'].clicked.connect( lambda: self.browseButton_clicked(int('{}'.format(len(self.__vfkLineEdits))))) self.__vfkLineEdits['vfkLineEdit_1'] = self.vfkFileLineEdit bt = QToolButton(self.__mBrowserToolbar) bt.setPopupMode(QToolButton.InstantPopup) bt.setText("Export ") menu = QMenu(bt) menu.addAction(self.actionExportLatex) menu.addAction(self.actionExportHtml) bt.setMenu(menu) # add actions to toolbar icons self.__mBrowserToolbar.addAction(self.actionImport) self.__mBrowserToolbar.addAction(self.actionVyhledavani) self.__mBrowserToolbar.addAction(self.actionZpracujZmeny) self.__mBrowserToolbar.addSeparator() self.__mBrowserToolbar.addAction(self.actionBack) self.__mBrowserToolbar.addAction(self.actionForward) self.__mBrowserToolbar.addAction(self.actionSelectParInMap) self.__mBrowserToolbar.addAction(self.actionSelectBudInMap) self.__mBrowserToolbar.addAction(self.actionCuzkPage) self.__mBrowserToolbar.addSeparator() self.__mBrowserToolbar.addAction(self.actionShowInfoaboutSelection) self.__mBrowserToolbar.addSeparator() self.__mBrowserToolbar.addWidget(bt) self.__mBrowserToolbar.addSeparator() self.__mBrowserToolbar.addAction(self.actionShowHelpPage) self.rightWidgetLayout.insertWidget(0, self.__mBrowserToolbar) # connect signals from vfkbrowser when changing history self.connect(self.vfkBrowser, SIGNAL( "currentParIdsChanged"), self.actionSelectParInMap.setEnabled) self.connect(self.vfkBrowser, SIGNAL("currentBudIdsChanged"), self.actionSelectBudInMap.setEnabled) self.connect(self.vfkBrowser, SIGNAL( "historyBefore"), self.actionBack.setEnabled) self.connect(self.vfkBrowser, SIGNAL( "historyAfter"), self.actionForward.setEnabled) self.connect(self.vfkBrowser, SIGNAL( "definitionPointAvailable"), self.actionCuzkPage.setEnabled) # add toolTips self.pb_nextFile.setToolTip(u'Přidej další soubor VFK') self.parCheckBox.setToolTip(u'Načti vrstvu parcel') self.budCheckBox.setToolTip(u'Načti vrstvu budov') # add new VFK file self.pb_nextFile.clicked.connect(self.__addRowToGridLayout) # widget apply changes self.pb_mainDb.clicked.connect( lambda: self.browseDb_clicked('mainDb')) self.pb_amendmentDb.clicked.connect( lambda: self.browseDb_clicked('amendmentDb')) self.pb_exportDb.clicked.connect( lambda: self.browseDb_clicked('exportDb')) self.pb_applyChanges.clicked.connect(self.applyChanges) self.pb_applyChanges.setEnabled(False) self.connect(self.changes_instance, SIGNAL("maxRangeProgressBar"), self.__setRangeProgressBarChanges) self.connect(self.changes_instance, SIGNAL("updateStatus"), self.__updateProgressBarChanges) self.connect(self.changes_instance, SIGNAL("finishedStatus"), self.__changesApplied) self.connect(self.changes_instance, SIGNAL("preprocessingDatabase"), self.__changesPreprocessingDatabase) # connect radio boxes self.rb_file.clicked.connect(self.radioButtonValue) self.rb_directory.clicked.connect(self.radioButtonValue)
def __createRecentProjectsLayout(self): " Creates the bottom layout " self.headerFrame = QFrame() self.headerFrame.setFrameStyle(QFrame.StyledPanel) self.headerFrame.setAutoFillBackground(True) headerPalette = self.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) self.headerFrame.setPalette(headerPalette) self.headerFrame.setFixedHeight(24) recentProjectsLabel = QLabel() recentProjectsLabel.setText("Recent projects") expandingSpacer = QSpacerItem(10, 10, QSizePolicy.Expanding) self.__showHideButton = QToolButton() self.__showHideButton.setAutoRaise(True) self.__showHideButton.setIcon(getIcon('less.png')) self.__showHideButton.setFixedSize(20, 20) self.__showHideButton.setToolTip("Hide recent projects list") self.__showHideButton.setFocusPolicy(Qt.NoFocus) self.connect(self.__showHideButton, SIGNAL('clicked()'), self.__onShowHide) headerLayout = QHBoxLayout() headerLayout.setContentsMargins(3, 0, 0, 0) headerLayout.addWidget(recentProjectsLabel) headerLayout.addSpacerItem(expandingSpacer) headerLayout.addWidget(self.__showHideButton) self.headerFrame.setLayout(headerLayout) # Toolbar part - buttons self.loadButton = QAction(getIcon('load.png'), 'Load the highlighted project', self) self.connect(self.loadButton, SIGNAL("triggered()"), self.__loadProject) self.propertiesButton = QAction( getIcon('smalli.png'), 'Show the highlighted project ' 'properties', self) self.connect(self.propertiesButton, SIGNAL("triggered()"), self.__viewProperties) self.copyPrjPathButton = QAction(getIcon('copytoclipboard.png'), 'Copy path to clipboard', self) self.connect(self.copyPrjPathButton, SIGNAL("triggered()"), self.__prjPathToClipboard) spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.trashButton = QAction(getIcon('delitem.png'), 'Remove selected (not from the disk)', self) self.connect(self.trashButton, SIGNAL("triggered()"), self.__deleteProject) self.lowerToolbar = QToolBar() self.lowerToolbar.setMovable(False) self.lowerToolbar.setAllowedAreas(Qt.TopToolBarArea) self.lowerToolbar.setIconSize(QSize(16, 16)) self.lowerToolbar.setFixedHeight(28) self.lowerToolbar.setContentsMargins(0, 0, 0, 0) self.lowerToolbar.addAction(self.loadButton) self.lowerToolbar.addAction(self.propertiesButton) self.lowerToolbar.addAction(self.copyPrjPathButton) self.lowerToolbar.addWidget(spacer) self.lowerToolbar.addAction(self.trashButton) self.projectsView = QTreeWidget() self.projectsView.setAlternatingRowColors(True) self.projectsView.setRootIsDecorated(False) self.projectsView.setItemsExpandable(False) self.projectsView.setSortingEnabled(True) self.projectsView.setItemDelegate(NoOutlineHeightDelegate(4)) self.projectsView.setUniformRowHeights(True) self.__projectsHeaderItem = QTreeWidgetItem( ["", "Project", "Absolute path"]) self.projectsView.setHeaderItem(self.__projectsHeaderItem) self.projectsView.header().setSortIndicator(1, Qt.AscendingOrder) self.connect(self.projectsView, SIGNAL("itemActivated(QTreeWidgetItem *, int)"), self.__projectActivated) self.connect(self.projectsView, SIGNAL("itemSelectionChanged()"), self.__projectSelectionChanged) recentProjectsLayout = QVBoxLayout() recentProjectsLayout.setContentsMargins(0, 0, 0, 0) recentProjectsLayout.setSpacing(0) recentProjectsLayout.addWidget(self.headerFrame) recentProjectsLayout.addWidget(self.lowerToolbar) recentProjectsLayout.addWidget(self.projectsView) lowerContainer = QWidget() lowerContainer.setContentsMargins(0, 0, 0, 0) lowerContainer.setLayout(recentProjectsLayout) return lowerContainer
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
def initWidgets(self): #tooltips = self.alg.getParameterDescriptions() # If there are advanced parameters — show corresponding groupbox for param in self.alg.parameters: if param.isAdvanced: self.grpAdvanced.show() break # Create widgets and put them in layouts for param in self.alg.parameters: if param.hidden: continue desc = param.description if isinstance(param, ParameterExtent): desc += self.tr(' (xmin, xmax, ymin, ymax)') try: if param.optional: desc += self.tr(' [optional]') except: pass widget = self.getWidgetFromParameter(param) self.valueItems[param.name] = widget if isinstance(param, ParameterVector) and \ not self.alg.allowOnlyOpenedLayers: layout = QHBoxLayout() layout.setSpacing(2) layout.setMargin(0) layout.addWidget(widget) button = QToolButton() icon = QIcon( os.path.dirname(__file__) + '/../images/iterate.png') button.setIcon(icon) button.setToolTip(self.tr('Iterate over this layer')) button.setCheckable(True) layout.addWidget(button) self.iterateButtons[param.name] = button button.toggled.connect(self.buttonToggled) widget = QWidget() widget.setLayout(layout) #~ if param.name in tooltips.keys(): #~ tooltip = tooltips[param.name] #~ else: #~ tooltip = param.description #~ widget.setToolTip(tooltip) if isinstance(param, ParameterBoolean): widget.setText(desc) if param.isAdvanced: self.layoutAdvanced.addWidget(widget) else: self.layoutMain.insertWidget( self.layoutMain.count() - 2, widget) else: label = QLabel(desc) #label.setToolTip(tooltip) self.labels[param.name] = label if param.isAdvanced: self.layoutAdvanced.addWidget(label) self.layoutAdvanced.addWidget(widget) else: self.layoutMain.insertWidget( self.layoutMain.count() - 2, label) self.layoutMain.insertWidget( self.layoutMain.count() - 2, widget) self.widgets[param.name] = widget for output in self.alg.outputs: if output.hidden: continue label = QLabel(output.description) widget = OutputSelectionPanel(output, self.alg) self.layoutMain.insertWidget(self.layoutMain.count() - 1, label) self.layoutMain.insertWidget(self.layoutMain.count() - 1, widget) if isinstance(output, (OutputRaster, OutputVector, OutputTable)): check = QCheckBox() check.setText(self.tr('Open output file after running algorithm')) check.setChecked(True) self.layoutMain.insertWidget(self.layoutMain.count() - 1, check) self.checkBoxes[output.name] = check self.valueItems[output.name] = widget
def __init__(self, title, parent=None, key=''): QDialog.__init__(self, parent) self.setWindowTitle(title) self._ert = ERT.ert """:type: res.enkf.enkf_main.EnKFMain""" self.key_manager = self._ert.getKeyManager() """:type: res.enkf.key_manager.KeyManager """ self.current_key = key self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) self.setWindowFlags(self.windowFlags() & ~Qt.WindowCloseButtonHint) self.setWindowFlags(self.windowFlags() & ~Qt.WindowCancelButtonHint) self._tab_map = {} self._tab_order = [] layout = QVBoxLayout() self._tabs = QTabWidget() layout.addWidget(self._tabs) layout.setSizeConstraint(QLayout.SetFixedSize) # not resizable!!! self._button_layout = QHBoxLayout() self._reset_button = QToolButton() self._reset_button.setIcon(resourceIcon("update.png")) self._reset_button.setToolTip("Reset all settings back to default") self._reset_button.clicked.connect(self.resetSettings) self._undo_button = QToolButton() self._undo_button.setIcon(resourceIcon("undo.png")) self._undo_button.setToolTip("Undo") self._undo_button.clicked.connect(self.undoSettings) self._redo_button = QToolButton() self._redo_button.setIcon(resourceIcon("redo.png")) self._redo_button.setToolTip("Redo") self._redo_button.clicked.connect(self.redoSettings) self._redo_button.setEnabled(False) self._copy_from_button = QToolButton() self._copy_from_button.setIcon(resourceIcon("copy_from.png")) self._copy_from_button.setToolTip("Copy settings from another key") self._copy_from_button.setPopupMode(QToolButton.InstantPopup) self._copy_from_button.setEnabled(False) self._copy_to_button = QToolButton() self._copy_to_button.setIcon(resourceIcon("copy_to.png")) self._copy_to_button.setToolTip( "Copy current plot settings to other keys") self._copy_to_button.setPopupMode(QToolButton.InstantPopup) self._copy_to_button.clicked.connect(self.initiateCopyStyleToDialog) self._copy_to_button.setEnabled(True) tool_menu = QMenu(self._copy_from_button) self._popup_list = QListWidget(tool_menu) self._popup_list.setSortingEnabled(True) self._popup_list.itemClicked.connect(self.keySelected) action = QWidgetAction(tool_menu) action.setDefaultWidget(self._popup_list) tool_menu.addAction(action) self._copy_from_button.setMenu(tool_menu) self._apply_button = QPushButton("Apply") self._apply_button.setToolTip("Apply the new settings") self._apply_button.clicked.connect(self.applySettings) self._apply_button.setDefault(True) self._close_button = QPushButton("Close") self._close_button.setToolTip("Hide this dialog") self._close_button.clicked.connect(self.hide) self._button_layout.addWidget(self._reset_button) self._button_layout.addStretch() self._button_layout.addWidget(self._undo_button) self._button_layout.addWidget(self._redo_button) self._button_layout.addWidget(self._copy_from_button) self._button_layout.addWidget(self._copy_to_button) self._button_layout.addStretch() self._button_layout.addWidget(self._apply_button) self._button_layout.addWidget(self._close_button) layout.addStretch() layout.addLayout(self._button_layout) self.setLayout(layout)
def __init__(self, parent=None): super(MapWidget, self).__init__(parent) self.setupUi(self) self.snapping = True icon = roam_style.iconsize() self.projecttoolbar.setIconSize(QSize(icon, icon)) self.current_form = None self.last_form = None self.firstshow = True self.layerbuttons = [] self.editfeaturestack = [] self.lastgpsposition = None self.project = None self.gps = None self.gpslogging = None self.selectionbands = defaultdict(partial(QgsRubberBand, self.canvas)) self.bridge = QgsLayerTreeMapCanvasBridge( QgsProject.instance().layerTreeRoot(), self.canvas) self.bridge.setAutoSetupOnFirstLayer(False) QgsProject.instance().writeProject.connect(self.bridge.writeProject) QgsProject.instance().readProject.connect(self.bridge.readProject) # self.canvas.setInteractive(False) self.canvas.setCanvasColor(Qt.white) self.canvas.enableAntiAliasing(True) self.canvas.setWheelAction(QgsMapCanvas.WheelZoomToMouseCursor) self.snappingutils = SnappingUtils(self.canvas, self) self.canvas.setSnappingUtils(self.snappingutils) QgsProject.instance().readProject.connect( self.snappingutils.readConfigFromProject) if hasattr(self.canvas, 'setParallelRenderingEnabled'): threadcount = QThread.idealThreadCount() threadcount = 2 if threadcount > 2 else 1 QgsApplication.setMaxThreads(threadcount) self.canvas.setParallelRenderingEnabled(True) pal = QgsPalLabeling() self.canvas.mapRenderer().setLabelingEngine(pal) self.canvas.setFrameStyle(QFrame.NoFrame) self.editgroup = QActionGroup(self) self.editgroup.setExclusive(True) self.editgroup.addAction(self.actionPan) self.editgroup.addAction(self.actionZoom_In) self.editgroup.addAction(self.actionZoom_Out) self.editgroup.addAction(self.actionInfo) self.actionGPS = GPSAction(":/icons/gps", self.canvas, self) self.projecttoolbar.addAction(self.actionGPS) if roam.config.settings.get('north_arrow', False): self.northarrow = NorthArrow(":/icons/north", self.canvas) self.northarrow.setPos(10, 10) self.canvas.scene().addItem(self.northarrow) smallmode = roam.config.settings.get("smallmode", False) self.projecttoolbar.setSmallMode(smallmode) self.scalebar_enabled = roam.config.settings.get('scale_bar', False) if self.scalebar_enabled: self.scalebar = ScaleBarItem(self.canvas) self.canvas.scene().addItem(self.scalebar) self.projecttoolbar.setContextMenuPolicy(Qt.CustomContextMenu) gpsspacewidget = QWidget() gpsspacewidget.setMinimumWidth(30) gpsspacewidget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.topspaceraction = self.projecttoolbar.insertWidget( self.actionGPS, gpsspacewidget) self.dataentryselection = QAction(self.projecttoolbar) self.dataentryaction = self.projecttoolbar.insertAction( self.topspaceraction, self.dataentryselection) self.dataentryselection.triggered.connect(self.select_data_entry) self.marker = GPSMarker(self.canvas) self.marker.hide() self.currentfeatureband = CurrentSelection(self.canvas) self.currentfeatureband.setIconSize(30) self.currentfeatureband.setWidth(10) self.currentfeatureband.setColor(QColor(186, 93, 212, 50)) self.currentfeatureband.setOutlineColour(QColor(186, 93, 212)) self.gpsband = QgsRubberBand(self.canvas) self.gpsband.setColor(QColor(165, 111, 212, 75)) self.gpsband.setWidth(5) RoamEvents.editgeometry.connect(self.queue_feature_for_edit) RoamEvents.selectioncleared.connect(self.clear_selection) RoamEvents.selectionchanged.connect(self.highlight_selection) RoamEvents.openfeatureform.connect(self.feature_form_loaded) RoamEvents.sync_complete.connect(self.refresh_map) RoamEvents.snappingChanged.connect(self.snapping_changed) self.snappingbutton = QToolButton() self.snappingbutton.setText("Snapping: On") self.snappingbutton.setAutoRaise(True) self.snappingbutton.pressed.connect(self.toggle_snapping) spacer = QWidget() spacer2 = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) spacer2.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self.scalewidget = QgsScaleComboBox() self.scalebutton = QToolButton() self.scalebutton.setAutoRaise(True) self.scalebutton.setMaximumHeight(self.statusbar.height()) self.scalebutton.pressed.connect(self.selectscale) self.scalebutton.setText("Scale") self.scalelist = BigList(parent=self.canvas, centeronparent=True, showsave=False) self.scalelist.hide() self.scalelist.setlabel("Map Scale") self.scalelist.setmodel(self.scalewidget.model()) self.scalelist.closewidget.connect(self.scalelist.close) self.scalelist.itemselected.connect(self.update_scale_from_item) self.scalelist.itemselected.connect(self.scalelist.close) self.positionlabel = QLabel('') self.gpslabel = QLabel("GPS: Not active") self.gpslabelposition = QLabel("") self.statusbar.addWidget(self.snappingbutton) self.statusbar.addWidget(spacer2) self.statusbar.addWidget(self.gpslabel) self.statusbar.addWidget(self.gpslabelposition) self.statusbar.addPermanentWidget(self.scalebutton) self.canvas.extentsChanged.connect(self.updatestatuslabel) self.canvas.scaleChanged.connect(self.updatestatuslabel) GPS.gpsposition.connect(self.update_gps_label) GPS.gpsdisconnected.connect(self.gps_disconnected) self.connectButtons()
def __init__(self, parent=None): QWidget.__init__(self, parent) self.setWindowTitle(QCoreApplication.translate("PythonConsole", "Python Console")) self.settings = QSettings() self.shell = ShellScintilla(self) self.setFocusProxy(self.shell) self.shellOut = ShellOutputScintilla(self) self.tabEditorWidget = EditorTabWidget(self) ##------------ UI ------------------------------- self.splitterEditor = QSplitter(self) self.splitterEditor.setOrientation(Qt.Horizontal) self.splitterEditor.setHandleWidth(6) self.splitterEditor.setChildrenCollapsible(True) self.shellOutWidget = QWidget(self) self.shellOutWidget.setLayout(QVBoxLayout()) self.shellOutWidget.layout().setContentsMargins(0,0,0,0) self.shellOutWidget.layout().addWidget(self.shellOut) self.splitter = QSplitter(self.splitterEditor) self.splitter.setOrientation(Qt.Vertical) self.splitter.setHandleWidth(3) self.splitter.setChildrenCollapsible(False) self.splitter.addWidget(self.shellOutWidget) self.splitter.addWidget(self.shell) #self.splitterEditor.addWidget(self.tabEditorWidget) self.splitterObj = QSplitter(self.splitterEditor) self.splitterObj.setHandleWidth(3) self.splitterObj.setOrientation(Qt.Horizontal) #self.splitterObj.setSizes([0, 0]) #self.splitterObj.setStretchFactor(0, 1) self.widgetEditor = QWidget(self.splitterObj) self.widgetFind = QWidget(self) self.listClassMethod = QTreeWidget(self.splitterObj) self.listClassMethod.setColumnCount(2) objInspLabel = QCoreApplication.translate("PythonConsole", "Object Inspector") self.listClassMethod.setHeaderLabels([objInspLabel, '']) self.listClassMethod.setColumnHidden(1, True) self.listClassMethod.setAlternatingRowColors(True) #self.splitterEditor.addWidget(self.widgetEditor) #self.splitterObj.addWidget(self.listClassMethod) #self.splitterObj.addWidget(self.widgetEditor) # Hide side editor on start up self.splitterObj.hide() self.listClassMethod.hide() # Hide search widget on start up self.widgetFind.hide() sizes = self.splitter.sizes() self.splitter.setSizes(sizes) ##----------------Restore Settings------------------------------------ self.restoreSettingsConsole() ##------------------Toolbar Editor------------------------------------- ## Action for Open File openFileBt = QCoreApplication.translate("PythonConsole", "Open file") self.openFileButton = QAction(self) self.openFileButton.setCheckable(False) self.openFileButton.setEnabled(True) self.openFileButton.setIcon(QgsApplication.getThemeIcon("console/iconOpenConsole.png")) self.openFileButton.setMenuRole(QAction.PreferencesRole) self.openFileButton.setIconVisibleInMenu(True) self.openFileButton.setToolTip(openFileBt) self.openFileButton.setText(openFileBt) openExtEditorBt = QCoreApplication.translate("PythonConsole", "Open in external editor") self.openInEditorButton = QAction(self) self.openInEditorButton.setCheckable(False) self.openInEditorButton.setEnabled(True) self.openInEditorButton.setIcon(QgsApplication.getThemeIcon("console/iconShowEditorConsole.png")) self.openInEditorButton.setMenuRole(QAction.PreferencesRole) self.openInEditorButton.setIconVisibleInMenu(True) self.openInEditorButton.setToolTip(openExtEditorBt) self.openInEditorButton.setText(openExtEditorBt) ## Action for Save File saveFileBt = QCoreApplication.translate("PythonConsole", "Save") self.saveFileButton = QAction(self) self.saveFileButton.setCheckable(False) self.saveFileButton.setEnabled(False) self.saveFileButton.setIcon(QgsApplication.getThemeIcon("console/iconSaveConsole.png")) self.saveFileButton.setMenuRole(QAction.PreferencesRole) self.saveFileButton.setIconVisibleInMenu(True) self.saveFileButton.setToolTip(saveFileBt) self.saveFileButton.setText(saveFileBt) ## Action for Save File As saveAsFileBt = QCoreApplication.translate("PythonConsole", "Save As...") self.saveAsFileButton = QAction(self) self.saveAsFileButton.setCheckable(False) self.saveAsFileButton.setEnabled(True) self.saveAsFileButton.setIcon(QgsApplication.getThemeIcon("console/iconSaveAsConsole.png")) self.saveAsFileButton.setMenuRole(QAction.PreferencesRole) self.saveAsFileButton.setIconVisibleInMenu(True) self.saveAsFileButton.setToolTip(saveAsFileBt) self.saveAsFileButton.setText(saveAsFileBt) ## Action Cut cutEditorBt = QCoreApplication.translate("PythonConsole", "Cut") self.cutEditorButton = QAction(self) self.cutEditorButton.setCheckable(False) self.cutEditorButton.setEnabled(True) self.cutEditorButton.setIcon(QgsApplication.getThemeIcon("console/iconCutEditorConsole.png")) self.cutEditorButton.setMenuRole(QAction.PreferencesRole) self.cutEditorButton.setIconVisibleInMenu(True) self.cutEditorButton.setToolTip(cutEditorBt) self.cutEditorButton.setText(cutEditorBt) ## Action Copy copyEditorBt = QCoreApplication.translate("PythonConsole", "Copy") self.copyEditorButton = QAction(self) self.copyEditorButton.setCheckable(False) self.copyEditorButton.setEnabled(True) self.copyEditorButton.setIcon(QgsApplication.getThemeIcon("console/iconCopyEditorConsole.png")) self.copyEditorButton.setMenuRole(QAction.PreferencesRole) self.copyEditorButton.setIconVisibleInMenu(True) self.copyEditorButton.setToolTip(copyEditorBt) self.copyEditorButton.setText(copyEditorBt) ## Action Paste pasteEditorBt = QCoreApplication.translate("PythonConsole", "Paste") self.pasteEditorButton = QAction(self) self.pasteEditorButton.setCheckable(False) self.pasteEditorButton.setEnabled(True) self.pasteEditorButton.setIcon(QgsApplication.getThemeIcon("console/iconPasteEditorConsole.png")) self.pasteEditorButton.setMenuRole(QAction.PreferencesRole) self.pasteEditorButton.setIconVisibleInMenu(True) self.pasteEditorButton.setToolTip(pasteEditorBt) self.pasteEditorButton.setText(pasteEditorBt) ## Action Run Script (subprocess) runScriptEditorBt = QCoreApplication.translate("PythonConsole", "Run script") self.runScriptEditorButton = QAction(self) self.runScriptEditorButton.setCheckable(False) self.runScriptEditorButton.setEnabled(True) self.runScriptEditorButton.setIcon(QgsApplication.getThemeIcon("console/iconRunScriptConsole.png")) self.runScriptEditorButton.setMenuRole(QAction.PreferencesRole) self.runScriptEditorButton.setIconVisibleInMenu(True) self.runScriptEditorButton.setToolTip(runScriptEditorBt) self.runScriptEditorButton.setText(runScriptEditorBt) ## Action Run Script (subprocess) commentEditorBt = QCoreApplication.translate("PythonConsole", "Comment") self.commentEditorButton = QAction(self) self.commentEditorButton.setCheckable(False) self.commentEditorButton.setEnabled(True) self.commentEditorButton.setIcon(QgsApplication.getThemeIcon("console/iconCommentEditorConsole.png")) self.commentEditorButton.setMenuRole(QAction.PreferencesRole) self.commentEditorButton.setIconVisibleInMenu(True) self.commentEditorButton.setToolTip(commentEditorBt) self.commentEditorButton.setText(commentEditorBt) ## Action Run Script (subprocess) uncommentEditorBt = QCoreApplication.translate("PythonConsole", "Uncomment") self.uncommentEditorButton = QAction(self) self.uncommentEditorButton.setCheckable(False) self.uncommentEditorButton.setEnabled(True) self.uncommentEditorButton.setIcon(QgsApplication.getThemeIcon("console/iconUncommentEditorConsole.png")) self.uncommentEditorButton.setMenuRole(QAction.PreferencesRole) self.uncommentEditorButton.setIconVisibleInMenu(True) self.uncommentEditorButton.setToolTip(uncommentEditorBt) self.uncommentEditorButton.setText(uncommentEditorBt) ## Action for Object browser objList = QCoreApplication.translate("PythonConsole", "Object Inspector") self.objectListButton = QAction(self) self.objectListButton.setCheckable(True) self.objectListButton.setEnabled(self.settings.value("pythonConsole/enableObjectInsp", False, type=bool)) self.objectListButton.setIcon(QgsApplication.getThemeIcon("console/iconClassBrowserConsole.png")) self.objectListButton.setMenuRole(QAction.PreferencesRole) self.objectListButton.setIconVisibleInMenu(True) self.objectListButton.setToolTip(objList) self.objectListButton.setText(objList) ## Action for Find text findText = QCoreApplication.translate("PythonConsole", "Find Text") self.findTextButton = QAction(self) self.findTextButton.setCheckable(True) self.findTextButton.setEnabled(True) self.findTextButton.setIcon(QgsApplication.getThemeIcon("console/iconSearchEditorConsole.png")) self.findTextButton.setMenuRole(QAction.PreferencesRole) self.findTextButton.setIconVisibleInMenu(True) self.findTextButton.setToolTip(findText) self.findTextButton.setText(findText) ##----------------Toolbar Console------------------------------------- ## Action Show Editor showEditor = QCoreApplication.translate("PythonConsole", "Show editor") self.showEditorButton = QAction(self) self.showEditorButton.setEnabled(True) self.showEditorButton.setCheckable(True) self.showEditorButton.setIcon(QgsApplication.getThemeIcon("console/iconShowEditorConsole.png")) self.showEditorButton.setMenuRole(QAction.PreferencesRole) self.showEditorButton.setIconVisibleInMenu(True) self.showEditorButton.setToolTip(showEditor) self.showEditorButton.setText(showEditor) ## Action for Clear button clearBt = QCoreApplication.translate("PythonConsole", "Clear console") self.clearButton = QAction(self) self.clearButton.setCheckable(False) self.clearButton.setEnabled(True) self.clearButton.setIcon(QgsApplication.getThemeIcon("console/iconClearConsole.png")) self.clearButton.setMenuRole(QAction.PreferencesRole) self.clearButton.setIconVisibleInMenu(True) self.clearButton.setToolTip(clearBt) self.clearButton.setText(clearBt) ## Action for settings optionsBt = QCoreApplication.translate("PythonConsole", "Settings") self.optionsButton = QAction(self) self.optionsButton.setCheckable(False) self.optionsButton.setEnabled(True) self.optionsButton.setIcon(QgsApplication.getThemeIcon("console/iconSettingsConsole.png")) self.optionsButton.setMenuRole(QAction.PreferencesRole) self.optionsButton.setIconVisibleInMenu(True) self.optionsButton.setToolTip(optionsBt) self.optionsButton.setText(optionsBt) ## Action menu for class actionClassBt = QCoreApplication.translate("PythonConsole", "Import Class") self.actionClass = QAction(self) self.actionClass.setCheckable(False) self.actionClass.setEnabled(True) self.actionClass.setIcon(QgsApplication.getThemeIcon("console/iconClassConsole.png")) self.actionClass.setMenuRole(QAction.PreferencesRole) self.actionClass.setIconVisibleInMenu(True) self.actionClass.setToolTip(actionClassBt) self.actionClass.setText(actionClassBt) ## Import Processing class loadProcessingBt = QCoreApplication.translate("PythonConsole", "Import Processing class") self.loadProcessingButton = QAction(self) self.loadProcessingButton.setCheckable(False) self.loadProcessingButton.setEnabled(True) self.loadProcessingButton.setIcon(QgsApplication.getThemeIcon("console/iconProcessingConsole.png")) self.loadProcessingButton.setMenuRole(QAction.PreferencesRole) self.loadProcessingButton.setIconVisibleInMenu(True) self.loadProcessingButton.setToolTip(loadProcessingBt) self.loadProcessingButton.setText(loadProcessingBt) ## Import QtCore class loadQtCoreBt = QCoreApplication.translate("PythonConsole", "Import PyQt.QtCore class") self.loadQtCoreButton = QAction(self) self.loadQtCoreButton.setCheckable(False) self.loadQtCoreButton.setEnabled(True) self.loadQtCoreButton.setIcon(QgsApplication.getThemeIcon("console/iconQtCoreConsole.png")) self.loadQtCoreButton.setMenuRole(QAction.PreferencesRole) self.loadQtCoreButton.setIconVisibleInMenu(True) self.loadQtCoreButton.setToolTip(loadQtCoreBt) self.loadQtCoreButton.setText(loadQtCoreBt) ## Import QtGui class loadQtGuiBt = QCoreApplication.translate("PythonConsole", "Import PyQt.QtGui class") self.loadQtGuiButton = QAction(self) self.loadQtGuiButton.setCheckable(False) self.loadQtGuiButton.setEnabled(True) self.loadQtGuiButton.setIcon(QgsApplication.getThemeIcon("console/iconQtGuiConsole.png")) self.loadQtGuiButton.setMenuRole(QAction.PreferencesRole) self.loadQtGuiButton.setIconVisibleInMenu(True) self.loadQtGuiButton.setToolTip(loadQtGuiBt) self.loadQtGuiButton.setText(loadQtGuiBt) ## Action for Run script runBt = QCoreApplication.translate("PythonConsole", "Run command") self.runButton = QAction(self) self.runButton.setCheckable(False) self.runButton.setEnabled(True) self.runButton.setIcon(QgsApplication.getThemeIcon("console/iconRunConsole.png")) self.runButton.setMenuRole(QAction.PreferencesRole) self.runButton.setIconVisibleInMenu(True) self.runButton.setToolTip(runBt) self.runButton.setText(runBt) ## Help action helpBt = QCoreApplication.translate("PythonConsole", "Help") self.helpButton = QAction(self) self.helpButton.setCheckable(False) self.helpButton.setEnabled(True) self.helpButton.setIcon(QgsApplication.getThemeIcon("console/iconHelpConsole.png")) self.helpButton.setMenuRole(QAction.PreferencesRole) self.helpButton.setIconVisibleInMenu(True) self.helpButton.setToolTip(helpBt) self.helpButton.setText(helpBt) self.toolBar = QToolBar() self.toolBar.setEnabled(True) self.toolBar.setFocusPolicy(Qt.NoFocus) self.toolBar.setContextMenuPolicy(Qt.DefaultContextMenu) self.toolBar.setLayoutDirection(Qt.LeftToRight) self.toolBar.setIconSize(QSize(16, 16)) self.toolBar.setMovable(False) self.toolBar.setFloatable(False) self.toolBar.addAction(self.clearButton) self.toolBar.addAction(self.actionClass) self.toolBar.addAction(self.runButton) self.toolBar.addSeparator() self.toolBar.addAction(self.showEditorButton) self.toolBar.addSeparator() self.toolBar.addAction(self.optionsButton) self.toolBar.addAction(self.helpButton) self.toolBarEditor = QToolBar() self.toolBarEditor.setEnabled(False) self.toolBarEditor.setFocusPolicy(Qt.NoFocus) self.toolBarEditor.setContextMenuPolicy(Qt.DefaultContextMenu) self.toolBarEditor.setLayoutDirection(Qt.LeftToRight) self.toolBarEditor.setIconSize(QSize(16, 16)) self.toolBarEditor.setMovable(False) self.toolBarEditor.setFloatable(False) self.toolBarEditor.addAction(self.openFileButton) self.toolBarEditor.addAction(self.openInEditorButton) self.toolBarEditor.addSeparator() self.toolBarEditor.addAction(self.saveFileButton) self.toolBarEditor.addAction(self.saveAsFileButton) self.toolBarEditor.addSeparator() self.toolBarEditor.addAction(self.findTextButton) self.toolBarEditor.addSeparator() self.toolBarEditor.addAction(self.cutEditorButton) self.toolBarEditor.addAction(self.copyEditorButton) self.toolBarEditor.addAction(self.pasteEditorButton) self.toolBarEditor.addSeparator() self.toolBarEditor.addAction(self.commentEditorButton) self.toolBarEditor.addAction(self.uncommentEditorButton) self.toolBarEditor.addSeparator() self.toolBarEditor.addAction(self.objectListButton) self.toolBarEditor.addSeparator() self.toolBarEditor.addAction(self.runScriptEditorButton) ## Menu Import Class self.classMenu = QMenu() self.classMenu.addAction(self.loadProcessingButton) self.classMenu.addAction(self.loadQtCoreButton) self.classMenu.addAction(self.loadQtGuiButton) cM = self.toolBar.widgetForAction(self.actionClass) cM.setMenu(self.classMenu) cM.setPopupMode(QToolButton.InstantPopup) self.widgetButton = QWidget() sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.widgetButton.sizePolicy().hasHeightForWidth()) self.widgetButton.setSizePolicy(sizePolicy) self.widgetButtonEditor = QWidget(self.widgetEditor) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.widgetButtonEditor.sizePolicy().hasHeightForWidth()) self.widgetButtonEditor.setSizePolicy(sizePolicy) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.shellOut.sizePolicy().hasHeightForWidth()) self.shellOut.setSizePolicy(sizePolicy) self.shellOut.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) self.shell.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) ##------------ Layout ------------------------------- self.mainLayout = QGridLayout(self) self.mainLayout.setMargin(0) self.mainLayout.setSpacing(0) self.mainLayout.addWidget(self.widgetButton, 0, 0, 1, 1) self.mainLayout.addWidget(self.splitterEditor, 0, 1, 1, 1) self.shellOutWidget.layout().insertWidget(0, self.toolBar) self.layoutEditor = QGridLayout(self.widgetEditor) self.layoutEditor.setMargin(0) self.layoutEditor.setSpacing(0) self.layoutEditor.addWidget(self.toolBarEditor, 0, 1, 1, 1) self.layoutEditor.addWidget(self.widgetButtonEditor, 1, 0, 2, 1) self.layoutEditor.addWidget(self.tabEditorWidget, 1, 1, 1, 1) self.layoutEditor.addWidget(self.widgetFind, 2, 1, 1, 1) ## Layout for the find widget self.layoutFind = QGridLayout(self.widgetFind) self.layoutFind.setContentsMargins(0, 0, 0, 0) self.lineEditFind = QgsFilterLineEdit() placeHolderTxt = QCoreApplication.translate("PythonConsole", "Enter text to find...") if pyqtconfig.Configuration().qt_version >= 0x40700: self.lineEditFind.setPlaceholderText(placeHolderTxt) else: self.lineEditFind.setToolTip(placeHolderTxt) self.findNextButton = QToolButton() self.findNextButton.setEnabled(False) toolTipfindNext = QCoreApplication.translate("PythonConsole", "Find Next") self.findNextButton.setToolTip(toolTipfindNext) self.findNextButton.setIcon(QgsApplication.getThemeIcon("console/iconSearchNextEditorConsole.png")) self.findNextButton.setIconSize(QSize(24, 24)) self.findNextButton.setAutoRaise(True) self.findPrevButton = QToolButton() self.findPrevButton.setEnabled(False) toolTipfindPrev = QCoreApplication.translate("PythonConsole", "Find Previous") self.findPrevButton.setToolTip(toolTipfindPrev) self.findPrevButton.setIcon(QgsApplication.getThemeIcon("console/iconSearchPrevEditorConsole.png")) self.findPrevButton.setIconSize(QSize(24, 24)) self.findPrevButton.setAutoRaise(True) self.caseSensitive = QCheckBox() caseSensTr = QCoreApplication.translate("PythonConsole", "Case Sensitive") self.caseSensitive.setText(caseSensTr) self.wholeWord = QCheckBox() wholeWordTr = QCoreApplication.translate("PythonConsole", "Whole Word") self.wholeWord.setText(wholeWordTr) self.wrapAround = QCheckBox() self.wrapAround.setChecked(True) wrapAroundTr = QCoreApplication.translate("PythonConsole", "Wrap Around") self.wrapAround.setText(wrapAroundTr) self.layoutFind.addWidget(self.lineEditFind, 0, 1, 1, 1) self.layoutFind.addWidget(self.findPrevButton, 0, 2, 1, 1) self.layoutFind.addWidget(self.findNextButton, 0, 3, 1, 1) self.layoutFind.addWidget(self.caseSensitive, 0, 4, 1, 1) self.layoutFind.addWidget(self.wholeWord, 0, 5, 1, 1) self.layoutFind.addWidget(self.wrapAround, 0, 6, 1, 1) ##------------ Add first Tab in Editor ------------------------------- #self.tabEditorWidget.newTabEditor(tabName='first', filename=None) ##------------ Signal ------------------------------- self.findTextButton.toggled.connect(self.findTextEditor) self.objectListButton.toggled.connect(self.toggleObjectListWidget) self.commentEditorButton.triggered.connect(self.commentCode) self.uncommentEditorButton.triggered.connect(self.uncommentCode) self.runScriptEditorButton.triggered.connect(self.runScriptEditor) self.cutEditorButton.triggered.connect(self.cutEditor) self.copyEditorButton.triggered.connect(self.copyEditor) self.pasteEditorButton.triggered.connect(self.pasteEditor) self.showEditorButton.toggled.connect(self.toggleEditor) self.clearButton.triggered.connect(self.shellOut.clearConsole) self.optionsButton.triggered.connect(self.openSettings) self.loadProcessingButton.triggered.connect(self.processing) self.loadQtCoreButton.triggered.connect(self.qtCore) self.loadQtGuiButton.triggered.connect(self.qtGui) self.runButton.triggered.connect(self.shell.entered) self.openFileButton.triggered.connect(self.openScriptFile) self.openInEditorButton.triggered.connect(self.openScriptFileExtEditor) self.saveFileButton.triggered.connect(self.saveScriptFile) self.saveAsFileButton.triggered.connect(self.saveAsScriptFile) self.helpButton.triggered.connect(self.openHelp) self.connect(self.listClassMethod, SIGNAL('itemClicked(QTreeWidgetItem*, int)'), self.onClickGoToLine) self.lineEditFind.returnPressed.connect(self._findText) self.findNextButton.clicked.connect(self._findNext) self.findPrevButton.clicked.connect(self._findPrev) self.lineEditFind.textChanged.connect(self._textFindChanged)
def initGui(self): #import pydevd #pydevd.settrace('localhost', port=9921, stdoutToServer=True, stderrToServer=True, suspend=False) """Create the menu entries and toolbar icons inside the QGIS GUI.""" # Main Menu icon_path = self.plugin_dir + '/icons/mActionAddLayer.png' self.menu = QMenu(self.tr(u'QuickMapServices')) self.menu.setIcon(QIcon(icon_path)) # DataSources Actions # Register plugin layer type self.tileLayerType = TileLayerType(self) QgsPluginLayerRegistry.instance().addPluginLayerType( self.tileLayerType) self.groups_list = DsGroupsList(self.locale, self.custom_translator) self.ds_list = DataSourcesList(self.locale, self.custom_translator) data_sources = self.ds_list.data_sources.values() data_sources.sort(key=lambda x: x.alias or x.id) for ds in data_sources: ds.action.triggered.connect(self.insert_layer) gr_menu = self.groups_list.get_group_menu(ds.group) gr_menu.addAction(ds.action) if gr_menu not in self.menu.children(): self.menu.addMenu(gr_menu) # Scales, Settings and About actions icon_set_nearest_scale_path = self.plugin_dir + '/icons/mActionSettings.png' # TODO change icon set_nearest_scale_act = QAction(QIcon(icon_set_nearest_scale_path), self.tr('Set proper scale'), self.iface.mainWindow()) set_nearest_scale_act.triggered.connect(self.set_nearest_scale) self.menu.addAction(set_nearest_scale_act) # TODO: uncomment after fix self.service_actions.append(set_nearest_scale_act) icon_scales_path = self.plugin_dir + '/icons/mActionSettings.png' # TODO change icon scales_act = QAction(QIcon(icon_scales_path), self.tr('Set SlippyMap scales'), self.iface.mainWindow()) scales_act.triggered.connect(self.set_tms_scales) #self.menu.addAction(scales_act) # TODO: uncomment after fix self.service_actions.append(scales_act) icon_settings_path = self.plugin_dir + '/icons/mActionSettings.png' settings_act = QAction(QIcon(icon_settings_path), self.tr('Settings'), self.iface.mainWindow()) self.service_actions.append(settings_act) #self.menu.addAction(settings_act) icon_about_path = self.plugin_dir + '/icons/mActionAbout.png' info_act = QAction(QIcon(icon_about_path), self.tr('About'), self.iface.mainWindow()) self.service_actions.append(info_act) info_act.triggered.connect(self.info_dlg.show) self.menu.addAction(info_act) # add to QGIS menu self.iface.addPluginToWebMenu("_tmp", info_act) self.iface.webMenu().addMenu(self.menu) self.iface.removePluginWebMenu("_tmp", info_act) # add to QGIS toolbar toolbutton = QToolButton() toolbutton.setPopupMode(QToolButton.InstantPopup) toolbutton.setMenu(self.menu) toolbutton.setIcon(self.menu.icon()) toolbutton.setText(self.menu.title()) toolbutton.setToolTip(self.menu.title()) self.tb_action = self.iface.webToolBar().addWidget(toolbutton)
def __init__(self, parent=None): super(OverviewScene, self).__init__(parent) self.coordEventObserver = None self.colorTable = None self.anaglyph = False self.sceneItems = [] self.cutter = 3 * [None] self.objects = [] self.planes = None self.axes = None self._dataShape = None layout = QVBoxLayout() layout.setMargin(0) layout.setSpacing(0) self.qvtk = QVTKOpenGLWidget() layout.addWidget(self.qvtk) self.setLayout(layout) self.qvtk.init() hbox = QHBoxLayout(None) hbox.setMargin(0) hbox.setSpacing(5) hbox.setContentsMargins(5, 3, 5, 3) def delete_gl_widget(): # This is called just before the app quits to avoid this error during shutdown: # QGLContext::makeCurrent: Cannot make invalid context current self.qvtk.setParent(None) del self.qvtk QApplication.instance().aboutToQuit.connect(delete_gl_widget) b1 = QToolButton() b1.setIcon(QIcon(':icons/icons/x-axis.png')) b1.setToolTip("Show x slicing plane") b1.setCheckable(True) b1.setChecked(True) b2 = QToolButton() b2.setIcon(QIcon(':icons/icons/y-axis.png')) b2.setToolTip("Show y slicing plane") b2.setCheckable(True) b2.setChecked(True) b3 = QToolButton() b3.setIcon(QIcon(':icons/icons/z-axis.png')) b3.setToolTip("Show z slicing plane") b3.setCheckable(True) b3.setChecked(True) bAnaglyph = QToolButton() bAnaglyph.setIcon(QIcon(':icons/icons/3d_glasses.png')) bAnaglyph.setToolTip("Show in anaglyph 3D") bAnaglyph.setCheckable(True) bAnaglyph.setChecked(False) self.bUndock = QToolButton() self.bUndock.setIcon(QIcon(":/icons/icons/arrow_up.png")) self.bUndock.setToolTip("Dock/undock this view") ''' bCutter = QToolButton() bCutter.setIcon(QIcon(':icons/icons/edit-cut.png')) bCutter.setCheckable(True); bCutter.setChecked(False) self.bCutter = bCutter bExportMesh = QToolButton() bExportMesh.setIcon(QIcon(':icons/icons/document-save-as.png')) ''' hbox.addWidget(b1) hbox.addWidget(b2) hbox.addWidget(b3) hbox.addWidget(bAnaglyph) hbox.addWidget(self.bUndock) #hbox.addWidget(bCutter) hbox.addStretch() #hbox.addWidget(bExportMesh) layout.addLayout(hbox) self.connect(b1, SIGNAL("clicked()"), self.TogglePlaneWidgetX) self.connect(b2, SIGNAL("clicked()"), self.TogglePlaneWidgetY) self.connect(b3, SIGNAL("clicked()"), self.TogglePlaneWidgetZ) self.connect(bAnaglyph, SIGNAL("clicked()"), self.ToggleAnaglyph3D) #self.connect(bExportMesh, SIGNAL("clicked()"), self.exportMesh) #bCutter.toggled.connect(self.useCutterToggled) self.connect(self.qvtk, SIGNAL("objectPicked"), self.__onObjectPicked) def layerContextMenu(layer, menu): self.layerContextMenu(layer, menu) Event.register("layerContextMenuRequested", layerContextMenu)
def __init__(self, parent): super(AudioVideoTab, self).__init__(parent) self.parent = parent self.name = 'AudioVideo' self.defaultStr = self.tr('Default') self.DisableStream = self.tr('Disable') self.formats = config.video_formats frequency_values = [self.defaultStr] + config.video_frequency_values bitrate_values = [self.defaultStr] + config.video_bitrate_values rotation_options = [ self.tr('None'), '90 ' + self.tr('clockwise'), '90 ' + self.tr('clockwise') + ' + ' + self.tr('vertical flip'), '90 ' + self.tr('counter clockwise'), '90 ' + self.tr('counter clockwise') + ' + ' + self.tr('vertical flip'), '180', self.tr('horizontal flip'), self.tr('vertical flip') ] digits_validator = QRegExpValidator(QRegExp(r'[1-9]\d*'), self) digits_validator_wzero = QRegExpValidator(QRegExp(r'\d*'), self) digits_validator_minus = QRegExpValidator(QRegExp(r'(-1|[1-9]\d*)'), self) time_validator = QRegExpValidator( QRegExp(r'\d{1,2}:\d{1,2}:\d{1,2}\.\d+'), self) converttoQL = QLabel(self.tr('Convert to:')) self.extQCB = QComboBox() self.extQCB.setMinimumWidth(100) vidcodecQL = QLabel('Video codec:') self.vidcodecQCB = QComboBox() self.vidcodecQCB.setMinimumWidth(110) audcodecQL = QLabel('Audio codec:') self.audcodecQCB = QComboBox() self.audcodecQCB.setMinimumWidth(110) hlayout1 = utils.add_to_layout('h', converttoQL, self.extQCB, QSpacerItem(180, 20), vidcodecQL, self.vidcodecQCB, audcodecQL, self.audcodecQCB) commandQL = QLabel(self.tr('Command:')) self.commandQLE = QLineEdit() self.presetQPB = QPushButton(self.tr('Preset')) self.defaultQPB = QPushButton(self.defaultStr) hlayout2 = utils.add_to_layout('h', commandQL, self.commandQLE, self.presetQPB, self.defaultQPB) sizeQL = QLabel(self.tr('Video Size:')) aspectQL = QLabel(self.tr('Aspect:')) frameQL = QLabel(self.tr('Frame Rate (fps):')) bitrateQL = QLabel(self.tr('Video Bitrate (kbps):')) self.widthQLE = utils.create_LineEdit((70, 16777215), digits_validator_minus, 4) self.heightQLE = utils.create_LineEdit((70, 16777215), digits_validator_minus, 4) label = QLabel('<html><p align="center">x</p></html>') layout1 = utils.add_to_layout('h', self.widthQLE, label, self.heightQLE) self.aspect1QLE = utils.create_LineEdit((50, 16777215), digits_validator, 2) self.aspect2QLE = utils.create_LineEdit((50, 16777215), digits_validator, 2) label = QLabel('<html><p align="center">:</p></html>') layout2 = utils.add_to_layout('h', self.aspect1QLE, label, self.aspect2QLE) self.frameQLE = utils.create_LineEdit((120, 16777215), digits_validator, 4) self.bitrateQLE = utils.create_LineEdit((130, 16777215), digits_validator, 6) labels = [sizeQL, aspectQL, frameQL, bitrateQL] widgets = [layout1, layout2, self.frameQLE, self.bitrateQLE] self.preserveaspectQChB = QCheckBox(self.tr("Preserve aspect ratio")) self.preservesizeQChB = QCheckBox(self.tr("Preserve video size")) preserve_layout = utils.add_to_layout('v', self.preserveaspectQChB, self.preservesizeQChB) videosettings_layout = QHBoxLayout() for a, b in zip(labels, widgets): a.setText('<html><p align="center">{0}</p></html>'.format( a.text())) layout = utils.add_to_layout('v', a, b) videosettings_layout.addLayout(layout) if a == aspectQL: # add vidaspectCB in layout after aspectQL videosettings_layout.addLayout(preserve_layout) freqQL = QLabel(self.tr('Frequency (Hz):')) chanQL = QLabel(self.tr('Audio Channels:')) bitrateQL = QLabel(self.tr('Audio Bitrate (kbps):')) threadsQL = QLabel(self.tr('Threads:')) self.freqQCB = QComboBox() self.freqQCB.addItems(frequency_values) self.chan1QRB = QRadioButton('1') self.chan1QRB.setMaximumSize(QSize(51, 16777215)) self.chan2QRB = QRadioButton('2') self.chan2QRB.setMaximumSize(QSize(51, 16777215)) self.group = QButtonGroup() self.group.addButton(self.chan1QRB) self.group.addButton(self.chan2QRB) spcr1 = QSpacerItem(40, 20, QSizePolicy.Preferred, QSizePolicy.Minimum) spcr2 = QSpacerItem(40, 20, QSizePolicy.Preferred, QSizePolicy.Minimum) chanlayout = utils.add_to_layout('h', spcr1, self.chan1QRB, self.chan2QRB, spcr2) self.audbitrateQCB = QComboBox() self.audbitrateQCB.addItems(bitrate_values) self.threadsQLE = utils.create_LineEdit((50, 16777215), digits_validator_wzero, 1) labels = [freqQL, bitrateQL, chanQL, threadsQL] widgets = [ self.freqQCB, self.audbitrateQCB, chanlayout, self.threadsQLE ] audiosettings_layout = QHBoxLayout() for a, b in zip(labels, widgets): a.setText('<html><p align="center">{0}</p></html>'.format( a.text())) layout = utils.add_to_layout('v', a, b) audiosettings_layout.addLayout(layout) time_format = " (hh:mm:ss):" beginQL = QLabel(self.tr("Split file. Begin time") + time_format) self.beginQLE = utils.create_LineEdit(None, time_validator, None) durationQL = QLabel(self.tr("Duration") + time_format) self.durationQLE = utils.create_LineEdit(None, time_validator, None) hlayout4 = utils.add_to_layout('h', beginQL, self.beginQLE, durationQL, self.durationQLE) embedQL = QLabel(self.tr("Embed subtitle:")) self.embedQLE = QLineEdit() self.embedQTB = QToolButton() self.embedQTB.setText("...") rotateQL = QLabel(self.tr("Rotate:")) self.rotateQCB = QComboBox() self.rotateQCB.addItems(rotation_options) hlayout5 = utils.add_to_layout('h', rotateQL, self.rotateQCB, embedQL, self.embedQLE, self.embedQTB) hidden_layout = utils.add_to_layout('v', videosettings_layout, audiosettings_layout, hlayout4, hlayout5) line = QFrame() line.setFrameShape(QFrame.HLine) line.setFrameShadow(QFrame.Sunken) self.moreQPB = QPushButton(QApplication.translate('Tab', 'More')) self.moreQPB.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.moreQPB.setCheckable(True) hlayout3 = utils.add_to_layout('h', line, self.moreQPB) self.frame = QFrame() self.frame.setLayout(hidden_layout) self.frame.hide() final_layout = utils.add_to_layout('v', hlayout1, hlayout2, hlayout3, self.frame) self.setLayout(final_layout) self.presetQPB.clicked.connect(self.choose_preset) self.defaultQPB.clicked.connect(self.set_default_command) self.embedQTB.clicked.connect(self.open_subtitle_file) self.moreQPB.toggled.connect(self.frame.setVisible) self.moreQPB.toggled.connect( lambda: QTimer.singleShot(100, self.resize_parent)) self.widthQLE.textChanged.connect(self.command_update_size) self.heightQLE.textChanged.connect(self.command_update_size) self.aspect1QLE.textChanged.connect(self.command_update_aspect) self.aspect2QLE.textChanged.connect(self.command_update_aspect) self.frameQLE.textChanged.connect(self.command_update_frames) self.bitrateQLE.textChanged.connect(self.command_update_vidbitrate) self.threadsQLE.textChanged.connect(self.command_update_threads) self.beginQLE.textChanged.connect(self.command_update_begin_time) self.durationQLE.textChanged.connect(self.command_update_duration) self.embedQLE.textChanged.connect(self.command_update_subtitles) self.vidcodecQCB.currentIndexChanged.connect( self.command_update_vcodec) self.audcodecQCB.currentIndexChanged.connect( self.command_update_acodec) self.freqQCB.currentIndexChanged.connect(self.command_update_frequency) self.rotateQCB.currentIndexChanged.connect( self.command_update_rotation) self.audbitrateQCB.currentIndexChanged.connect( self.command_update_audbitrate) self.chan1QRB.clicked.connect( lambda: self.command_update_channels('1')) self.chan2QRB.clicked.connect( lambda: self.command_update_channels('2')) self.preserveaspectQChB.toggled.connect( self.command_update_preserve_aspect) self.preservesizeQChB.toggled.connect( self.command_update_preserve_size)
def reset(self): """ Resets the user interface buttons for this widget. """ # clear previous widgets for btn in self.findChildren(QToolButton): btn.close() btn.setParent(None) btn.deleteLater() # determine coloring options palette = self.palette() unchecked = palette.color(palette.Button) # determine if this is a dark or light scheme avg = (unchecked.red() + unchecked.green() + unchecked.blue()) / 3.0 if (avg < 140): checked = unchecked.lighter(115) checked_clr = self.colorString(unchecked.lighter(120)) border_clr = self.colorString(unchecked.darker(140)) unchecked_clr = self.colorString(checked.lighter(140)) unchecked_clr_alt = self.colorString(checked.lighter(120)) checked_clr_alt = self.colorString(unchecked) else: checked = unchecked.lighter(120) checked_clr = self.colorString(unchecked) border_clr = self.colorString(unchecked.darker(160)) unchecked_clr = self.colorString(checked) unchecked_clr_alt = self.colorString(checked.darker(130)) checked_clr_alt = self.colorString(unchecked.darker(120)) # define the stylesheet options options = {} options['top_left_radius'] = 0 options['top_right_radius'] = 0 options['bot_left_radius'] = 0 options['bot_right_radius'] = 0 options['border_color'] = border_clr options['checked_clr'] = checked_clr options['checked_clr_alt'] = checked_clr_alt options['unchecked_clr'] = unchecked_clr options['unchecked_clr_alt'] = unchecked_clr_alt options['padding_top'] = 1 options['padding_bottom'] = 1 options['padding_left'] = 1 options['padding_right'] = 1 horiz = self.direction() in (QBoxLayout.LeftToRight, QBoxLayout.RightToLeft) if (horiz): options['x1'] = 0 options['y1'] = 0 options['x2'] = 0 options['y2'] = 1 else: options['x1'] = 0 options['y1'] = 0 options['x2'] = 1 options['y2'] = 1 actions = self.actionGroup().actions() count = len(actions) for i, action in enumerate(actions): btn = QToolButton(self) btn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) btn.setDefaultAction(action) self.layout().insertWidget(i, btn) options['top_left_radius'] = 1 options['bot_left_radius'] = 1 options['top_right_radius'] = 1 options['bot_right_radius'] = 1 if (horiz): options['padding_left'] = self._padding options['padding_right'] = self._padding else: options['padding_top'] = self._padding options['padding_bottom'] = self._padding if (not i): if (horiz): options['top_left_radius'] = self.cornerRadius() options['bot_left_radius'] = self.cornerRadius() options['padding_left'] += self.cornerRadius() / 3.0 else: options['top_left_radius'] = self.cornerRadius() options['top_right_radius'] = self.cornerRadius() options['padding_top'] += self.cornerRadius() / 3.0 elif (i == count - 1): if (horiz): options['top_right_radius'] = self.cornerRadius() options['bot_right_radius'] = self.cornerRadius() options['padding_right'] += self.cornerRadius() / 3.0 else: options['bot_left_radius'] = self.cornerRadius() options['bot_right_radius'] = self.cornerRadius() options['padding_bottom'] += self.cornerRadius() / 3.0 btn.setStyleSheet(TOOLBUTTON_STYLE % options) btn.setAutoFillBackground(True)
def __init__(self, *args): PluginBase.__init__(self, BrickletLCD16x2, *args) self.lcd = self.device self.qtcb_pressed.connect(self.cb_pressed) self.lcd.register_callback(self.lcd.CALLBACK_BUTTON_PRESSED, self.qtcb_pressed.emit) self.qtcb_released.connect(self.cb_released) self.lcd.register_callback(self.lcd.CALLBACK_BUTTON_RELEASED, self.qtcb_released.emit) self.line_label = QLabel('Line: ') self.line_combo = QComboBox() for i in range(LCD16x2.MAX_LINE): self.line_combo.addItem(str(i)) self.pos_label = QLabel('Position: ') self.pos_combo = QComboBox() for i in range(LCD16x2.MAX_POSITION): self.pos_combo.addItem(str(i)) self.line_pos_layout = QHBoxLayout() self.line_pos_layout.addWidget(self.line_label) self.line_pos_layout.addWidget(self.line_combo) self.line_pos_layout.addWidget(self.pos_label) self.line_pos_layout.addWidget(self.pos_combo) self.line_pos_layout.addStretch() self.text_label = QLabel('Text: ') self.text_edit = QLineEdit() self.text_edit.setMaxLength(LCD16x2.MAX_POSITION) self.text_button = QPushButton('Send Text') self.text_layout = QHBoxLayout() self.text_layout.addWidget(self.text_label) self.text_layout.addWidget(self.text_edit) self.text_layout.addWidget(self.text_button) self.clear_button = QPushButton("Clear Display") self.bl_button = QPushButton() self.cursor_button = QPushButton() self.blink_button = QPushButton() self.onofflayout = QHBoxLayout() self.onofflayout.addWidget(self.bl_button) self.onofflayout.addWidget(self.cursor_button) self.onofflayout.addWidget(self.blink_button) self.b0_label = QLabel('Button 0: Released,') self.b1_label = QLabel('Button 1: Released,') self.b2_label = QLabel('Button 2: Released') self.buttonlayout = QHBoxLayout() self.buttonlayout.addWidget(self.b0_label) self.buttonlayout.addWidget(self.b1_label) self.buttonlayout.addWidget(self.b2_label) self.cursor_button.clicked.connect(self.cursor_clicked) self.blink_button.clicked.connect(self.blink_clicked) self.clear_button.clicked.connect(self.clear_clicked) self.bl_button.clicked.connect(self.bl_clicked) self.text_button.clicked.connect(self.text_clicked) if self.firmware_version >= (2, 0, 1): line = QFrame() line.setFrameShape(QFrame.HLine) line.setFrameShadow(QFrame.Sunken) gridlayout = QGridLayout() gridlayout.setHorizontalSpacing(2) gridlayout.setVerticalSpacing(2) self.character_boxes_bool = [] self.character_boxes = [] for i in range(5): self.character_boxes.append([]) self.character_boxes_bool.append([]) for j in range(8): b = QToolButton() b.setAutoFillBackground(True) b.setStyleSheet("background-color: rgb(255, 255, 255)") b.setMaximumSize(25, 25) b.setMinimumSize(25, 25) def get_lambda(i, j): return lambda: self.char_button_clicked(i, j) b.clicked.connect(get_lambda(i, j)) self.character_boxes[i].append(b) self.character_boxes_bool[i].append(True) gridlayout.addWidget(b, j, i) self.char_index_label = QLabel('Index:') self.char_index_combo = QComboBox() self.char_index_combo.currentIndexChanged.connect( self.char_index_changed) for i in range(8): self.char_index_combo.addItem(str(i)) self.char_index_layout = QHBoxLayout() self.char_index_layout.addStretch() self.char_index_layout.addWidget(self.char_index_label) self.char_index_layout.addWidget(self.char_index_combo) self.char_index_layout.addStretch() self.char_index_save = QPushButton('Save Character') self.char_index_save.clicked.connect(self.char_index_save_clicked) self.char_show = QPushButton('Show all Custom Characters on LCD') self.char_show.clicked.connect(self.show_clicked) self.char_save_layout = QVBoxLayout() self.char_save_layout.addStretch() self.char_save_layout.addLayout(self.char_index_layout) self.char_save_layout.addWidget(self.char_index_save) self.char_save_layout.addWidget(self.char_show) help_label = QLabel( 'Use "\\0, \\1, ..., \\7" in text field to show custom characters.' ) help_label.setWordWrap(True) self.char_save_layout.addWidget(help_label) self.char_save_layout.addStretch() grid_stretch_layout = QHBoxLayout() grid_stretch_layout.addWidget(QLabel('Custom Character: ')) grid_stretch_layout.addLayout(gridlayout) grid_stretch_layout.addLayout(self.char_save_layout) grid_stretch_layout.addStretch() self.char_main_layout = QHBoxLayout() self.char_main_layout.addStretch() self.char_main_layout.addLayout(grid_stretch_layout) self.char_main_layout.addStretch() layout = QVBoxLayout(self) layout.addLayout(self.line_pos_layout) layout.addLayout(self.text_layout) layout.addWidget(self.clear_button) layout.addLayout(self.onofflayout) layout.addLayout(self.buttonlayout) if self.firmware_version >= (2, 0, 1): layout.addWidget(line) layout.addLayout(self.char_main_layout) layout.addStretch(1)
def __init__(self, parent, distanceUnit, distanceUnit1=None): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("DistanceBoxPanel" + str(len(parent.findChildren(DistanceBoxPanel)))) self.distanceUnit = distanceUnit self.distanceUnit1 = distanceUnit1 self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.frameBoxPanelIn = QFrame(self.frameBoxPanel) self.frameBoxPanelIn.setFrameShape(QFrame.StyledPanel) self.frameBoxPanelIn.setFrameShadow(QFrame.Raised) self.frameBoxPanelIn.setObjectName(("frameBoxPanelIn")) self.hLayoutframeBoxPanelIn = QHBoxLayout(self.frameBoxPanelIn) self.hLayoutframeBoxPanelIn.setSpacing(0) self.hLayoutframeBoxPanelIn.setMargin(0) self.hLayoutframeBoxPanelIn.setObjectName(("hLayoutframeBoxPanelIn")) self.txtDistance = QLineEdit(self.frameBoxPanelIn) self.txtDistance.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.txtDistance.setFont(font) self.txtDistance.setObjectName(self.objectName() + "_txtDistance") self.txtDistance.setText("0.0") self.txtDistance.setMinimumWidth(70) self.txtDistance.setMaximumWidth(70) self.hLayoutframeBoxPanelIn.addWidget(self.txtDistance) if self.distanceUnit1 != None: labelM = QLabel(self.frameBoxPanelIn) labelM.setObjectName(("labelM")) value = "" if self.distanceUnit == DistanceUnits.NM: value = " nm " elif self.distanceUnit == DistanceUnits.M: value = " m " elif self.distanceUnit == DistanceUnits.KM: value = " km " elif self.distanceUnit == DistanceUnits.FT: value = " ft " elif self.distanceUnit == DistanceUnits.MM: value = " mm " else: value = "" labelM.setText(value) self.hLayoutframeBoxPanelIn.addWidget(labelM) self.txtDistance1 = QLineEdit(self.frameBoxPanelIn) self.txtDistance1.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.txtDistance1.setFont(font) self.txtDistance1.setObjectName(self.objectName() + "_txtDistance1") self.txtDistance1.setText("0.0") self.txtDistance1.setMinimumWidth(70) self.txtDistance1.setMaximumWidth(70) self.txtDistance1.setText("0.0") self.hLayoutframeBoxPanelIn.addWidget(self.txtDistance1) label1 = QLabel(self.frameBoxPanelIn) label1.setObjectName(("labelFt")) value = "" if self.distanceUnit1 == DistanceUnits.NM: value = " nm " elif self.distanceUnit1 == DistanceUnits.M: value = " m " elif self.distanceUnit1 == DistanceUnits.KM: value = " km " elif self.distanceUnit1 == DistanceUnits.FT: value = " ft " elif self.distanceUnit1 == DistanceUnits.MM: value = " mm " else: value = "" label1.setText(value) self.hLayoutframeBoxPanelIn.addWidget(label1) # self.txtDistance.textChanged.connect(self.txtDistanceChanged) self.txtDistance1.textChanged.connect(self.txtDistance1Changed) self.txtDistance1.editingFinished.connect( self.txtDistanceEditingFinished) self.btnCaptureDistance = QToolButton(self.frameBoxPanelIn) self.btnCaptureDistance.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/coordinate_capture.png")), QIcon.Normal, QIcon.Off) self.btnCaptureDistance.setIcon(icon) self.btnCaptureDistance.setObjectName(("btnDegreeBoxPanel")) self.hLayoutframeBoxPanelIn.addWidget(self.btnCaptureDistance) self.hLayoutframeBoxPanel.addWidget(self.frameBoxPanelIn) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) spacerItem = QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayoutBoxPanel.addItem(spacerItem) self.txtDistance.textChanged.connect(self.txtDistanceChanged) self.txtDistance.editingFinished.connect( self.txtDistanceEditingFinished) self.btnCaptureDistance.clicked.connect(self.btnCaptureDistanceClicked) # self.value = 0.0 self.flag = 0 self.txtDistance.setText("0.0")
def __init__(self, configuration, mpdclient, app): QMainWindow.__init__(self) self.app = app self.focus = time() self.shuttingDown = False self.config = configuration self.mpdclient = mpdclient appIcon = QIcon(DATA_DIR + 'icons/Pythagora.png') uic.loadUi(DATA_DIR + 'ui/Pythagora.ui', self) self.KDE = KDE self.setWindowTitle('Pythagora') self.setWindowIcon(appIcon) # Load all forms. self.createViews() # Create 'Connect to' menu. self.menuConnect = QMenu('Connect To') self.menuConnect.menuAction().setIcon( auxilia.PIcon('network-disconnect')) self.connectButton = QToolButton() self.connectButton.setPopupMode(QToolButton.InstantPopup) self.connectButton.setIcon(auxilia.PIcon('network-disconnect')) self.connectButton.setMenu(self.menuConnect) # Create 'MDP' menu. self.menuMPD = QMenu('MPD') self.menuMPD.menuAction().setIcon(auxilia.PIcon('network-workgroup')) self.mpdButton = QToolButton() self.mpdButton.setPopupMode(QToolButton.InstantPopup) self.mpdButton.setIcon(auxilia.PIcon('network-workgroup')) self.mpdButton.setMenu(self.menuMPD) self.reloadLibrary = self.actionLibReload(self.menuMPD, self.__libReload) self.updateLibrary = self.actionLibUpdate( self.menuMPD, lambda: self.mpdclient.send('update')) self.rescanLibrary = self.actionLibRescan( self.menuMPD, lambda: self.mpdclient.send('rescan')) # Fill Toolbar. self.toolBar.addWidget(self.connectButton) self.toolBar.addWidget(self.mpdButton) # Fill Statusbar. self.serverLabel = QLabel('Not connected') self.numSongsLabel = QLabel('Songs') self.playTimeLabel = QLabel('playTime') self.statusbar.addWidget(self.serverLabel) self.statusbar.addPermanentWidget(self.numSongsLabel) self.statusbar.addPermanentWidget(self.playTimeLabel) self.connect(self.menuConnect, SIGNAL('aboutToShow()'), self.__buildConnectTo) self.connect(self.actionExit, SIGNAL('triggered()'), self.app.quit) self.connect(self.actionSettings, SIGNAL('triggered()'), self.showConfig) # Set up trayicon and menu. if KDE: self.trayIcon = KTrayIcon(appIcon, self) else: self.trayIcon = QTrayIcon(appIcon, self) connectMenuAction = self.menuConnect.menuAction() self.trayIcon.addMenuItem(connectMenuAction) self.trayIcon.addMenuItem(self.actionSettings) self.connect(self.trayIcon, SIGNAL('activate()'), self.toggleHideRestore) self.connect(self.trayIcon, SIGNAL('secondaryActivateRequested(QPoint)'), self.__playPause) self.connect(self.tabs, SIGNAL('currentChanged(int)'), self.__tabsIndexChanged) self.connect(self.tabs.tabBar(), SIGNAL('tabMoved(int,int)'), self.__tabMoved) self.connect(self.splitter, SIGNAL('splitterMoved(int, int)'), self.__storeSplitter) # Apply configuration. self.resize(configuration.mgrSize) self.splitter.setSizes(configuration.mgrSplit) self.tabs.setCurrentIndex(configuration.tabsIndex) self.closeEvent = self.closeEvent self.connect(self.app, SIGNAL('aboutToQuit()'), self.shutdown) self.show() #============================================================================== # Code for switching tabs on drag & drop. (__init__() continues) #============================================================================== # Instantiate timer self.tabTimer = QTimer() self.connect(self.tabTimer, SIGNAL('timeout()'), self.__selectTab) # Overload the default dragEvents. (none?) self.tabs.dragLeaveEvent = self.dragLeaveEvent self.tabs.dragEnterEvent = self.dragEnterEvent self.tabs.dragMoveEvent = self.dragMoveEvent
def createQuadViewStatusBar(self, xbackgroundColor, xforegroundColor, ybackgroundColor, yforegroundColor, zbackgroundColor, zforegroundColor): self.xLabel, self.xSpinBox = _get_pos_widget('X', xbackgroundColor, xforegroundColor) self.yLabel, self.ySpinBox = _get_pos_widget('Y', ybackgroundColor, yforegroundColor) self.zLabel, self.zSpinBox = _get_pos_widget('Z', zbackgroundColor, zforegroundColor) self.xSpinBox.delayedValueChanged.connect( partial(self._handlePositionBoxValueChanged, 'x')) self.ySpinBox.delayedValueChanged.connect( partial(self._handlePositionBoxValueChanged, 'y')) self.zSpinBox.delayedValueChanged.connect( partial(self._handlePositionBoxValueChanged, 'z')) self.addWidget(self.xLabel) self.addWidget(self.xSpinBox) self.addWidget(self.yLabel) self.addWidget(self.ySpinBox) self.addWidget(self.zLabel) self.addWidget(self.zSpinBox) self.addSpacing(10) self.crosshairsCheckbox = QCheckBox() self.crosshairsCheckbox.setChecked(False) self.crosshairsCheckbox.setCheckable(True) self.crosshairsCheckbox.setText("Crosshairs") self.addWidget(self.crosshairsCheckbox) self.addSpacing(10) self.busyIndicator = QProgressBar() self.busyIndicator.setMaximumWidth(200) self.busyIndicator.setMaximum(0) self.busyIndicator.setMinimum(0) self.busyIndicator.setVisible(False) self.busyIndicator.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self.addWidget(self.busyIndicator) self.setStretchFactor(self.busyIndicator, 1) self.addStretch() self.addSpacing(20) self.timeSpinBox = DelayedSpinBox(750) icons_dir = os.path.dirname(volumina.__file__) + "/icons" self.timeStartButton = QToolButton() self.timeStartButton.setIcon(QIcon(icons_dir + "/skip-start.png")) self.addWidget(self.timeStartButton) self.timeStartButton.clicked.connect(self._onTimeStartButtonClicked) #self.timeStartButton.setFixedWidth(4*self.timeControlFontSize) self.timePreviousButton = QToolButton() self.timePreviousButton.setIcon(QIcon(icons_dir + "/play-reverse.png")) self.addWidget(self.timePreviousButton) self.timePreviousButton.clicked.connect( self._onTimePreviousButtonClicked) #self.timePreviousButton.setFixedWidth(4*self.timeControlFontSize) self.timeSlider = QSlider(Qt.Horizontal) self.timeSlider.setMinimumWidth(10) self.timeSlider.setMaximumWidth(200) self.setToolTipTimeSliderCrop() self.addWidget(self.timeSlider) self.timeSlider.valueChanged.connect(self._onTimeSliderChanged) self.timeNextButton = QToolButton() self.timeNextButton.setIcon(QIcon(icons_dir + "/play.png")) self.addWidget(self.timeNextButton) self.timeNextButton.clicked.connect(self._onTimeNextButtonClicked) #self.timeNextButton.setFixedWidth(4*self.timeControlFontSize) self.timeEndButton = QToolButton() self.timeEndButton.setIcon(QIcon(icons_dir + "/skip-end.png")) #self.timeEndButton.setFixedWidth(4*self.timeControlFontSize) self.setToolTipTimeButtonsCrop() self.addWidget(self.timeEndButton) self.timeEndButton.clicked.connect(self._onTimeEndButtonClicked) self.timeLabel = QLabel(" Time:") self.addWidget(self.timeLabel) timeControlFont = self.timeSpinBox.font() if self.timeControlFontSize > timeControlFont.pointSize(): timeControlFont.setPixelSize(2 * self.timeControlFontSize) self.timeStartButton.setFont(timeControlFont) self.timeEndButton.setFont(timeControlFont) self.timeLabel.setFont(timeControlFont) self.timeSpinBox.setFont(timeControlFont) self.addWidget(self.timeSpinBox) self.timeSpinBox.delayedValueChanged.connect( self._onTimeSpinBoxChanged)
def __createLayout(self): " Creates the toolbar and layout " # Buttons self.__printButton = QAction(PixmapCache().getIcon('printer.png'), 'Print', self) self.__printButton.triggered.connect(self.__onPrint) self.__printButton.setEnabled(False) self.__printButton.setVisible(False) self.__printPreviewButton = QAction( PixmapCache().getIcon('printpreview.png'), 'Print preview', self) self.__printPreviewButton.triggered.connect(self.__onPrintPreview) self.__printPreviewButton.setEnabled(False) self.__printPreviewButton.setVisible(False) # self.__sendUpButton = QAction( PixmapCache().getIcon('sendioup.png'), # 'Send to Main Editing Area', self ) # self.__sendUpButton.triggered.connect( self.__sendUp ) self.__filterMenu = QMenu(self) self.__filterMenu.aboutToShow.connect(self.__filterAboutToShow) self.__filterGroup = QActionGroup(self) self.__filterShowAllAct = self.__filterMenu.addAction("Show all") self.__filterShowAllAct.setCheckable(True) self.__filterShowAllAct.setActionGroup(self.__filterGroup) self.__filterShowAllAct.triggered.connect(self.__onFilterShowAll) self.__filterShowStdoutAct = self.__filterMenu.addAction( "Show stdin and stdout") self.__filterShowStdoutAct.setCheckable(True) self.__filterShowStdoutAct.setActionGroup(self.__filterGroup) self.__filterShowStdoutAct.triggered.connect(self.__onFilterShowStdout) self.__filterShowStderrAct = self.__filterMenu.addAction( "Show stdin and stderr") self.__filterShowStderrAct.setCheckable(True) self.__filterShowStderrAct.setActionGroup(self.__filterGroup) self.__filterShowStderrAct.triggered.connect(self.__onFilterShowStderr) self.__filterButton = QToolButton(self) self.__filterButton.setIcon(PixmapCache().getIcon('iofilter.png')) self.__filterButton.setToolTip('Filtering settings') self.__filterButton.setPopupMode(QToolButton.InstantPopup) self.__filterButton.setMenu(self.__filterMenu) self.__filterButton.setFocusPolicy(Qt.NoFocus) self.__settingsMenu = QMenu(self) self.__settingsMenu.aboutToShow.connect(self.__settingsAboutToShow) self.__wrapLongLinesAct = self.__settingsMenu.addAction( "Wrap long lines") self.__wrapLongLinesAct.setCheckable(True) self.__wrapLongLinesAct.triggered.connect(self.__onWrapLongLines) self.__showEOLAct = self.__settingsMenu.addAction("Show EOL") self.__showEOLAct.setCheckable(True) self.__showEOLAct.triggered.connect(self.__onShowEOL) self.__showWhitespacesAct = self.__settingsMenu.addAction( "Show whitespaces") self.__showWhitespacesAct.setCheckable(True) self.__showWhitespacesAct.triggered.connect(self.__onShowWhitespaces) self.__autoscrollAct = self.__settingsMenu.addAction("Autoscroll") self.__autoscrollAct.setCheckable(True) self.__autoscrollAct.triggered.connect(self.__onAutoscroll) self.__showMarginAct = self.__settingsMenu.addAction( "Show timestamp margin") self.__showMarginAct.setCheckable(True) self.__showMarginAct.triggered.connect(self.__onShowMargin) self.__settingsButton = QToolButton(self) self.__settingsButton.setIcon(PixmapCache().getIcon('iosettings.png')) self.__settingsButton.setToolTip('View settings') self.__settingsButton.setPopupMode(QToolButton.InstantPopup) self.__settingsButton.setMenu(self.__settingsMenu) self.__settingsButton.setFocusPolicy(Qt.NoFocus) spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.__clearButton = QAction(PixmapCache().getIcon('trash.png'), 'Clear', self) self.__clearButton.triggered.connect(self.clear) # The toolbar toolbar = QToolBar(self) toolbar.setOrientation(Qt.Vertical) toolbar.setMovable(False) toolbar.setAllowedAreas(Qt.RightToolBarArea) toolbar.setIconSize(QSize(16, 16)) toolbar.setFixedWidth(28) toolbar.setContentsMargins(0, 0, 0, 0) # toolbar.addAction( self.__sendUpButton ) toolbar.addAction(self.__printPreviewButton) toolbar.addAction(self.__printButton) toolbar.addWidget(self.__filterButton) toolbar.addWidget(self.__settingsButton) toolbar.addWidget(spacer) toolbar.addAction(self.__clearButton) hLayout = QHBoxLayout() hLayout.setContentsMargins(0, 0, 0, 0) hLayout.setSpacing(0) hLayout.addWidget(toolbar) hLayout.addWidget(self.__viewer) self.setLayout(hLayout) return
def __init__(self, parent, speedUnits=SpeedUnits.KTS): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("SpeedBoxPanel" + str(len(parent.findChildren(SpeedBoxPanel)))) self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.textBox = QLineEdit(self.frameBoxPanel) self.textBox.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.textBox.setFont(font) self.textBox.setObjectName(("textBox")) self.textBox.setText("0.0") self.textBox.setMinimumWidth(70) self.textBox.setMaximumWidth(70) self.hLayoutframeBoxPanel.addWidget(self.textBox) self.imageButton = QToolButton(self.frameBoxPanel) self.imageButton.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/convex_hull.png")), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setObjectName(("imageButton")) self.imageButton.setVisible(False) self.hLayoutframeBoxPanel.addWidget(self.imageButton) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) spacerItem = QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayoutBoxPanel.addItem(spacerItem) self.textBox.textChanged.connect(self.textBoxChanged) self.textBox.editingFinished.connect(self.textBoxEditingFinished) self.imageButton.clicked.connect(self.imageButtonClicked) self.textBox.setText("0.0") self.captionUnits = speedUnits
def __init__(self, *args): QMainWindow.__init__(self, *args) self.d_plot = Plot(self) margin = 5 self.d_plot.setContentsMargins(margin, margin, margin, 0) self.setContextMenuPolicy(Qt.NoContextMenu) self.d_zoomer = [None, None] self.d_zoomer[0] = Zoomer(Qwt.QwtPlot.xBottom, Qwt.QwtPlot.yLeft, self.d_plot.canvas()) self.d_zoomer[0].setRubberBand(Qwt.QwtPicker.RectRubberBand) self.d_zoomer[0].setRubberBandPen(QColor(Qt.green)) self.d_zoomer[0].setTrackerMode(Qwt.QwtPicker.ActiveOnly) self.d_zoomer[0].setTrackerPen(QColor(Qt.white)) self.d_zoomer[1] = Zoomer(Qwt.QwtPlot.xTop, Qwt.QwtPlot.yRight, self.d_plot.canvas()) self.d_panner = Qwt.QwtPlotPanner(self.d_plot.canvas()) self.d_panner.setMouseButton(Qt.MidButton) self.d_picker = Qwt.QwtPlotPicker(Qwt.QwtPlot.xBottom, Qwt.QwtPlot.yLeft, Qwt.QwtPlotPicker.CrossRubberBand, Qwt.QwtPicker.AlwaysOn, self.d_plot.canvas()) self.d_picker.setStateMachine(Qwt.QwtPickerDragPointMachine()) self.d_picker.setRubberBandPen(QColor(Qt.green)) self.d_picker.setRubberBand(Qwt.QwtPicker.CrossRubberBand) self.d_picker.setTrackerPen(QColor(Qt.white)) self.setCentralWidget(self.d_plot) self.toolBar = QToolBar(self) self.btnZoom = QToolButton(self.toolBar) self.btnZoom.setText("Zoom") self.btnZoom.setIcon(QIcon(QPixmap(zoom_xpm))) self.btnZoom.setCheckable(True) self.btnZoom.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) self.toolBar.addWidget(self.btnZoom) self.btnZoom.toggled.connect(self.enableZoomMode) self.btnPrint = QToolButton(self.toolBar) self.btnPrint.setText("Print") self.btnPrint.setIcon(QIcon(QPixmap(print_xpm))) self.btnPrint.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) self.toolBar.addWidget(self.btnPrint) self.btnPrint.clicked.connect(self.mprint) self.btnExport = QToolButton(self.toolBar) self.btnExport.setText("Export") self.btnExport.setIcon(QIcon(QPixmap(print_xpm))) self.btnExport.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) self.toolBar.addWidget(self.btnExport) self.btnExport.clicked.connect(self.exportDocument) self.toolBar.addSeparator() hBox = QWidget(self.toolBar) self.layout = QHBoxLayout(hBox) self.layout.setSpacing(0) self.layout.addWidget(QWidget(hBox), 10) # spacer self.layout.addWidget(QLabel("Damping Factor", hBox), 0) self.layout.addSpacing(10) self.cntDamp = Qwt.QwtCounter(hBox) self.cntDamp.setRange(0.0, 5.0) self.cntDamp.setSingleStep(0.01) self.cntDamp.setValue(0.0) self.layout.addWidget(self.cntDamp, 0) self.toolBar.addWidget(hBox) self.addToolBar(self.toolBar) self.statusBar() self.enableZoomMode(False) self.showInfo("humm") self.cntDamp.valueChanged['double'].connect(self.d_plot.setDamp) self.d_picker.moved.connect(self.moved)
def __init__(self, parent): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("ListBox" + str(len(parent.findChildren(ListBox)))) self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(3, 3, 3, 3) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.listBox = QListWidget(self.frameBoxPanel) self.listBox.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.listBox.setFont(font) self.listBox.setObjectName(("listBox")) # self.listBox.setText("0.0") self.hLayoutframeBoxPanel.addWidget(self.listBox) self.imageButton = QToolButton(self.frameBoxPanel) self.imageButton.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/convex_hull.png")), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setObjectName(("imageButton")) self.imageButton.setVisible(False) self.hLayoutframeBoxPanel.addWidget(self.imageButton) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) self.listBox.currentRowChanged.connect(self.listBoxChanged) self.imageButton.clicked.connect(self.imageButtonClicked) self.captionUnits = "" self.hasObject = False self.objectList = [] self.captionLabel.setVisible(False)
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 buildMixer(self): log.debug("Building mixer") self.MatrixButtonControls = {} self.MatrixRotaryControls = {} self.MatrixVolumeControls = {} self.VolumeControls = {} self.SelectorControls = {} self.SPDIFmodeControls = {} self.TriggerControls = {} nb_pys_out = self.hw.getDiscrete("/HwInfo/PhysicalAudioOutCount") nb_pys_in = self.hw.getDiscrete("/HwInfo/PhysicalAudioInCount") outputtabslayout = QHBoxLayout(self) outputtabs = QTabWidget(self) outputtabslayout.addWidget(outputtabs, 1) for outpair in range(nb_pys_out / 2): tab = QWidget(outputtabs) tablayout = QHBoxLayout(tab) grpMonitor = QGroupBox(tab) tablayout.addWidget(grpMonitor) grpPlayback = QGroupBox(tab) tablayout.addWidget(grpPlayback) grpOutput = QGroupBox(tab) tablayout.addWidget(grpOutput) grpMonitor.setTitle("Monitor") grpPlayback.setTitle("Playback") grpOutput.setTitle("Output") # monitor controls grpMonitorLayout = QHBoxLayout() grpMonitor.setLayout(grpMonitorLayout) output_id = outpair * 2 for inpair in range(nb_pys_in / 2): # create GUI elements strip = AfMonitorWidget(grpMonitor) grpMonitorLayout.addWidget(strip, 1) input_id = inpair * 2 strip.lblName.setText("In %d/%d" % (input_id + 1, input_id + 2)) # add the elements to the control structure self.MatrixButtonControls[strip.btnMute0] = [ '/Mixer/MonitorMute', input_id, output_id ] self.MatrixButtonControls[strip.btnMute1] = [ '/Mixer/MonitorMute', input_id + 1, output_id + 1 ] self.MatrixButtonControls[strip.btnSolo0] = [ '/Mixer/MonitorSolo', input_id, output_id ] self.MatrixButtonControls[strip.btnSolo1] = [ '/Mixer/MonitorSolo', input_id + 1, output_id + 1 ] self.MatrixRotaryControls[strip.rotPan0] = [ '/Mixer/MonitorPan', input_id, output_id ] self.MatrixRotaryControls[strip.rotPan1] = [ '/Mixer/MonitorPan', input_id + 1, output_id + 1 ] self.MatrixVolumeControls[strip.sldGain0] = [ '/Mixer/MonitorGain', input_id, output_id ] self.MatrixVolumeControls[strip.sldGain1] = [ '/Mixer/MonitorGain', input_id + 1, output_id + 1 ] # playback grpPlaybackLayout = QHBoxLayout() grpPlayback.setLayout(grpPlaybackLayout) strip = AfMonitorWidget(grpPlayback) grpPlaybackLayout.addWidget(strip, 1) strip.lblName.setText("Playback %d/%d" % (output_id + 1, output_id + 2)) self.VolumeControls[strip.sldGain0] = [ "/Mixer/PC%dGain" % (output_id) ] self.VolumeControls[strip.sldGain1] = [ "/Mixer/PC%dGain" % (output_id + 1) ] self.SelectorControls[strip.btnMute0] = [ "/Mixer/PC%dMute" % (output_id) ] self.SelectorControls[strip.btnMute1] = [ "/Mixer/PC%dMute" % (output_id + 1) ] self.SelectorControls[strip.btnSolo0] = [ "/Mixer/PC%dSolo" % (output_id) ] self.SelectorControls[strip.btnSolo1] = [ "/Mixer/PC%dSolo" % (output_id + 1) ] # fix up mixer strip gui strip.rotPan0.hide() strip.rotPan1.hide() # output grpOutputLayout = QHBoxLayout() grpOutput.setLayout(grpOutputLayout) strip = AfMonitorWidget(grpOutput) grpOutputLayout.addWidget(strip, 1) strip.lblName.setText("Output %d/%d" % (output_id + 1, output_id + 2)) self.VolumeControls[strip.sldGain0] = [ "/Mixer/OUT%dGain" % (output_id) ] self.VolumeControls[strip.sldGain1] = [ "/Mixer/OUT%dGain" % (output_id + 1) ] self.SelectorControls[strip.btnMute0] = [ "/Mixer/OUT%dMute" % (output_id) ] self.SelectorControls[strip.btnMute1] = [ "/Mixer/OUT%dMute" % (output_id + 1) ] self.SelectorControls[strip.btnSolo0] = [ "/Mixer/OUT%dNominal" % (output_id) ] self.SelectorControls[strip.btnSolo1] = [ "/Mixer/OUT%dNominal" % (output_id + 1) ] # fix up mixer strip gui strip.btnSolo0.setText("Pad") strip.btnSolo1.setText("Pad") strip.rotPan0.hide() strip.rotPan1.hide() # add the tab outputtabs.addTab(tab, "Out %d/%d" % (output_id + 1, output_id + 2)) # add an input config tab tab = QWidget(outputtabs) tablayout = QHBoxLayout(tab) for inpair in range(nb_pys_in): # create GUI elements log.debug("strip") grpInput = QGroupBox(tab) tablayout.addWidget(grpInput) grpInput.setTitle("In %d" % (inpair + 1)) grpInputLayout = QVBoxLayout() grpInput.setLayout(grpInputLayout) label = QLabel(grpInput) grpInputLayout.addWidget(label) label.setText("In %d" % (inpair + 1)) label.setAlignment(Qt.AlignCenter) btn = QToolButton(grpInput) grpInputLayout.addWidget(btn) btn.setText("Pad") btn.setCheckable(True) self.SelectorControls[btn] = ["/Mixer/IN%dNominal" % (inpair)] spacer = QSpacerItem(1, 1, QSizePolicy.Minimum, QSizePolicy.Expanding) grpInputLayout.addItem(spacer) outputtabs.addTab(tab, "Input") # add an settings tab tab = QWidget(outputtabs) tablayout = QHBoxLayout(tab) outputtabs.addTab(tab, "Settings") settings = AfSettingsWidget(tab) has_sw_phantom = self.hw.getDiscrete("/HwInfo/PhantomPower") if has_sw_phantom: self.SelectorControls[settings.btnPhantom] = ["/PhantomPower"] else: settings.btnPhantom.hide() self.TriggerControls[settings.btnSaveSettings] = ["/SaveSettings"] self.TriggerControls[settings.btnIdentify] = ["/Identify"] self.SPDIFmodeControls[settings.radioConsumer] = ["/SpdifMode", 0] self.SPDIFmodeControls[settings.radioProfessional] = ["/SpdifMode", 1] # Store a reference to the "save" button for later manipulation self.btnSaveSettings = settings.btnSaveSettings
def __init__(self, roamapp): super(MainWindow, self).__init__() self.setupUi(self) import roam self.projectwidget.project_base = roamapp.projectsroot QgsApplication.instance().setStyleSheet(roam.roam_style.appstyle()) self.menutoolbar.setStyleSheet(roam.roam_style.menubarstyle()) icon = roam.roam_style.iconsize() self.menutoolbar.setIconSize(QSize(icon, icon)) self.projectupdater = ProjectUpdater(projects_base=roamapp.projectsroot) self.projectupdater.foundProjects.connect(self.projectwidget.show_new_updateable) self.projectupdater.projectUpdateStatus.connect(self.projectwidget.update_project_status) self.projectupdater.projectInstalled.connect(self.projectwidget.project_installed) self.projectwidget.search_for_updates.connect(self.search_for_projects) self.projectwidget.projectUpdate.connect(self.projectupdater.update_project) self.projectwidget.projectInstall.connect(self.projectupdater.install_project) self.project = None self.tracking = GPSLogging(GPS) self.canvas_page.set_gps(GPS, self.tracking) self.canvas = self.canvas_page.canvas roam.defaults.canvas = self.canvas self.bar = roam.messagebaritems.MessageBar(self.centralwidget) self.actionMap.setVisible(False) self.actionLegend.setVisible(False) self.menuGroup = QActionGroup(self) self.menuGroup.setExclusive(True) self.menuGroup.addAction(self.actionMap) self.menuGroup.addAction(self.actionDataEntry) self.menuGroup.addAction(self.actionLegend) self.menuGroup.addAction(self.actionProject) self.menuGroup.addAction(self.actionSync) self.menuGroup.addAction(self.actionSettings) self.menuGroup.addAction(self.actionGPS) self.menuGroup.triggered.connect(self.updatePage) self.projectbuttons = [] self.pluginactions = [] self.actionQuit.triggered.connect(self.exit) self.actionLegend.triggered.connect(self.updatelegend) self.projectwidget.requestOpenProject.connect(self.loadProject) QgsProject.instance().readProject.connect(self._readProject) self.gpswidget.setgps(GPS) self.gpswidget.settracking(self.tracking) self.settings = {} self.actionSettings.toggled.connect(self.settingswidget.populateControls) self.actionSettings.toggled.connect(self.settingswidget.readSettings) self.settingswidget.settingsupdated.connect(self.settingsupdated) self.dataentrywidget = DataEntryWidget(self.canvas, self.bar) self.dataentrywidget.lastwidgetremoved.connect(self.dataentryfinished) self.widgetpage.layout().addWidget(self.dataentrywidget) self.dataentrywidget.rejected.connect(self.formrejected) RoamEvents.featuresaved.connect(self.featureSaved) RoamEvents.helprequest.connect(self.showhelp) RoamEvents.deletefeature.connect(self.delete_feature) def createSpacer(width=0, height=0): widget = QWidget() widget.setMinimumWidth(width) widget.setMinimumHeight(height) return widget gpsspacewidget = createSpacer(30) sidespacewidget = createSpacer(30) sidespacewidget2 = createSpacer(height=20) sidespacewidget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sidespacewidget2.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.projectlabel = QLabel("Project: {project}") self.userlabel = QLabel("User: {user}".format(user=getpass.getuser())) self.positionlabel = QLabel('') self.gpslabel = QLabel("GPS: Not active") icon = QIcon(":/icons/info") infobutton = QToolButton() infobutton.setAutoRaise(True) infobutton.setMaximumHeight(self.statusbar.height()) infobutton.setIcon(icon) # self.statusbar.addWidget(infobutton) self.snappingbutton = QToolButton() self.snappingbutton.setText("Snapping: On") self.snappingbutton.setAutoRaise(True) self.snappingbutton.pressed.connect(self.toggle_snapping) self.statusbar.addWidget(self.snappingbutton) # self.statusbar.addWidget(self.projectlabel) # self.statusbar.addWidget(self.userlabel) spacer = createSpacer() spacer2 = createSpacer() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) spacer2.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) # self.statusbar.addWidget(spacer) # self.statusbar.addWidget(self.positionlabel) self.statusbar.addWidget(spacer2) self.statusbar.addWidget(self.gpslabel) self.scalewidget = QgsScaleComboBox() self.scalebutton = QToolButton() self.scalebutton.setAutoRaise(True) self.scalebutton.setMaximumHeight(self.statusbar.height()) self.scalebutton.pressed.connect(self.selectscale) self.scalebutton.setText("Scale") self.statusbar.addPermanentWidget(self.scalebutton) self.scalelist = BigList(parent=self.canvas, centeronparent=True, showsave=False) self.scalelist.hide() self.scalelist.setlabel("Map Scale") self.scalelist.setmodel(self.scalewidget.model()) self.scalelist.closewidget.connect(self.scalelist.close) self.scalelist.itemselected.connect(self.update_scale_from_item) self.scalelist.itemselected.connect(self.scalelist.close) self.menutoolbar.insertWidget(self.actionQuit, sidespacewidget2) self.spaceraction = self.menutoolbar.insertWidget(self.actionProject, sidespacewidget) self.panels = [] self.centralwidget.layout().addWidget(self.statusbar) self.actionGPSFeature.setProperty('dataentry', True) self.infodock = InfoDock(self.canvas) self.infodock.featureupdated.connect(self.highlightfeature) self.infodock.hide() self.hidedataentry() self.canvas.extentsChanged.connect(self.updatestatuslabel) self.canvas.scaleChanged.connect(self.updatestatuslabel) RoamEvents.openimage.connect(self.openimage) RoamEvents.openurl.connect(self.viewurl) RoamEvents.openfeatureform.connect(self.openForm) RoamEvents.openkeyboard.connect(self.openkeyboard) RoamEvents.editgeometry_complete.connect(self.on_geometryedit) RoamEvents.onShowMessage.connect(self.showUIMessage) RoamEvents.selectionchanged.connect(self.showInfoResults) RoamEvents.show_widget.connect(self.dataentrywidget.add_widget) RoamEvents.closeProject.connect(self.close_project) RoamEvents.snappingChanged.connect(self.snapping_changed) GPS.gpsposition.connect(self.update_gps_label) GPS.gpsdisconnected.connect(self.gps_disconnected) self.legendpage.showmap.connect(self.showmap) self.currentselection = {}
def __init__(self, parent, point3d, startBearing, flagStr): QDialog.__init__(self, parent) self.parent0 = parent self.point = point3d self.flagStr = flagStr self.calcedPoint = None self.startBearing = startBearing # self.flagStrName = flagStr # self.resize(326, 310) self.verticalLayout = QVBoxLayout(self) self.verticalLayout.setSpacing(6) self.verticalLayout.setMargin(3) self.verticalLayout.setObjectName(("verticalLayout")) self.groupBox = QGroupBox(self) self.groupBox.setTitle(("")) self.groupBox.setObjectName(("groupBox")) self.verticalLayout_2 = QVBoxLayout(self.groupBox) self.verticalLayout_2.setSpacing(0) self.verticalLayout_2.setMargin(3) self.verticalLayout_2.setObjectName(("verticalLayout_2")) self.groupBox_5 = QGroupBox(self.groupBox) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.groupBox_5.sizePolicy().hasHeightForWidth()) self.groupBox_5.setSizePolicy(sizePolicy) font = QFont() font.setFamily(("Arial")) self.groupBox_5.setFont(font) self.groupBox_5.setObjectName(("groupBox_5")) self.horizontalLayout_19 = QHBoxLayout(self.groupBox_5) self.horizontalLayout_19.setSpacing(0) self.horizontalLayout_19.setMargin(0) self.horizontalLayout_19.setObjectName(("horizontalLayout_19")) self.groupBox_5.setVisible(False) self.frame_18 = QFrame(self.groupBox_5) self.frame_18.setFrameShape(QFrame.StyledPanel) self.frame_18.setFrameShadow(QFrame.Raised) self.frame_18.setObjectName(("frame_18")) self.verticalLayout_13 = QVBoxLayout(self.frame_18) self.verticalLayout_13.setSpacing(0) self.verticalLayout_13.setContentsMargins(-1, -1, 0, -1) self.verticalLayout_13.setObjectName(("verticalLayout_13")) self.frame_19 = QFrame(self.frame_18) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_19.sizePolicy().hasHeightForWidth()) self.frame_19.setSizePolicy(sizePolicy) self.frame_19.setFrameShape(QFrame.StyledPanel) self.frame_19.setFrameShadow(QFrame.Raised) self.frame_19.setObjectName(("frame_19")) self.horizontalLayout_20 = QHBoxLayout(self.frame_19) self.horizontalLayout_20.setSpacing(0) self.horizontalLayout_20.setMargin(0) self.horizontalLayout_20.setObjectName(("horizontalLayout_20")) self.label_9 = QLabel(self.frame_19) self.label_9.setMaximumSize(QSize(60, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_9.setFont(font) self.label_9.setObjectName(("label_9")) self.horizontalLayout_20.addWidget(self.label_9) self.txtTHR_X = QLineEdit(self.frame_19) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtTHR_X.sizePolicy().hasHeightForWidth()) self.txtTHR_X.setSizePolicy(sizePolicy) self.txtTHR_X.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtTHR_X.setFont(font) self.txtTHR_X.setObjectName(("txtTHR_X")) self.horizontalLayout_20.addWidget(self.txtTHR_X) self.verticalLayout_13.addWidget(self.frame_19) self.frame_20 = QFrame(self.frame_18) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_20.sizePolicy().hasHeightForWidth()) self.frame_20.setSizePolicy(sizePolicy) self.frame_20.setFrameShape(QFrame.StyledPanel) self.frame_20.setFrameShadow(QFrame.Raised) self.frame_20.setObjectName(("frame_20")) self.horizontalLayout_21 = QHBoxLayout(self.frame_20) self.horizontalLayout_21.setSpacing(0) self.horizontalLayout_21.setMargin(0) self.horizontalLayout_21.setObjectName(("horizontalLayout_21")) self.label_10 = QLabel(self.frame_20) self.label_10.setMaximumSize(QSize(60, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_10.setFont(font) self.label_10.setObjectName(("label_10")) self.horizontalLayout_21.addWidget(self.label_10) self.txtTHR_Y = QLineEdit(self.frame_20) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtTHR_Y.sizePolicy().hasHeightForWidth()) self.txtTHR_Y.setSizePolicy(sizePolicy) self.txtTHR_Y.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtTHR_Y.setFont(font) self.txtTHR_Y.setObjectName(("txtTHR_Y")) self.horizontalLayout_21.addWidget(self.txtTHR_Y) self.verticalLayout_13.addWidget(self.frame_20) self.horizontalLayout_19.addWidget(self.frame_18) self.frame_21 = QFrame(self.groupBox_5) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_21.sizePolicy().hasHeightForWidth()) self.frame_21.setSizePolicy(sizePolicy) self.frame_21.setMaximumSize(QSize(30, 70)) self.frame_21.setFrameShape(QFrame.StyledPanel) self.frame_21.setFrameShadow(QFrame.Raised) self.frame_21.setObjectName(("frame_21")) self.verticalLayout_14 = QVBoxLayout(self.frame_21) self.verticalLayout_14.setSpacing(0) self.verticalLayout_14.setMargin(0) self.verticalLayout_14.setObjectName(("verticalLayout_14")) self.btnCaptureRunwayTHR = QToolButton(self.frame_21) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.btnCaptureRunwayTHR.sizePolicy().hasHeightForWidth()) self.btnCaptureRunwayTHR.setSizePolicy(sizePolicy) self.btnCaptureRunwayTHR.setMaximumSize(QSize(16777215, 47)) icon = QIcon() icon.addPixmap(QPixmap(("Resource/coordinate_capture.png")), QIcon.Normal, QIcon.Off) self.btnCaptureRunwayTHR.setIcon(icon) self.btnCaptureRunwayTHR.setObjectName(("btnCaptureRunwayTHR")) self.verticalLayout_14.addWidget(self.btnCaptureRunwayTHR) # self.btnToolTHR = QToolButton(self.frame_21) # sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.btnToolTHR.sizePolicy().hasHeightForWidth()) # self.btnToolTHR.setSizePolicy(sizePolicy) # self.btnToolTHR.setMaximumSize(QSize(16777215, 20)) # icon1 = QIcon() # icon1.addPixmap(QPixmap(("Resource/sort2.png")), QIcon.Normal, QIcon.Off) # self.btnToolTHR.setIcon(icon1) # self.btnToolTHR.setObjectName(("btnToolTHR")) # self.verticalLayout_14.addWidget(self.btnToolTHR) self.horizontalLayout_19.addWidget(self.frame_21) self.verticalLayout_2.addWidget(self.groupBox_5) self.groupBox_4 = QGroupBox(self.groupBox) self.groupBox_4.setVisible(False) # self.groupBox.setVisible(False) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.groupBox_4.sizePolicy().hasHeightForWidth()) self.groupBox_4.setSizePolicy(sizePolicy) font = QFont() font.setFamily(("Arial")) self.groupBox_4.setFont(font) self.groupBox_4.setObjectName(("groupBox_4")) self.horizontalLayout_16 = QHBoxLayout(self.groupBox_4) self.horizontalLayout_16.setSpacing(0) self.horizontalLayout_16.setMargin(0) self.horizontalLayout_16.setObjectName(("horizontalLayout_16")) self.frame_14 = QFrame(self.groupBox_4) self.frame_14.setFrameShape(QFrame.StyledPanel) self.frame_14.setFrameShadow(QFrame.Raised) self.frame_14.setObjectName(("frame_14")) self.verticalLayout_11 = QVBoxLayout(self.frame_14) self.verticalLayout_11.setSpacing(0) self.verticalLayout_11.setContentsMargins(-1, -1, 0, -1) self.verticalLayout_11.setObjectName(("verticalLayout_11")) self.frame_15 = QFrame(self.frame_14) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_15.sizePolicy().hasHeightForWidth()) self.frame_15.setSizePolicy(sizePolicy) self.frame_15.setFrameShape(QFrame.StyledPanel) self.frame_15.setFrameShadow(QFrame.Raised) self.frame_15.setObjectName(("frame_15")) self.horizontalLayout_17 = QHBoxLayout(self.frame_15) self.horizontalLayout_17.setSpacing(0) self.horizontalLayout_17.setMargin(0) self.horizontalLayout_17.setObjectName(("horizontalLayout_17")) self.label_7 = QLabel(self.frame_15) self.label_7.setMaximumSize(QSize(60, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_7.setFont(font) self.label_7.setObjectName(("label_7")) self.horizontalLayout_17.addWidget(self.label_7) self.txtEND_X = QLineEdit(self.frame_15) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtEND_X.sizePolicy().hasHeightForWidth()) self.txtEND_X.setSizePolicy(sizePolicy) self.txtEND_X.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtEND_X.setFont(font) self.txtEND_X.setObjectName(("txtEND_X")) self.horizontalLayout_17.addWidget(self.txtEND_X) self.verticalLayout_11.addWidget(self.frame_15) self.frame_16 = QFrame(self.frame_14) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_16.sizePolicy().hasHeightForWidth()) self.frame_16.setSizePolicy(sizePolicy) self.frame_16.setFrameShape(QFrame.StyledPanel) self.frame_16.setFrameShadow(QFrame.Raised) self.frame_16.setObjectName(("frame_16")) self.horizontalLayout_18 = QHBoxLayout(self.frame_16) self.horizontalLayout_18.setSpacing(0) self.horizontalLayout_18.setMargin(0) self.horizontalLayout_18.setObjectName(("horizontalLayout_18")) self.label_8 = QLabel(self.frame_16) self.label_8.setMaximumSize(QSize(60, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_8.setFont(font) self.label_8.setObjectName(("label_8")) self.horizontalLayout_18.addWidget(self.label_8) self.txtEND_Y = QLineEdit(self.frame_16) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtEND_Y.sizePolicy().hasHeightForWidth()) self.txtEND_Y.setSizePolicy(sizePolicy) self.txtEND_Y.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtEND_Y.setFont(font) self.txtEND_Y.setObjectName(("txtEND_Y")) self.horizontalLayout_18.addWidget(self.txtEND_Y) self.verticalLayout_11.addWidget(self.frame_16) self.horizontalLayout_16.addWidget(self.frame_14) self.frame_17 = QFrame(self.groupBox_4) self.frame_17.setMaximumSize(QSize(30, 16777215)) self.frame_17.setFrameShape(QFrame.StyledPanel) self.frame_17.setFrameShadow(QFrame.Raised) self.frame_17.setObjectName(("frame_17")) self.verticalLayout_12 = QVBoxLayout(self.frame_17) self.verticalLayout_12.setSpacing(0) self.verticalLayout_12.setMargin(0) self.verticalLayout_12.setObjectName(("verticalLayout_12")) self.btnCaptureRunwayEND = QToolButton(self.frame_17) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.btnCaptureRunwayEND.sizePolicy().hasHeightForWidth()) self.btnCaptureRunwayEND.setSizePolicy(sizePolicy) self.btnCaptureRunwayEND.setMaximumSize(QSize(16777215, 47)) self.btnCaptureRunwayEND.setIcon(icon) self.btnCaptureRunwayEND.setObjectName(("btnCaptureRunwayEND")) self.verticalLayout_12.addWidget(self.btnCaptureRunwayEND) # self.btnToolEND = QToolButton(self.frame_17) # sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.btnToolEND.sizePolicy().hasHeightForWidth()) # self.btnToolEND.setSizePolicy(sizePolicy) # self.btnToolEND.setMaximumSize(QSize(16777215, 20)) # self.btnToolEND.setIcon(icon1) # self.btnToolEND.setObjectName(("btnToolEND")) # self.verticalLayout_12.addWidget(self.btnToolEND) self.horizontalLayout_16.addWidget(self.frame_17) self.verticalLayout_2.addWidget(self.groupBox_4) self.lbl1 = QLabel(self.groupBox) font = QFont() font.setFamily(("Arial")) self.lbl1.setFont(font) self.lbl1.setText(("")) self.lbl1.setAlignment(Qt.AlignCenter) self.lbl1.setWordWrap(False) self.lbl1.setMargin(0) self.lbl1.setObjectName(("lbl1")) self.verticalLayout_2.addWidget(self.lbl1) self.lbl2 = QLabel(self.groupBox) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lbl2.setFont(font) self.lbl2.setText(("")) self.lbl2.setAlignment(Qt.AlignCenter) self.lbl2.setObjectName(("lbl2")) self.verticalLayout_2.addWidget(self.lbl2) self.frame_22 = QFrame(self.groupBox) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_22.sizePolicy().hasHeightForWidth()) self.frame_22.setSizePolicy(sizePolicy) self.frame_22.setFrameShape(QFrame.StyledPanel) self.frame_22.setFrameShadow(QFrame.Raised) self.frame_22.setObjectName(("frame_22")) self.horizontalLayout_22 = QHBoxLayout(self.frame_22) self.horizontalLayout_22.setSpacing(0) self.horizontalLayout_22.setMargin(0) self.horizontalLayout_22.setObjectName(("horizontalLayout_22")) self.label_11 = QLabel(self.frame_22) self.label_11.setMinimumSize(QSize(170, 0)) self.label_11.setMaximumSize(QSize(180, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_11.setFont(font) self.label_11.setObjectName(("label_11")) self.horizontalLayout_22.addWidget(self.label_11) self.txtForm = QLineEdit(self.frame_22) self.txtForm.setEnabled(False) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtForm.sizePolicy().hasHeightForWidth()) self.txtForm.setSizePolicy(sizePolicy) self.txtForm.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtForm.setFont(font) self.txtForm.setObjectName(("txtForm")) self.horizontalLayout_22.addWidget(self.txtForm) self.verticalLayout_2.addWidget(self.frame_22) self.frame_23 = QFrame(self.groupBox) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_23.sizePolicy().hasHeightForWidth()) self.frame_23.setSizePolicy(sizePolicy) self.frame_23.setFrameShape(QFrame.StyledPanel) self.frame_23.setFrameShadow(QFrame.Raised) self.frame_23.setObjectName(("frame_23")) self.horizontalLayout_23 = QHBoxLayout(self.frame_23) self.horizontalLayout_23.setSpacing(0) self.horizontalLayout_23.setMargin(0) self.horizontalLayout_23.setObjectName(("horizontalLayout_23")) self.label_12 = QLabel(self.frame_23) self.label_12.setMinimumSize(QSize(170, 0)) self.label_12.setMaximumSize(QSize(180, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.label_12.setFont(font) self.label_12.setObjectName(("label_12")) self.horizontalLayout_23.addWidget(self.label_12) self.txtBearing = QLineEdit(self.frame_23) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtBearing.sizePolicy().hasHeightForWidth()) self.txtBearing.setSizePolicy(sizePolicy) self.txtBearing.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtBearing.setFont(font) self.txtBearing.setObjectName(("txtBearing")) self.horizontalLayout_23.addWidget(self.txtBearing) self.btnCaptureBearing = QToolButton(self.frame_23) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.btnCaptureBearing.sizePolicy().hasHeightForWidth()) self.btnCaptureBearing.setSizePolicy(sizePolicy) self.btnCaptureBearing.setMaximumSize(QSize(16777215, 25)) self.btnCaptureBearing.setStyleSheet(("")) self.btnCaptureBearing.setIcon(icon) self.btnCaptureBearing.setObjectName(("btnCaptureBearing")) self.horizontalLayout_23.addWidget(self.btnCaptureBearing) self.verticalLayout_2.addWidget(self.frame_23) self.frame_24 = QFrame(self.groupBox) sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frame_24.sizePolicy().hasHeightForWidth()) self.frame_24.setSizePolicy(sizePolicy) self.frame_24.setFrameShape(QFrame.StyledPanel) self.frame_24.setFrameShadow(QFrame.Raised) self.frame_24.setObjectName(("frame_24")) self.horizontalLayout_24 = QHBoxLayout(self.frame_24) self.horizontalLayout_24.setSpacing(0) self.horizontalLayout_24.setMargin(0) self.horizontalLayout_24.setObjectName(("horizontalLayout_24")) self.lblDistance = QLabel(self.frame_24) self.lblDistance.setMinimumSize(QSize(170, 0)) self.lblDistance.setMaximumSize(QSize(180, 16777215)) font = QFont() font.setFamily(("Arial")) font.setBold(False) font.setWeight(50) self.lblDistance.setFont(font) self.lblDistance.setObjectName(("lblDistance")) self.horizontalLayout_24.addWidget(self.lblDistance) self.txtDistance = QLineEdit(self.frame_24) self.txtDistance.setEnabled(False) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.txtDistance.sizePolicy().hasHeightForWidth()) self.txtDistance.setSizePolicy(sizePolicy) self.txtDistance.setMaximumSize(QSize(16777215, 16777215)) font = QFont() font.setFamily(("Arial")) self.txtDistance.setFont(font) self.txtDistance.setObjectName(("txtDistance")) self.horizontalLayout_24.addWidget(self.txtDistance) self.btnCaptureDistance = QToolButton(self.frame_24) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.btnCaptureDistance.sizePolicy().hasHeightForWidth()) self.btnCaptureDistance.setSizePolicy(sizePolicy) self.btnCaptureDistance.setMaximumSize(QSize(16777215, 23)) self.btnCaptureDistance.setStyleSheet(("")) self.btnCaptureDistance.setIcon(icon) self.btnCaptureDistance.setObjectName(("btnCaptureDistance")) self.horizontalLayout_24.addWidget(self.btnCaptureDistance) self.verticalLayout_2.addWidget(self.frame_24) self.verticalLayout.addWidget(self.groupBox) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.buttonBox.setObjectName(("buttonBox")) self.verticalLayout.addWidget(self.buttonBox) self.btnCaptureDistance.clicked.connect(self.method_9) self.btnCaptureBearing.clicked.connect(self.method_8) self.txtEND_X.textChanged.connect(self.method_4) self.txtEND_Y.textChanged.connect(self.method_4) self.txtTHR_X.textChanged.connect(self.method_4) self.txtTHR_Y.textChanged.connect(self.method_4) # self.type = rnavType # self.category = category # self.resultPosionList = position_List self.MinBearing2 = 0 self.MaxBearing2 = 0 self.waypoint = None self.distanceMeasureTool = MeasureTool(define._canvas, self.txtDistance, DistanceUnits.NM) self.bearingTool = CaptureBearingTool(define._canvas, self.txtBearing) self.CaptureTHRCoordTool = CaptureCoordinateTool( define._canvas, self.txtTHR_X, self.txtTHR_Y) self.CaptureTHRCoordTool.rubberBandClick.setColor(Qt.green) self.CaptureENDCoordTool = CaptureCoordinateTool( define._canvas, self.txtEND_X, self.txtEND_Y) self.CaptureENDCoordTool.rubberBandClick.setColor(Qt.blue) # if rnavType == RnavCommonWaypoint.FAWP or rnavType == RnavCommonWaypoint.MAWP: # self.from1 = position_0 # # self.resize(326, 310) # if position_List[0] != None: # self.setThrPosition(position_List[0].x(),position_List[0].y()) # self.CaptureTHRCoordTool.rubberBandClick.addPoint(QgsPoint(position_List[0].x(),position_List[0].y())) # # self.CaptureTHRCoordTool.rubberBandClick.show() # if position_List[1] != None: # self.setEndPosition(position_List[1].x(),position_List[1].y()) # self.CaptureENDCoordTool.rubberBandClick.addPoint(QgsPoint(position_List[1].x(),position_List[1].y())) # # self.setWaypoint(position_List[2]) # else: # self.from1 = position_1 # num = RnavWaypoints.smethod_0(position_0, position_1) # self.MinBearing = RnavWaypoints.smethod_7(rnavType, category, num) # self.MaxBearing= RnavWaypoints.smethod_8(rnavType, category, num) # self.MinDistance = RnavWaypoints.smethod_4(rnavType, category) # if flagStr == "Y-Bar": # if (rnavType == RnavCommonWaypoint.IAWP1): # self.setBearing(self.MaxBearing) # elif (rnavType != RnavCommonWaypoint.IAWP3): # self.setBearing(num) # else: # self.setBearing(self.MinBearing) # else: # if (rnavType == RnavCommonWaypoint.IAWP1): # self.setBearing(self.MinBearing) # elif (rnavType != RnavCommonWaypoint.IAWP3): # self.setBearing(num) # else: # self.setBearing(self.MaxBearing) # # if self.txtDistance.isEnabled(): # # self.setDistance(RnavWaypoints.smethod_6(rnavType, category).NauticalMiles) # # self.setWaypoint(position_List.pop(0)) # self.method_4() self.retranslateUi() QObject.connect(self.buttonBox, SIGNAL(("accepted()")), self.btnCalculate_Click) QObject.connect(self.buttonBox, SIGNAL(("rejected()")), self.reject) # QMetaObject.connectSlotsByName(Dialog) # self.btnToolEND.clicked.connect(self.removeEnd) # self.btnToolTHR.clicked.connect(self.removeThr) self.btnCaptureRunwayTHR.clicked.connect(self.captureTHR) self.btnCaptureRunwayEND.clicked.connect(self.captureEND) self.txtDistance.setText("10")
def __init__(self, geoservice, image_ba, parent=None): QWidget.__init__(self, parent) self.layout = QHBoxLayout(self) # self.layout.addSpacing(0) self.layout.setContentsMargins(5, 10, 5, 10) self.setLayout(self.layout) self.service_icon = QLabel(self) self.service_icon.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.service_icon.resize(24, 24) qimg = QImage.fromData(image_ba) pixmap = QPixmap.fromImage(qimg) self.service_icon.setPixmap(pixmap) self.layout.addWidget(self.service_icon) self.service_desc_layout = QGridLayout(self) self.service_desc_layout.setSpacing(0) self.layout.addLayout(self.service_desc_layout) self.service_name = QLabel(self) self.service_name.setTextFormat(Qt.RichText) self.service_name.setWordWrap(True) self.service_name.setText(u" <strong> {} </strong>".format( geoservice.get('name', u""))) self.service_desc_layout.addWidget(self.service_name, 0, 0, 1, 3) self.service_type = QLabel(self) self.service_type.setTextFormat(Qt.RichText) self.service_type.setWordWrap(True) self.service_type.setText(geoservice.get('type', u"").upper() + " ") self.service_desc_layout.addWidget(self.service_type, 1, 0) self.service_deteils = QLabel(self) self.service_deteils.setTextFormat(Qt.RichText) self.service_deteils.setWordWrap(True) self.service_deteils.setOpenExternalLinks(True) self.service_deteils.setText(u"<a href=\"{}\">details</a>, ".format( Client().geoservice_info_url(geoservice.get('id', u"")))) self.service_desc_layout.addWidget(self.service_deteils, 1, 1) self.service_report = QLabel(self) self.service_report.setTextFormat(Qt.RichText) self.service_report.setWordWrap(True) self.service_report.setOpenExternalLinks(True) self.service_report.setText( u"<a href=\"{}\">report a problem</a><div/>".format( Client().geoservice_report_url(geoservice.get('id', u"")))) self.service_desc_layout.addWidget(self.service_report, 1, 2) self.service_desc_layout.setColumnStretch(2, 1) # self.service_desc = QLabel(self) # self.service_desc.setTextFormat(Qt.RichText) # self.service_desc.setOpenExternalLinks(True) # self.service_desc.setWordWrap(True) # self.service_desc.setText( # u"<strong> {} </strong><div style=\"margin-top: 3px\">{}, <a href=\"{}\">details</a>, <a href=\"{}\">report</a><div/>".format( # # "{}<div style=\"margin-top: 3px\"> <em> {} </em>, <a href=\"{}\"> details <a/> <div/>".format( # geoservice.get('name', u""), # geoservice.get('type', u"").upper(), # Client().geoservice_info_url(geoservice.get('id', u"")), # Client().geoservice_report_url(geoservice.get('id', u"")) # ) # ) # self.layout.addWidget(self.service_desc) self.addButton = QToolButton() self.addButton.setText("Add") self.addButton.clicked.connect(self.addToMap) self.layout.addWidget(self.addButton) self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum) self.geoservice = geoservice self.image_ba = image_ba
def __init__(self, column, parent=None, pixmap=None): """ Class constructor. :param column: Column object containing foreign key information. :type column: BaseColumn :param parent: Parent widget for the control. :type parent: QWidget :param pixmap: Pixmap to use for the line edit button. :type pixmap: QPixmap """ QLineEdit.__init__(self, parent) self.column = column self._entity = self.column.entity #Configure load button self.btn_load = QToolButton(parent) self.btn_load.setCursor(Qt.PointingHandCursor) self.btn_load.setFocusPolicy(Qt.NoFocus) px = QPixmap(':/plugins/stdm/images/icons/select_record.png') if not pixmap is None: px = pixmap self.btn_load.setIcon(QIcon(px)) self.btn_load.setIconSize(px.size()) self.btn_load.setStyleSheet('background: transparent; padding: 0px; ' 'border: none;') self.btn_load.clicked.connect(self.on_load_foreign_key_browser) clear_px = QPixmap(':/plugins/stdm/images/icons/clear.png') self.btn_clear = QToolButton(parent) self.btn_clear.setCursor(Qt.PointingHandCursor) self.btn_clear.setFocusPolicy(Qt.NoFocus) self.btn_clear.setIcon(QIcon(clear_px)) self.btn_clear.setIconSize(clear_px.size()) self.btn_clear.setStyleSheet('background: transparent; padding: 0px; ' 'border: none;') self.btn_clear.clicked.connect(self.clear_line_edit) frame_width = self.set_button_minimum_size(self.btn_load) self.set_button_minimum_size(self.btn_clear) # Ensure that text does not overlay button padding = self.btn_load.sizeHint().width() + frame_width + 1 self.setStyleSheet('padding-right: ' + str(padding * 2) + 'px;') # Set layout self.button_layout = QHBoxLayout(self) self.button_layout.addWidget(self.btn_clear, 0, Qt.AlignRight) self.button_layout.addWidget(self.btn_load, 0, Qt.AlignRight) self.button_layout.setSpacing(0) self.button_layout.setMargin(5) self.btn_clear.setVisible(False) # Readonly as text is loaded from the related entity self.setReadOnly(True) # Current model object self._current_item = None
def _build_widgets(self): """Builds own widgets.""" self.iface.initializationCompleted.connect(self._set_icon_size) iconsDir = QDir(self.pluginDir.path() + u'/data/icons') self.openTabActionGroup = QActionGroup(self) self.loadVfkAction = QAction(self) self.loadVfkAction.setObjectName(u'loadVfkAction') self.loadVfkAction.setToolTip(u'Načtení VFK souboru') self.loadVfkAction.setCheckable(True) loadVfkIcon = QIcon() loadVfkIcon.addPixmap(QPixmap(iconsDir.filePath(u'loadvfk.png'))) self.loadVfkAction.setIcon(loadVfkIcon) self.openTabActionGroup.addAction(self.loadVfkAction) self.addAction(self.loadVfkAction) self.loadVfkAction.trigger() self.editAction = QAction(self) self.editAction.setObjectName(u'editAction') self.editAction.setToolTip(u'Editace') self.editAction.setCheckable(True) editIcon = QIcon() editIcon.addPixmap(QPixmap(iconsDir.filePath(u'edit.png'))) self.editAction.setIcon(editIcon) self.openTabActionGroup.addAction(self.editAction) self.addAction(self.editAction) self.checkAnalysisAction = QAction(self) self.checkAnalysisAction.setObjectName(u'checkAnalysisAction') self.checkAnalysisAction.setToolTip(u'Kontroly a analýzy') self.checkAnalysisAction.setCheckable(True) checkIcon = QIcon() checkIcon.addPixmap(QPixmap(iconsDir.filePath(u'checkanalysis.png'))) self.checkAnalysisAction.setIcon(checkIcon) self.openTabActionGroup.addAction(self.checkAnalysisAction) self.addAction(self.checkAnalysisAction) self.addSeparator() self.zoomFullExtentAction = self.iface.actionZoomFullExtent() self.addAction(self.zoomFullExtentAction) self.zoomToSelectedAction = self.iface.actionZoomToSelected() self.addAction(self.zoomToSelectedAction) self.selectToolButton = QToolButton(self) self.selectToolButton.setObjectName(u'selectToolButton') self.selectToolButton.setPopupMode(1) self.selectRectangleAction = self.iface.actionSelectRectangle() self.selectToolButton.addAction(self.selectRectangleAction) self.selectPolygonAction = self.iface.actionSelectPolygon() self.selectToolButton.addAction(self.selectPolygonAction) self.selectFreehandAction = self.iface.actionSelectFreehand() self.selectToolButton.addAction(self.selectFreehandAction) self.selectRadiusAction = self.iface.actionSelectRadius() self.selectToolButton.addAction(self.selectRadiusAction) for action in self.iface.attributesToolBar().actions(): if action.objectName() == 'ActionSelect': self.qgisSelectToolButton = action.defaultWidget() break self.qgisSelectToolButton.toggled.connect( self._set_default_action_selectToolButton) self._set_default_action_selectToolButton() self.addWidget(self.selectToolButton) self.selectionToolButton = QToolButton(self) self.selectionToolButton.setObjectName(u'selectionToolButton') self.selectionToolButton.setPopupMode(1) for action in self.iface.attributesToolBar().actions(): if action.objectName() == 'ActionSelection': self.qgisSelectionToolButton = action.defaultWidget() break self.selectionToolButton.addActions( self.qgisSelectionToolButton.actions()) self.selectionToolButton.setDefaultAction( self.qgisSelectionToolButton.defaultAction()) self.addWidget(self.selectionToolButton) for action in self.iface.attributesToolBar().actions(): if action.objectName() == 'mActionDeselectAll': self.deselectAllAction = action break self.addAction(self.deselectAllAction) self.openTableAction = self.iface.actionOpenTable() self.addAction(self.openTableAction)
def __init__(self, parent, editable=False, spacerItemMove=False): QWidget.__init__(self, parent) while not isinstance(parent, QDialog): parent = parent.parent() self.setObjectName("ComboBoxPanel" + str(len(parent.findChildren(ComboBoxPanel)))) self.hLayoutBoxPanel = QHBoxLayout(self) self.hLayoutBoxPanel.setSpacing(0) self.hLayoutBoxPanel.setContentsMargins(0, 0, 0, 0) self.hLayoutBoxPanel.setObjectName(("hLayoutBoxPanel")) self.frameBoxPanel = QFrame(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameBoxPanel.sizePolicy().hasHeightForWidth()) self.frameBoxPanel.setSizePolicy(sizePolicy) self.frameBoxPanel.setFrameShape(QFrame.NoFrame) self.frameBoxPanel.setFrameShadow(QFrame.Raised) self.frameBoxPanel.setObjectName(("frameBoxPanel")) self.hLayoutframeBoxPanel = QHBoxLayout(self.frameBoxPanel) self.hLayoutframeBoxPanel.setSpacing(0) self.hLayoutframeBoxPanel.setMargin(0) self.hLayoutframeBoxPanel.setObjectName(("hLayoutframeBoxPanel")) self.captionLabel = QLabel(self.frameBoxPanel) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.captionLabel.sizePolicy().hasHeightForWidth()) self.captionLabel.setSizePolicy(sizePolicy) self.captionLabel.setMinimumSize(QSize(200, 0)) self.captionLabel.setMaximumSize(QSize(200, 16777215)) font = QFont() font.setBold(False) font.setWeight(50) self.captionLabel.setFont(font) self.captionLabel.setObjectName(("captionLabel")) self.hLayoutframeBoxPanel.addWidget(self.captionLabel) self.comboBox = QComboBox(self.frameBoxPanel) self.comboBox.setEnabled(True) font = QFont() font.setBold(False) font.setWeight(50) self.comboBox.setFont(font) self.comboBox.setObjectName(self.objectName() + "_comboBox") self.comboBox.setMinimumWidth(70) # self.comboBox.setMaximumWidth(70) # self.hLayoutframeBoxPanel.addWidget(self.lineEdit) self.hLayoutframeBoxPanel.addWidget(self.comboBox) self.imageButton = QToolButton(self.frameBoxPanel) self.imageButton.setText(("")) icon = QIcon() icon.addPixmap(QPixmap(("Resource/convex_hull.png")), QIcon.Normal, QIcon.Off) self.imageButton.setIcon(icon) self.imageButton.setObjectName(("imageButton")) self.imageButton.setVisible(False) self.hLayoutframeBoxPanel.addWidget(self.imageButton) self.hLayoutBoxPanel.addWidget(self.frameBoxPanel) if not spacerItemMove: spacerItem = QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum) self.hLayoutBoxPanel.addItem(spacerItem) self.comboBox.currentIndexChanged.connect(self.comboBoxChanged) # self.comboBox.editTextChanged.connect(self.comboBoxEditTextChanged) self.imageButton.clicked.connect(self.imageButtonClicked) self.captionUnits = "" self.hasObject = False self.objectList = [] if editable == True: self.lineEdit = QLineEdit(self.frameBoxPanel) self.lineEdit.setObjectName("lineEdit") self.hLayoutframeBoxPanel.insertWidget(1, self.lineEdit) self.comboBox.setLineEdit(self.lineEdit) self.lineEdit.returnPressed.connect(self.comboBoxEditTextChanged)
def buildfromauto(formconfig, base): widgetsconfig = copy.deepcopy(formconfig['widgets']) try: widgetsconfig = base.get_widgets(widgetsconfig) except AttributeError: pass newstyle = formconfig.get("newstyle", False) hassections = any(config['widget'] == "Section" for config in widgetsconfig) def make_layout(): if newstyle: return QVBoxLayout() else: layout = QFormLayout() layout.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow) return layout def make_tab(tabwidget, name): widget = QWidget() widget.setLayout(make_layout()) tabwidget.addTab(widget, name) return widget, widget.layout() if hassections: outwidget = QTabWidget(base) outlayout = None base.setLayout(QVBoxLayout()) base.layout().setContentsMargins(0,0,0,0) base.layout().addWidget(outwidget) else: outwidget = base outlayout = make_layout() outwidget.setLayout(outlayout) if roam.config.settings.get("form_geom_edit", False): geomwidget = GeomWidget() geomwidget.setObjectName("__geomwidget") outlayout.addRow("Geometry", geomwidget) insection = False for config in widgetsconfig: widgettype = config['widget'] ## Make the first tab if one isn't defined already and we have other sections in the config if not insection and hassections and not widgettype == "Section": name = formconfig['label'] tabwidget, outlayout = make_tab(outwidget, name) insection = True if widgettype == 'Section': # Add a spacer to the last widget if outlayout: spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) outlayout.addItem(QSpacerItem(10, 500)) outlayout.addWidget(spacer) name = config['name'] tabwidget, outlayout = make_tab(outwidget, name) installflickcharm(tabwidget) insection = True continue field = config['field'] name = config.get('name', field) if not field: utils.warning("Field can't be null for {}".format(name)) utils.warning("Skipping widget") continue label = QLabel(name) label.setObjectName(field + "_label") labelwidget = QWidget() labelwidget.setLayout(QBoxLayout(QBoxLayout.LeftToRight)) labelwidget.layout().addWidget(label) labelwidget.layout().setContentsMargins(0,0,0,0) widget = roam.editorwidgets.core.createwidget(widgettype, parent=base) widget.setObjectName(field) layoutwidget = QWidget() layoutwidget.setLayout(QBoxLayout(QBoxLayout.LeftToRight)) layoutwidget.layout().addWidget(widget) layoutwidget.layout().setContentsMargins(0,0,0,10) if config.get('rememberlastvalue', False): savebutton = QToolButton() savebutton.setObjectName('{}_save'.format(field)) if newstyle: spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) labelwidget.layout().addWidget(spacer) labelwidget.layout().addWidget(savebutton) else: layoutwidget.layout().addWidget(savebutton) if newstyle: outlayout.addWidget(labelwidget) outlayout.addWidget(layoutwidget) else: outlayout.addRow(labelwidget, layoutwidget) spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) outlayout.addWidget(spacer) if not hassections: outlayout.addItem(QSpacerItem(10, 500)) installflickcharm(outwidget) return base
def reinitialize(self): """ For some reason, we can't remove the items from the 3D scene when the datashape changes. Calling self.qvtk.renderer.RemoveActor(self.planes) seems to have no effect. So here we go for the nuclear option. Remove all contents of the widget and simply start over. """ def delete_gl_widget(): # This is called just before the app quits to avoid this error during shutdown: # QGLContext::makeCurrent: Cannot make invalid context current if self.qvtk is not None: self.qvtk.setParent(None) self.qvtk = None delete_gl_widget() layout = QVBoxLayout() layout.setMargin(0) layout.setSpacing(0) self.qvtk = QVTKOpenGLWidget() layout.addWidget(self.qvtk) if self.layout() is not None: # We can't give ourselves a new layout until we remove the old one. # The easiest way to remove the old one is to assign it to a temporary widget. temp_widget = QWidget() temp_widget.setLayout(self.layout()) assert self.layout() is None self.setLayout(layout) self.qvtk.init() hbox = QHBoxLayout(None) hbox.setMargin(0) hbox.setSpacing(5) hbox.setContentsMargins(5, 3, 5, 3) QApplication.instance().aboutToQuit.connect(delete_gl_widget) b1 = QToolButton() b1.setIcon(QIcon(':icons/icons/x-axis.png')) b1.setToolTip("Show x slicing plane") b1.setCheckable(True) b1.setChecked(True) b2 = QToolButton() b2.setIcon(QIcon(':icons/icons/y-axis.png')) b2.setToolTip("Show y slicing plane") b2.setCheckable(True) b2.setChecked(True) b3 = QToolButton() b3.setIcon(QIcon(':icons/icons/z-axis.png')) b3.setToolTip("Show z slicing plane") b3.setCheckable(True) b3.setChecked(True) bAnaglyph = QToolButton() bAnaglyph.setIcon(QIcon(':icons/icons/3d_glasses.png')) bAnaglyph.setToolTip("Show in anaglyph 3D") bAnaglyph.setCheckable(True) bAnaglyph.setChecked(False) self.bUndock = QToolButton() self.bUndock.setIcon(QIcon(":/icons/icons/arrow_up.png")) self.bUndock.setToolTip("Dock/undock this view") ''' bCutter = QToolButton() bCutter.setIcon(QIcon(':icons/icons/edit-cut.png')) bCutter.setCheckable(True); bCutter.setChecked(False) self.bCutter = bCutter bExportMesh = QToolButton() bExportMesh.setIcon(QIcon(':icons/icons/document-save-as.png')) ''' hbox.addWidget(b1) hbox.addWidget(b2) hbox.addWidget(b3) hbox.addWidget(bAnaglyph) hbox.addWidget(self.bUndock) #hbox.addWidget(bCutter) hbox.addStretch() #hbox.addWidget(bExportMesh) layout.addLayout(hbox) b1.clicked.connect(self.TogglePlaneWidgetX) b2.clicked.connect(self.TogglePlaneWidgetY) b3.clicked.connect(self.TogglePlaneWidgetZ) bAnaglyph.clicked.connect(self.ToggleAnaglyph3D) #self.connect(bExportMesh, SIGNAL("clicked()"), self.exportMesh) #bCutter.toggled.connect(self.useCutterToggled) self.connect(self.qvtk, SIGNAL("objectPicked"), self.__onObjectPicked) #self.qvtk.objectPicked.connect( self.__onObjectPicked ) def layerContextMenu(layer, menu): self.layerContextMenu(layer, menu) Event.register("layerContextMenuRequested", layerContextMenu) if self._dataShape is not None: self._initialize_slicing_planes() self.reinitialized.emit()