Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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
Beispiel #4
0
    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
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #9
0
 def set_default(self, settings=None):
     font = QFont()
     font.setStyleHint(self._qfont)
     value = font.defaultFamily()
     self._set(value, settings=settings)
Beispiel #10
0
    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())