def paint(self, painter, option, index): r = option.rect fontPen = QPen(QColor.fromRgb(0, 0, 0), 1, Qt.SolidLine) selectedBrush = QBrush(QApplication.palette().color( QPalette.Highlight)) selectedFontPen = QPen(QApplication.palette().color( QPalette.HighlightedText)) # alternating background painter.setBrush(Qt.white if (index.row() % 2) else QColor(240, 240, 240)) painter.drawRect(r) if (option.state & QStyle.State_Selected): painter.setBrush(selectedBrush) painter.drawRect(r) fontPen = selectedFontPen flag = '!' if index.data(Qt.UserRole + 1) else '?' filename = index.data(Qt.DisplayRole) + ' (' + flag + ')' #description = index.data(Qt::UserRole + 1).toString(); painter.setPen(fontPen) painter.setFont(QFont(QFont.defaultFamily(QFont()), 10, QFont.Normal)) # returns bounding rect br br = painter.drawText(r.left(), r.top(), r.width(), r.height(), Qt.AlignTop | Qt.AlignLeft | Qt.TextWrapAnywhere, filename)
def set_font_family(self, name: str, value: Optional[str]) -> None: """Set the given QWebSettings/QWebEngineSettings font family. With None (the default), QFont is used to get the default font for the family. """ self._assert_not_unset(value) family = self._FONT_FAMILIES[name] if value is None: font = QFont() font.setStyleHint(self._FONT_TO_QFONT[family]) value = font.defaultFamily() self._settings.setFontFamily(family, value)
def render__label_qfont(self) -> QFont: qfont = QFont() qfont.setStyleHint(QFont.SansSerif) # no-op on X11 font = self.cfg.render.label_font if font.toString: qfont.fromString(font.toString) return qfont # Passing None or "" to QFont(family) results in qfont.family() = "", and # wrong font being selected (Abyssinica SIL, which appears early in the list). family = coalesce(font.family, qfont.defaultFamily()) # Font file selection qfont.setFamily(family) qfont.setBold(font.bold) qfont.setItalic(font.italic) # Font size qfont.setPointSizeF(font.size) return qfont
def set_font_family(self, name: str, value: typing.Optional[str]) -> bool: """Set the given QWebSettings/QWebEngineSettings font family. With None (the default), QFont is used to get the default font for the family. Return: True if there was a change, False otherwise. """ assert value is not configutils.UNSET family = self._FONT_FAMILIES[name] if value is None: font = QFont() font.setStyleHint(self._FONT_TO_QFONT[family]) value = font.defaultFamily() old_value = self._settings.fontFamily(family) self._settings.setFontFamily(family, value) return value != old_value
def set_font_family( self, name: str, value: Union[str, None, usertypes.Unset], ) -> None: """Set the given QWebSettings/QWebEngineSettings font family. With None (the default), QFont is used to get the default font for the family. """ family = self._FONT_FAMILIES[name] if value is usertypes.UNSET: self._settings.resetFontFamily(family) elif value is None: font = QFont() font.setStyleHint(self._FONT_TO_QFONT[family]) value = font.defaultFamily() self._settings.setFontFamily(family, value) else: self._settings.setFontFamily(family, value)
def set_font_family(self, name, value): """Set the given QWebSettings/QWebEngineSettings font family. With None (the default), QFont is used to get the default font for the family. Return: True if there was a change, False otherwise. """ assert value is not configutils.UNSET family = self._FONT_FAMILIES[name] if value is None: font = QFont() font.setStyleHint(self._FONT_TO_QFONT[family]) value = font.defaultFamily() old_value = self._settings.fontFamily(family) self._settings.setFontFamily(family, value) return value != old_value
def set_default(self, settings=None): font = QFont() font.setStyleHint(self._qfont) value = font.defaultFamily() self._set(value, settings=settings)
def __init__(self): super(SeeingMonitor, self).__init__() self.setupUi(self) self.Camera = None self.THRESH = None self.threshold_auto = False self.frame = None self.draw_only_frame = None self.video_source = VideoSource.NONE self.export_video = False self.select_noiseArea = False self.coordinates_noiseArea = [] self.lineedit_path.setText(QDir.currentPath()) self.lineedit_filename.setText("seeing.csv") self.save_filename = None self._updateFileSave() self.pause_pressed = False self.datetimeedit_start.setMinimumDateTime(QDateTime.currentDateTime()) self.datetimeedit_end.setMinimumDateTime(QDateTime.currentDateTime()) if platform.system() == 'Linux': self.button_start.setEnabled(False) self.button_settings.setEnabled(False) self.button_start.clicked.connect(self.startLiveCamera) self.button_settings.clicked.connect(self.showSettings) self.button_simulation.clicked.connect(self.startSimulation) self.button_import.clicked.connect(self.importVideo) self.button_export.clicked.connect(self.exportVideo) self.button_noise.clicked.connect(self.selectNoiseArea) self.lineedit_path.textEdited.connect(self._updateFileSave) self.lineedit_filename.textEdited.connect(self._updateFileSave) self.slider_threshold.valueChanged.connect(self._updateThreshold) self.checkbox_thresh.stateChanged.connect(self._updateThresholdState) # Update the Tilt value self.spinbox_b.valueChanged.connect(self._updateFormulaZTilt) self.spinbox_d.valueChanged.connect(self._updateFormulaZTilt) # Update the constants in the FWHM seeing formula self.spinbox_d.valueChanged.connect(self._updateFormulaConstants) self.spinbox_lambda.valueChanged.connect(self._updateFormulaConstants) # Timer for acquiring images at regular intervals self.acquisition_timer = QTimer(parent=self.centralwidget) self.timer_interval = None self._updateThreshold() self._updateFormulaZTilt() self._updateFormulaConstants() # Storing the Delta X and Y in an array to calculate the Standard Deviation self.arr_delta_x = deque(maxlen=100) self.arr_delta_y = deque(maxlen=100) self.plot_length = 1000 self.fwhm_lat = 0 self.fwhm_tra = 0 self.max_lat = 1 self.min_lat = 0 self.max_tra = 1 self.min_tra = 0 self.series_lat = QLineSeries() self.series_lat.setName("Lateral") self.series_tra = QLineSeries() self.series_tra.setName("Transversal") self.chart = QChart() self.chart.addSeries(self.series_lat) self.chart.addSeries(self.series_tra) # self.chart.createDefaultAxes() self.axis_horizontal = QDateTimeAxis() self.axis_horizontal.setMin(QDateTime.currentDateTime().addSecs(-60 * 1)) self.axis_horizontal.setMax(QDateTime.currentDateTime().addSecs(0)) self.axis_horizontal.setFormat("HH:mm:ss.zzz") self.axis_horizontal.setLabelsFont( QFont(QFont.defaultFamily(self.font()), pointSize=5)) self.axis_horizontal.setLabelsAngle(-20) self.chart.addAxis(self.axis_horizontal, Qt.AlignBottom) self.axis_vertical_lat = QValueAxis() self.axis_vertical_lat.setRange(self.max_lat, self.min_lat) self.chart.addAxis(self.axis_vertical_lat, Qt.AlignLeft) self.axis_vertical_tra = QValueAxis() self.axis_vertical_tra.setRange(self.max_tra, self.min_tra) self.chart.addAxis(self.axis_vertical_tra, Qt.AlignRight) self.series_lat.attachAxis(self.axis_horizontal) self.series_lat.attachAxis(self.axis_vertical_lat) self.series_tra.attachAxis(self.axis_horizontal) self.series_tra.attachAxis(self.axis_vertical_tra) self.chart.setTitle("Full Width at Half Maximum") self.chart.legend().setVisible(True) self.chart.legend().setAlignment(Qt.AlignBottom) self.chartView = QChartView(self.chart, parent=self.graphicsView) self.chartView.resize(640, 250) self.chartView.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) self.chartView.setRenderHint(QPainter.Antialiasing)
def initUI(self): # Set up Window geometry and shape self.setGeometry(550, 300, 800, 630) self.setWindowTitle('Camera Alignment Panel') # Set up status bar self.statusBar().showMessage("Camera: Ready", 5000) # Set up Graphic Scene and View self.scene = GraphicsScene(self) self.view = GraphicsView() self.view.setScene(self.scene) self.view.setMinimumSize(660, 480) self.imageLabel = QLabel() self.setCentralWidget(self.view) self.image_data = None self.begin = QPoint() self.end = QPoint() self.firstTimeRunning = True self.alignOn = False # Set up ToolBar tb = QToolBar() self.addToolBar(Qt.BottomToolBarArea, tb) #self.autoAlignBtn = QAction(QIcon(QPixmap()),"Run Automated Alignment",self) #self.autoAlignBtn.setEnabled(True) #self.autoAlignBtn.setShortcut('Ctrl+r') #self.autoAlignBtn.setStatusTip('Run Automated Alignment Routine') self.manualAlignBtn = QAction(QIcon(QPixmap()), "Get Image", self) self.manualAlignBtn.setEnabled(True) self.manualAlignBtn.setShortcut('Ctrl+m') self.manualAlignBtn.setStatusTip('Get Image - Run Manual Alignment') self.liveAlignBtn = QAction(QIcon(QPixmap()), "Live", self) self.liveAlignBtn.setEnabled(True) self.liveAlignBtn.setShortcut('Ctrl+l') self.liveAlignBtn.setStatusTip('Live Image - Run Manual Alignment') self.saveImageBtn = QAction(QIcon(QPixmap()), "Save Image", self) self.saveImageBtn.setEnabled(False) self.saveImageBtn.setShortcut('Ctrl+s') self.saveImageBtn.setStatusTip('Save Image') contrastAlignLabel = QLabel() font = QFont() font.setFamily(font.defaultFamily()) contrastAlignLabel.setFont(font) contrastAlignLabel.setText("Alignment Threshold [%]: ") self.checkAlignText = QLineEdit() self.checkAlignText.setMaximumSize(40, 25) self.checkAlignText.setReadOnly(True) self.setDefaultBtn = QAction(QIcon(QPixmap()), "Set Alignment as Default", self) self.setDefaultBtn.setShortcut('Ctrl+d') self.setDefaultBtn.setStatusTip('Set Default Alignment') self.setDefaultBtn.setEnabled(False) self.resetBtn = QAction(QIcon(QPixmap()), "Reset", self) self.resetBtn.setShortcut('Ctrl+r') self.resetBtn.setStatusTip('Reset Camera Live Interface') self.resetBtn.setEnabled(False) self.intensityLabel = QLabel() font = QFont() font.setFamily(font.defaultFamily()) self.intensityLabel.setFont(font) self.intensityLabel.setText("") #tb.addAction(self.autoAlignBtn) tb.addAction(self.manualAlignBtn) tb.addSeparator() tb.addAction(self.liveAlignBtn) tb.addSeparator() tb.addAction(self.saveImageBtn) tb.addSeparator() tb.addWidget(contrastAlignLabel) tb.addWidget(self.checkAlignText) self.checkAlignText.show() tb.addSeparator() tb.addAction(self.setDefaultBtn) tb.addSeparator() tb.addAction(self.resetBtn) tb.addSeparator() tb.addWidget(self.intensityLabel) #self.autoAlignBtn.triggered.connect(self.autoAlign) self.manualAlignBtn.triggered.connect(lambda: self.manualAlign(False)) self.liveAlignBtn.triggered.connect(lambda: self.manualAlign(True)) self.saveImageBtn.triggered.connect(self.saveImage) self.setDefaultBtn.triggered.connect(self.setDefault) self.resetBtn.triggered.connect(lambda: self.setAlignOn(False)) # Make Menu for plot related calls self.menuBar = QMenuBar(self) self.menuBar.setGeometry(0, 0, 1150, 25) #self.autoAlignmentMenu = QAction("&Autoalignment", self) #self.autoAlignmentMenu.setShortcut("Ctrl+k") #self.autoAlignmentMenu.setStatusTip('Run Autoalignment') #self.autoAlignmentMenu.triggered.connect(self.autoAlign) self.manualAlignmentMenu = QAction("&Manual alignment", self) self.manualAlignmentMenu.setShortcut("Ctrl+m") self.manualAlignmentMenu.setStatusTip('Run manual alignment') self.manualAlignmentMenu.triggered.connect( lambda: self.manualAlign(False)) self.liveAlignmentMenu = QAction("&Manual alignment - Live", self) self.liveAlignmentMenu.setShortcut("Ctrl+l") self.liveAlignmentMenu.setStatusTip( 'Run manual alignment from live mode') self.liveAlignmentMenu.triggered.connect( lambda: self.manualAlign(True)) self.saveImageMenu = QAction("&Save Image", self) self.saveImageMenu.setShortcut("Ctrl+s") self.saveImageMenu.setStatusTip('Save image to png file') self.saveImageMenu.triggered.connect(self.saveImage) self.saveImageMenu.setEnabled(False) alignmentMenu = self.menuBar.addMenu('&Alignment') #alignmentMenu.addAction(self.autoAlignmentMenu) alignmentMenu.addAction(self.manualAlignmentMenu) alignmentMenu.addAction(self.liveAlignmentMenu) imageMenu = self.menuBar.addMenu('&Image') imageMenu.addAction(self.saveImageMenu) self.parent().viewWindowMenus(self.menuBar, self.parent())