Beispiel #1
0
    def __init__(self, console, parent=None):
        super(Form, self).__init__(parent)
        # self.setWindowFlag(Qt.WindowCloseButtonHint, False)
        self.console = console

        self.logger = Logger('About', Logger.INFO)

        self.setWindowTitle("關於 Ptt OTP")

        self.setWindowIcon(util.load_icon(config.icon_small))

        layout = QVBoxLayout()

        label = QLabel()

        pixmap = util.load_icon(config.person_logo)
        pixmap = pixmap.scaled(300, 300, Qt.KeepAspectRatio)

        label.setPixmap(pixmap)
        label.setAlignment(Qt.AlignCenter)
        layout.addWidget(label)

        #         rule_text = '''
        # 開發者: CodingMan
        # 專案網址: https://github.com/PttCodingMan/PTT-One-Time-Password
        # '''
        #         rule_text = rule_text.strip()

        # for rule_line in rule_text.split('\n'):
        #     label = QLabel(rule_line)
        #     label.setOpenExternalLinks(True)
        #     # label.setText("<a href=\"http://www.qtcentre.org\">QtCentre</a>");
        #     layout.addWidget(label)

        MinimumHeight = 20

        label = QLabel()
        layout.addWidget(label)

        label = QLabel()
        label.setOpenExternalLinks(True)
        label.setText(f'Ptt One Time Password v {config.version}')
        label.setMinimumHeight(MinimumHeight)
        layout.addWidget(label)

        label = QLabel()
        label.setOpenExternalLinks(True)
        label.setText(
            '專案網址: <a href=\"https://github.com/PttCodingMan/PTT-One-Time-Password\">https://github.com/PttCodingMan/PTT-One-Time-Password</a>'
        )
        label.setMinimumHeight(MinimumHeight)
        layout.addWidget(label)

        label = QLabel()
        label.setOpenExternalLinks(True)
        label.setText(
            '開發者: <a href=\"https://pttcodingman.github.io/\">CodingMan</a>')
        label.setMinimumHeight(MinimumHeight)
        layout.addWidget(label)

        self.setLayout(layout)
Beispiel #2
0
    def __init__(self, parent=None):
        super(_RailGuideDialog, self).__init__(parent)

        ui = FreeCADGui.UiLoader()

        # define our window
        self.setGeometry(250, 250, 400, 350)
        self.setWindowTitle(translate('Rocket', "Rail Guide Parameter"))

        # Get the rail guide parameters
        self.railGuideBaseTypeLabel = QtGui.QLabel(translate('Rocket', "Rail Guide Base"), self)

        self.railGuideBaseTypes = (RAIL_GUIDE_BASE_FLAT,
                                RAIL_GUIDE_BASE_CONFORMAL,
                                RAIL_GUIDE_BASE_V)
        self.railGuideBaseTypeCombo = QtGui.QComboBox(self)
        self.railGuideBaseTypeCombo.addItems(self.railGuideBaseTypes)

        self.topWidthLabel = QtGui.QLabel(translate('Rocket', "Top Width"), self)

        self.topWidthInput = ui.createWidget("Gui::InputField")
        self.topWidthInput.unit = 'mm'
        self.topWidthInput.setFixedWidth(80)

        self.middleWidthLabel = QtGui.QLabel(translate('Rocket', "Middle Width"), self)

        self.middleWidthInput = ui.createWidget("Gui::InputField")
        self.middleWidthInput.unit = 'mm'
        self.middleWidthInput.setFixedWidth(80)

        self.baseWidthLabel = QtGui.QLabel(translate('Rocket', "Base Width"), self)

        self.baseWidthInput = ui.createWidget("Gui::InputField")
        self.baseWidthInput.unit = 'mm'
        self.baseWidthInput.setFixedWidth(80)

        self.topThicknessLabel = QtGui.QLabel(translate('Rocket', "Top Thickness"), self)

        self.topThicknessInput = ui.createWidget("Gui::InputField")
        self.topThicknessInput.unit = 'mm'
        self.topThicknessInput.setFixedWidth(80)

        self.baseThicknessLabel = QtGui.QLabel(translate('Rocket', "Base Thickness"), self)

        self.baseThicknessInput = ui.createWidget("Gui::InputField")
        self.baseThicknessInput.unit = 'mm'
        self.baseThicknessInput.setFixedWidth(80)

        self.thicknessLabel = QtGui.QLabel(translate('Rocket', "Total Thickness"), self)

        self.thicknessInput = ui.createWidget("Gui::InputField")
        self.thicknessInput.unit = 'mm'
        self.thicknessInput.setFixedWidth(80)

        self.lengthLabel = QtGui.QLabel(translate('Rocket', "Length"), self)

        self.lengthInput = ui.createWidget("Gui::InputField")
        self.lengthInput.unit = 'mm'
        self.lengthInput.setFixedWidth(80)

        # Conformal base parameters
        self.diameterLabel = QtGui.QLabel(translate('Rocket', "Body Tube Diameter"), self)

        self.diameterInput = ui.createWidget("Gui::InputField")
        self.diameterInput.unit = 'mm'
        self.diameterInput.setFixedWidth(80)

        self.autoDiameterCheckbox = QtGui.QCheckBox(translate('Rocket', "auto"), self)
        self.autoDiameterCheckbox.setCheckState(QtCore.Qt.Unchecked)

        # V base parameters
        self.vAngleLabel = QtGui.QLabel(translate('Rocket', "V Angle"), self)

        self.vAngleInput = ui.createWidget("Gui::InputField")
        self.vAngleInput.unit = 'deg'
        self.vAngleInput.setFixedWidth(80)

        # Sweep parameters
        self.forwardSweepGroup = QtGui.QGroupBox(translate('Rocket', "Forward Sweep"), self)
        self.forwardSweepGroup.setCheckable(True)

        self.forwardSweepLabel = QtGui.QLabel(translate('Rocket', "Sweep Angle"), self)

        self.forwardSweepInput = ui.createWidget("Gui::InputField")
        self.forwardSweepInput.unit = 'deg'
        self.forwardSweepInput.setFixedWidth(80)

        self.aftSweepGroup = QtGui.QGroupBox(translate('Rocket', "Aft Sweep"), self)
        self.aftSweepGroup.setCheckable(True)

        self.aftSweepLabel = QtGui.QLabel(translate('Rocket', "Sweep Angle"), self)

        self.aftSweepInput = ui.createWidget("Gui::InputField")
        self.aftSweepInput.unit = 'deg'
        self.aftSweepInput.setFixedWidth(80)

        # Notch parameters
        self.notchGroup = QtGui.QGroupBox(translate('Rocket', "Notch"), self)
        self.notchGroup.setCheckable(True)

        self.notchWidthLabel = QtGui.QLabel(translate('Rocket', "Width"), self)

        self.notchWidthInput = ui.createWidget("Gui::InputField")
        self.notchWidthInput.unit = 'mm'
        self.notchWidthInput.setFixedWidth(80)

        self.notchDepthLabel = QtGui.QLabel(translate('Rocket', "Depth"), self)

        self.notchDepthInput = ui.createWidget("Gui::InputField")
        self.notchDepthInput.unit = 'mm'
        self.notchDepthInput.setFixedWidth(80)

        # Forward sweep group
        row = 0
        grid = QGridLayout()

        grid.addWidget(self.forwardSweepLabel, row, 0)
        grid.addWidget(self.forwardSweepInput, row, 1)
        row += 1

        self.forwardSweepGroup.setLayout(grid)

        # Aft sweep group
        row = 0
        grid = QGridLayout()

        grid.addWidget(self.aftSweepLabel, row, 0)
        grid.addWidget(self.aftSweepInput, row, 1)
        row += 1

        self.aftSweepGroup.setLayout(grid)

        # Notch group
        row = 0
        grid = QGridLayout()

        grid.addWidget(self.notchWidthLabel, row, 0)
        grid.addWidget(self.notchWidthInput, row, 1)
        row += 1

        grid.addWidget(self.notchDepthLabel, row, 0)
        grid.addWidget(self.notchDepthInput, row, 1)
        row += 1

        self.notchGroup.setLayout(grid)

        # General parameters
        row = 0
        grid = QGridLayout()

        grid.addWidget(self.railGuideBaseTypeLabel, row, 0)
        grid.addWidget(self.railGuideBaseTypeCombo, row, 1)
        row += 1

        grid.addWidget(self.topWidthLabel, row, 0)
        grid.addWidget(self.topWidthInput, row, 1)
        row += 1

        grid.addWidget(self.middleWidthLabel, row, 0)
        grid.addWidget(self.middleWidthInput, row, 1)
        row += 1

        grid.addWidget(self.baseWidthLabel, row, 0)
        grid.addWidget(self.baseWidthInput, row, 1)
        row += 1

        grid.addWidget(self.topThicknessLabel, row, 0)
        grid.addWidget(self.topThicknessInput, row, 1)
        row += 1

        grid.addWidget(self.baseThicknessLabel, row, 0)
        grid.addWidget(self.baseThicknessInput, row, 1)
        row += 1

        grid.addWidget(self.thicknessLabel, row, 0)
        grid.addWidget(self.thicknessInput, row, 1)
        row += 1

        grid.addWidget(self.lengthLabel, row, 0)
        grid.addWidget(self.lengthInput, row, 1)
        row += 1

        grid.addWidget(self.diameterLabel, row, 0)
        grid.addWidget(self.diameterInput, row, 1)
        row += 1
        grid.addWidget(self.autoDiameterCheckbox, row, 1)
        row += 1

        grid.addWidget(self.vAngleLabel, row, 0)
        grid.addWidget(self.vAngleInput, row, 1)
        row += 1

        layout = QVBoxLayout()
        layout.addItem(grid)
        layout.addWidget(self.forwardSweepGroup)
        layout.addWidget(self.aftSweepGroup)
        layout.addWidget(self.notchGroup)
        layout.addItem(QtGui.QSpacerItem(0,0, QSizePolicy.Expanding, QSizePolicy.Expanding))

        self.setLayout(layout)
    def __init__(self, targetImage=None, axeSize=500, layer=None, parent=None):
        super().__init__(layer=layer, targetImage=targetImage, parent=parent)
        self.options = None
        pushButton1 = QPushButton(' Undo ')
        pushButton1.adjustSize()
        pushButton2 = QPushButton(' Redo ')
        pushButton2.adjustSize()

        pushButton1.clicked.connect(self.undo)
        pushButton2.clicked.connect(self.redo)

        spacingSlider = QSlider(Qt.Horizontal)
        spacingSlider.setObjectName('spacingSlider')
        spacingSlider.setRange(1,60)
        spacingSlider.setTickPosition(QSlider.TicksBelow)
        spacingSlider.setSliderPosition(10)
        spacingSlider.sliderReleased.connect(self.parent().label.brushUpdate)
        self.spacingSlider = spacingSlider

        jitterSlider = QSlider(Qt.Horizontal)
        jitterSlider.setObjectName('jitterSlider')
        jitterSlider.setRange(0, 100)
        jitterSlider.setTickPosition(QSlider.TicksBelow)
        jitterSlider.setSliderPosition(0)
        jitterSlider.sliderReleased.connect(self.parent().label.brushUpdate)
        self.jitterSlider = jitterSlider

        orientationSlider = QSlider(Qt.Horizontal)
        orientationSlider.setObjectName('orientationSlider')
        orientationSlider.setRange(0, 360)
        orientationSlider.setTickPosition(QSlider.TicksBelow)
        orientationSlider.setSliderPosition(180)
        orientationSlider.sliderReleased.connect(self.parent().label.brushUpdate)
        self.orientationSlider = orientationSlider

        # sample
        self.sample = QLabel()
        #self.sample.setMinimumSize(200, 100)
        pxmp = QPixmap(250,100)
        pxmp.fill(QColor(255, 255, 255, 255))
        self.sample.setPixmap(pxmp)
        qpp = QPainterPath()
        qpp.moveTo(QPointF(20, 50))
        qpp.cubicTo(QPointF(80, 25), QPointF(145, 70), QPointF(230, 60))  # c1, c2, endPoint
        self.samplePoly = qpp.toFillPolygon(QTransform())
        # we want an unclosed polygon
        self.samplePoly.removeLast()

        # layout
        l = QVBoxLayout()
        l.setAlignment(Qt.AlignTop)
        hl = QHBoxLayout()
        hl.setAlignment(Qt.AlignHCenter)
        hl.addWidget(pushButton1)
        hl.addWidget(pushButton2)
        l.addLayout(hl)
        l.addWidget(QLabel('Brush Dynamics'))
        hl1 = QHBoxLayout()
        hl1.addWidget(QLabel('Spacing'))
        hl1.addWidget(spacingSlider)
        l.addLayout(hl1)
        hl2 = QHBoxLayout()
        hl2.addWidget(QLabel('Jitter'))
        hl2.addWidget(jitterSlider)
        l.addLayout(hl2)
        hl3 = QHBoxLayout()
        hl3.addWidget(QLabel('Orientation'))
        hl3.addWidget(self.orientationSlider)
        l.addLayout(hl3)
        l.addWidget(self.sample)
        self.setLayout(l)
        self.adjustSize()

        self.setDefaults()
        self.setWhatsThis(
                        """
                        <b>Drawing :</b><br>
                          Choose a brush family, flow, hardness and opacity.
                        """
                        )  # end of setWhatsThis
Beispiel #4
0
    def _assembleRechnungsdaten(self):
        self._cboKreditor.setToolTip("Kreditor")
        self._cboKreditor.setFixedWidth(200)
        self._cboKreditor.currentIndexChanged.connect(self.onKreditorChanged)
        self._editRechnungLineLayout.addWidget(self._cboKreditor)
        self._cboBuchungstext.setToolTip(
            "Identifikation der Zahlung durch Rechnungsnummer oder Buchungstext"
        )
        self._cboBuchungstext.setMinimumWidth(100)
        self._editRechnungLineLayout.addWidget(self._cboBuchungstext,
                                               stretch=2)

        #Button for DB-Search
        btn = self._btnDbSearch
        btn.clicked.connect(self._onDbSearch)
        size = QSize(30, 30)
        btn.setFixedSize(size)
        btn.setToolTip("Suche Buchungstext in der DB")
        icon = QIcon("../images/search_30.png")
        btn.setIcon(icon)
        btn.setEnabled(True)
        self._editRechnungLineLayout.addWidget(btn)

        # self._sdRechnungsdatum.setPlaceholderText( "Datum Rg." )
        # self._sdRechnungsdatum.setMaximumWidth( 85 )
        # self._sdRechnungsdatum.setToolTip( "optional: Datum der Rechnung" )
        # self._editRechnungLineLayout.addWidget( self._sdRechnungsdatum, stretch=0, alignment=Qt.AlignLeft )
        self._feBetrag.setPlaceholderText("Betrag")
        self._feBetrag.setMaximumWidth(70)
        self._feBetrag.setToolTip(
            "Positive Beträge sind Aus-, negative Einzahlungen (Gutschriften)")
        self._editRechnungLineLayout.addWidget(self._feBetrag,
                                               stretch=0,
                                               alignment=Qt.AlignLeft)

        # Combobox Kostenart
        self._cboKostenart.setPlaceholderText("Kostenart")
        self._cboKostenart.setFixedWidth(70)
        self._cboKostenart.setToolTip("Kostenart einstellen")
        self._editRechnungLineLayout.addWidget(self._cboKostenart,
                                               stretch=0,
                                               alignment=Qt.AlignLeft)

        vbox = QVBoxLayout()
        vbox.setSpacing(0)
        self._cbUmlegbar.setText("uml")
        self._cbUmlegbar.setToolTip(
            "Ob die Auszahlung auf den/die Mieter umlegbar sind")
        vbox.addWidget(self._cbUmlegbar)
        self._cbWerterhaltend.setText("wert")
        self._cbWerterhaltend.setToolTip(
            "Ob die Auszahlung der Werterhaltung der Wohnung dient")
        vbox.addWidget(self._cbWerterhaltend)
        self._editRechnungLineLayout.addLayout(vbox)

        self._teBemerkung.setPlaceholderText("Bemerkung zur Auszahlung")
        self._teBemerkung.setMaximumSize(QtCore.QSize(16777215, 50))
        self._editRechnungLineLayout.addWidget(self._teBemerkung, stretch=1)

        vbox = QVBoxLayout()
        self._btnOk.setIcon(QIcon("../images/checked.png"))
        self._btnOk.setDefault(True)
        self._btnOk.setToolTip(
            "Neue oder geänderte Daten in Tabelle übernehmen (kein Speichern)")
        self._btnOk.clicked.connect(self.onOkEditFields)
        vbox.addWidget(self._btnOk)
        self._btnClear.setIcon(QIcon("../images/cancel.png"))
        self._btnClear.setToolTip("Änderungen verwerfen und Felder leeren")
        self._btnClear.clicked.connect(self.onClearEditFields)
        vbox.addWidget(self._btnClear)
        self._editRechnungLineLayout.addLayout(vbox)
Beispiel #5
0
 def OptionsWindowOpen(self): 
     self.layout = QVBoxLayout() # Määritetään self.layout QVBox funktioksi
     self.OptionsWindow_1 = Options(self) # Muuttuja viittaa uuteen options objektiin, eli uuteen options ikkunaan
     self.OptionsWindow_1.show() # Piirtäää viitatun ikkunan
Beispiel #6
0
    def selectTally(self, tally_label=None):
        # using active view to populate tally options live
        av = self.model.activeView

        # reset form layout
        for i in reversed(range(self.tallySelectorLayout.count())):
            self.tallySelectorLayout.itemAt(i).widget().setParent(None)

        # always re-add the tally selector to the layout
        self.tallySelectorLayout.addRow(self.tallySelector)
        self.tallySelectorLayout.addRow(HorizontalLine())

        if tally_label is None or tally_label == "None" or tally_label == "":
            av.selectedTally = None
            self.score_map = None
            self.nuclide_map = None
            self.filter_map = None
            av.tallyValue = "Mean"
        else:
            # get the tally
            tally = self.model.statepoint.tallies[av.selectedTally]

            # populate filters
            filter_types = {type(f) for f in tally.filters}
            spatial_filters = bool(filter_types.intersection(_SPATIAL_FILTERS))

            if not spatial_filters:
                self.filter_description = QLabel("(No Spatial Filters)")
                self.tallySelectorLayout.addRow(self.filter_description)

            self._createFilterTree(spatial_filters)

            self.tallySelectorLayout.addRow(self.treeExpander)
            self.tallySelectorLayout.addRow(HorizontalLine())

            # value selection
            self.tallySelectorLayout.addRow(QLabel("Value:"))
            self.valueBox = QComboBox(self)
            self.values = tuple(_TALLY_VALUES.keys())
            for value in self.values:
                self.valueBox.addItem(value)
            self.tallySelectorLayout.addRow(self.valueBox)
            self.valueBox.currentTextChanged[str].connect(
                self.main_window.editTallyValue)
            self.updateTallyValue()

            if not spatial_filters:
                self.valueBox.setEnabled(False)
                self.valueBox.setToolTip(
                    "Only tallies with spatial filters are viewable.")

            # scores
            self.score_map = {}
            self.scoresListWidget.itemClicked.connect(
                self.main_window.updateScores)
            self.score_map.clear()
            self.scoresListWidget.clear()

            sorted_scores = sorted(tally.scores)
            # always put total first if present
            if 'total' in sorted_scores:
                idx = sorted_scores.index('total')
                sorted_scores.insert(0, sorted_scores.pop(idx))

            for score in sorted_scores:
                ql = QListWidgetItem()
                ql.setText(score.capitalize())
                ql.setCheckState(QtCore.Qt.Unchecked)
                if not spatial_filters:
                    ql.setFlags(QtCore.Qt.ItemIsUserCheckable)
                else:
                    ql.setFlags(ql.flags() | QtCore.Qt.ItemIsUserCheckable)
                    ql.setFlags(ql.flags() & ~QtCore.Qt.ItemIsSelectable)
                self.score_map[score] = ql
                self.scoresListWidget.addItem(ql)

            # select the first score item by default
            for item in self.score_map.values():
                item.setCheckState(QtCore.Qt.Checked)
                break
            self.updateScores()

            self.scoresGroupBoxLayout = QVBoxLayout()
            self.scoresGroupBoxLayout.addWidget(self.scoresListWidget)
            self.scoresGroupBox = Expander("Scores:",
                                           layout=self.scoresGroupBoxLayout)
            self.tallySelectorLayout.addRow(self.scoresGroupBox)

            # nuclides
            self.nuclide_map = {}
            self.nuclidesListWidget.itemClicked.connect(
                self.main_window.updateNuclides)
            self.nuclide_map.clear()
            self.nuclidesListWidget.clear()

            sorted_nuclides = sorted(tally.nuclides)
            # always put total at the top
            if 'total' in sorted_nuclides:
                idx = sorted_nuclides.index('total')
                sorted_nuclides.insert(0, sorted_nuclides.pop(idx))

            for nuclide in sorted_nuclides:
                ql = QListWidgetItem()
                ql.setText(nuclide.capitalize())
                ql.setCheckState(QtCore.Qt.Unchecked)
                if not spatial_filters:
                    ql.setFlags(QtCore.Qt.ItemIsUserCheckable)
                else:
                    ql.setFlags(ql.flags() | QtCore.Qt.ItemIsUserCheckable)
                    ql.setFlags(ql.flags() & ~QtCore.Qt.ItemIsSelectable)
                self.nuclide_map[nuclide] = ql
                self.nuclidesListWidget.addItem(ql)

            # select the first nuclide item by default
            for item in self.nuclide_map.values():
                item.setCheckState(QtCore.Qt.Checked)
                break
            self.updateNuclides()

            self.nuclidesGroupBoxLayout = QVBoxLayout()
            self.nuclidesGroupBoxLayout.addWidget(self.nuclidesListWidget)
            self.nuclidesGroupBox = Expander(
                "Nuclides:", layout=self.nuclidesGroupBoxLayout)
            self.tallySelectorLayout.addRow(self.nuclidesGroupBox)
Beispiel #7
0
Datei: QT.py Projekt: Zamtos/QT
    def createDockWindows(self):
        # dock = QDockWidget('n', self)
        # dock.setFeatures(dock.NoDockWidgetFeatures)
        # dock.DockWidgetMovable = False
        # dock.setAllowedAreas(Qt.TopDockWidgetArea)
        # self.addDockWidget(Qt.TopDockWidgetArea, dock)

        dock = QDockWidget("Program", self)
        dock.setFeatures(dock.NoDockWidgetFeatures)
        dock.DockWidgetMovable = False
        dock.setAllowedAreas(Qt.LeftDockWidgetArea)
        self.multiWidget = QWidget()
        font1 = QFont("Courier New", 10)
        self.title = QLabel("SOLAR PANEL Program")
        font2 = QFont("Courier New", 10)
        font2.setBold(True)
        self.author = QLabel("Tomasz Dróżdż")
        self.author.setFont(font2)
        self.other = QLabel("Politechnika Wrocławska")
        self.other2 = QLabel("Automatyka i Robotyka")
        self.vLayout = QVBoxLayout()
        self.vLayout.addWidget(self.title)
        self.vLayout.addWidget(self.author)
        self.vLayout.addWidget(self.other)
        self.vLayout.addWidget(self.other2)
        self.multiWidget.setLayout(self.vLayout)
        dock.setWidget(self.multiWidget)
        self.addDockWidget(Qt.LeftDockWidgetArea, dock)

        dock = QDockWidget("Zegar", self)
        dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
        self.multiWidget2 = QWidget()
        font3 = QFont("Arial", 13)
        font4 = QFont("Arial", 20)
        self.date = QLabel(QDate.currentDate().toString("d MMMM yyyy:  "))
        self.clock = QLabel(QTime.currentTime().toString("hh:mm:ss"))
        self.date.setFont(font3)
        self.clock.setFont(font4)
        font4.setBold(True)
        self.vLayout2 = QVBoxLayout()
        self.vLayout2.addWidget(self.date)
        self.vLayout2.addWidget(self.clock)
        self.multiWidget2.setLayout(self.vLayout2)
        dock.setWidget(self.multiWidget2)
        self.addDockWidget(Qt.LeftDockWidgetArea, dock)
        self.viewMenu.addAction(dock.toggleViewAction())

        dock = QDockWidget("Współrzędne Geograficzne Panelu: ", self)
        s = ephem.Sun()
        s.compute(epoch=ephem.now())
        dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
        self.multiWidget3 = QWidget()
        font5 = QFont("Arial", 12)
        font6 = QFont("Arial", 17)
        self.vLayout3 = QGridLayout()
        self.result = QLabel(self.latlong)
        self.name = QLabel('Nazwa')
        self.latitude = QLabel('Szerokość')
        self.longitude = QLabel('Długość')
        self.dateandtime = QLabel('Data i Czas')
        # self.result = QLabel('')
        # self.result2 = QLabel('')
        # self.result3 = QLabel('')
        self.solarpanelcor = QLabel('WSPÓŁRZĘDNE PANELU SŁONECZNEGO: ')
        self.nameEdit = QLineEdit()
        self.nameEdit.setFixedHeight(28)
        self.nameEdit.setFixedWidth(386)
        self.nameEdit.setStatusTip(
            "Wprowadź nazwę dla konfiguracji współrzędnych i czasu")
        self.latitudeEdit = QLineEdit()
        self.latitudeEdit.setFixedHeight(28)
        self.latitudeEdit.setFixedWidth(386)
        self.latitudeEdit.setStatusTip(
            "Wprowadzona szerokość powinna być w stopniach dziesiętnych (np.: 51.100000)"
        )
        self.longitudeEdit = QLineEdit()
        self.longitudeEdit.setFixedHeight(28)
        self.longitudeEdit.setFixedWidth(386)
        self.longitudeEdit.setStatusTip(
            "Wprowadzona długość powinna być w stopniach dziesiętnych (np.: 17.03333)"
        )
        self.dateandtimeEdit = QLineEdit()
        self.dateandtimeEdit.setFixedHeight(28)
        self.dateandtimeEdit.setFixedWidth(386)
        self.dateandtimeEdit.setStatusTip(
            "Wprowadzona data powinna być w formacie: rok/mies/dzień<spacja>godz:min:sek (np.: 2022/12/4 8:12:7)"
        )
        self.button = QPushButton('Wylicz współrzędne / Przerwij liczenie',
                                  self)
        self.button.clicked.connect(self.handleButton4)
        self.name.setFont(font5)
        self.latitude.setFont(font5)
        self.longitude.setFont(font5)
        self.dateandtime.setFont(font5)
        self.button.setFont(font6)
        self.button.setStatusTip("Rozpoczyna Obliczenia")
        # self.button.addAction(self.buttonAct)
        # self.solarpanelcor.setFont(font5)
        # self.result.setFont(font6)
        # self.result2.setFont(font6)
        # self.result3.setFont(font6)
        self.vLayout3.addWidget(self.name)
        self.vLayout3.addWidget(self.nameEdit)
        self.vLayout3.addWidget(self.latitude)
        self.vLayout3.addWidget(self.latitudeEdit)
        self.vLayout3.addWidget(self.longitude)
        self.vLayout3.addWidget(self.longitudeEdit)
        self.vLayout3.addWidget(self.dateandtime)
        self.vLayout3.addWidget(self.dateandtimeEdit)
        self.vLayout3.addWidget(self.button)
        # self.vLayout3.addWidget(self.solarpanelcor)
        # self.vLayout3.addWidget(self.result)
        # self.vLayout3.addWidget(self.result2)
        # self.vLayout3.addWidget(self.result3)
        self.multiWidget3.setLayout(self.vLayout3)
        dock.setWidget(self.multiWidget3)
        self.addDockWidget(Qt.RightDockWidgetArea, dock)
        self.viewMenu.addAction(dock.toggleViewAction())
Beispiel #8
0
    def __init__(self, owner):
        super(self.__class__, self).__init__()
        Ui_BookInfo.__init__(self)
        self.setupUi(self)
        self.owner = weakref.ref(owner)
        self.loadingForm = QtLoading(self)
        self.bookId = ""
        self.url = ""
        self.path = ""
        self.bookName = ""
        self.lastEpsId = -1
        self.pictureData = None

        self.msgForm = QtBubbleLabel(self)
        self.picture.installEventFilter(self)
        self.title.setGeometry(QRect(328, 240, 329, 27 * 4))
        self.title.setWordWrap(True)
        self.title.setAlignment(Qt.AlignTop)
        self.title.setContextMenuPolicy(Qt.CustomContextMenu)
        self.title.customContextMenuRequested.connect(self.CopyTitle)

        # self.autor.setContextMenuPolicy(Qt.CustomContextMenu)
        # self.autor.customContextMenuRequested.connect(self.OpenAutor)

        layouy = self.horizontalLayout_4
        self.autorList = QtCategoryList(self)
        layouy.addWidget(QLabel("作者:"))
        layouy.addWidget(self.autorList)
        self.autorList.itemClicked.connect(self.ClickTagsItem)

        self.description.setContextMenuPolicy(Qt.CustomContextMenu)
        self.description.customContextMenuRequested.connect(
            self.CopyDescription)

        self.description.setGeometry(QRect(328, 240, 329, 27 * 4))
        self.description.setWordWrap(True)
        self.description.setAlignment(Qt.AlignTop)

        # self.categories.setGeometry(QRect(328, 240, 329, 27 * 4))
        # self.categories.setWordWrap(True)
        # self.categories.setAlignment(Qt.AlignTop)

        layouy = self.horizontalLayout_6
        self.categoriesList = QtCategoryList(self)
        layouy.addWidget(QLabel("分类:"))
        layouy.addWidget(self.categoriesList)
        self.categoriesList.itemClicked.connect(self.ClickCategoriesItem)

        # self.tags.setGeometry(QRect(328, 240, 329, 27 * 4))
        # self.tags.setWordWrap(True)
        # self.tags.setAlignment(Qt.AlignTop)

        layouy = self.horizontalLayout_7
        self.tagsList = QtCategoryList(self)
        layouy.addWidget(QLabel("Tags:"))
        layouy.addWidget(self.tagsList)
        self.tagsList.itemClicked.connect(self.ClickTagsItem)

        self.epsListWidget = QListWidget(self)
        self.epsListWidget.setFlow(self.epsListWidget.LeftToRight)
        self.epsListWidget.setWrapping(True)
        self.epsListWidget.setFrameShape(self.epsListWidget.NoFrame)
        self.epsListWidget.setResizeMode(self.epsListWidget.Adjust)

        self.epsLayout.addWidget(self.epsListWidget)

        self.listWidget = QtBookList(self, self.__class__.__name__)
        self.listWidget.InitUser(self.LoadNextPage)
        self.listWidget.doubleClicked.connect(self.OpenCommentInfo)

        self.childrenListWidget = QtBookList(None, self.__class__.__name__)
        self.childrenListWidget.InitUser(self.LoadChildrenNextPage)

        self.childrenWidget = QtWidgets.QWidget()
        layout = QHBoxLayout(self.childrenWidget)

        label = QLabel()
        label.setMinimumWidth(100)
        layout.addWidget(label)
        layout3 = QVBoxLayout()

        layout2 = QHBoxLayout()
        self.commentLine2 = QLineEdit()
        self.commentButton2 = QPushButton("回复")
        self.commentButton2.clicked.connect(self.SendCommentChildren)
        layout2.addWidget(self.commentLine2)
        layout2.addWidget(self.commentButton2)
        layout3.addLayout(layout2)
        layout3.addWidget(self.childrenListWidget)
        layout.addLayout(layout3)

        self.commentLayout.addWidget(self.listWidget)
        layout = QHBoxLayout()
        self.commentLine = QLineEdit()
        layout.addWidget(self.commentLine)
        self.commentButton = QPushButton("发送评论")
        layout.addWidget(self.commentButton)
        self.commentLayout.addLayout(layout, 1, 0)
        self.commentButton.clicked.connect(self.SendComment)

        # self.stackedWidget.addWidget(self.qtReadImg)
        self.epsListWidget.clicked.connect(self.OpenReadImg)

        self.closeFlag = self.__class__.__name__ + "-close"  # 切换book时,取消加载
Beispiel #9
0
    def __init__(
        self,
        patient_name: str,
        measurements: List[Measurement],
        predictions: List[Prediction],
    ):
        QWidget.__init__(self)
        self.colors = [
            "tab:blue",
            "tab:orange",
            "tab:green",
            "tab:red",
            "tab:purple",
            "tab:brown",
            "tab:pink",
            "tab:gray",
            "tab:olive",
            "tab:cyan",
        ]
        self.setWindowTitle("Widok predykcji")
        self.resize(1500, 800)

        self.measurements = measurements
        self.predictions = predictions

        logging.debug("Predictions number: %d", len(self.predictions))

        self.canvas = FigureCanvas(Figure(figsize=(5, 3)))

        self.layout = QVBoxLayout(self)
        self.layout.addWidget(self.canvas)
        self.layout.addWidget(NavigationToolbar(self.canvas, self))

        self.axes = self.canvas.figure.subplots()

        measurements_dates = [m.date for m in self.measurements]
        first_date = min(measurements_dates)
        measurements_values = [m.value for m in self.measurements]

        def augment_data():
            measurement_offsets = [
                date_to_offset(first_date, d) for d in measurements_dates
            ]
            offset_values = [*zip(measurement_offsets, measurements_values)]
            dense_offsets, dense_values = interpolate_missing_days(
                offset_values)
            dense_dates = [
                offset_to_date(first_date, o) for o in dense_offsets
            ]
            dense_data = [(d, v) for (d, v) in zip(dense_dates, dense_values)
                          if d not in measurements_dates]
            dense_dates, dense_values = unzip(dense_data)
            return dense_dates, dense_values

        diffs = [d2 - d1 for d1, d2 in pairwise(measurements_dates)]
        frequency = sum(diffs, datetime.timedelta(days=0)) / len(diffs)

        dense_dates, dense_values = (
            augment_data() if frequency > datetime.timedelta(days=1) else
            ([], []))
        self.axes.plot(
            dense_dates,
            dense_values,
            "c",
            markersize=8,
            label="Pomiary zaugmentowane",
        )
        self.axes.plot(
            measurements_dates,
            measurements_values,
            "k.",
            markersize=12,
            label="Pomiary",
        )
        self.axes.set_title(f"Rozwój nowotworu pacjent-a {patient_name}")
        for prediction in self.predictions:
            color = self.colors.pop()
            dates = [pv.date for pv in prediction.prediction_values]
            prediction_values = [
                pv.value for pv in prediction.prediction_values
            ]
            self.axes.plot(
                dates,
                prediction_values,
                ".",
                markersize=4,
                color=color,
                label=
                f"id{prediction.db_id} {prediction.method} {prediction.datetime_created.strftime(DATETIME_FORMAT)}",
            )
        self.axes.legend()
Beispiel #10
0
    def __init__(self, name: str, parent: QWidget = None):
        QFrame.__init__(self, parent)

        self.setFrameShape(QFrame.Shape(QFrame.Sunken | QFrame.StyledPanel))
        self.graphicsView = GraphicsView(self)
        self.graphicsView.setRenderHint(QPainter.Antialiasing, False)
        self.graphicsView.setDragMode(QGraphicsView.RubberBandDrag)
        self.graphicsView.setOptimizationFlag(
            QGraphicsView.DontSavePainterState)
        self.graphicsView.setViewportUpdateMode(
            QGraphicsView.SmartViewportUpdate)
        self.graphicsView.setTransformationAnchor(
            QGraphicsView.AnchorUnderMouse)

        size = self.style().pixelMetric(QStyle.PM_ToolBarIconSize)
        iconSize = QSize(size, size)

        self.zoomInIcon = QToolButton()
        self.zoomInIcon.setAutoRepeat(True)
        self.zoomInIcon.setAutoRepeatInterval(33)
        self.zoomInIcon.setAutoRepeatDelay(0)
        self.zoomInIcon.setIcon(QIcon(":/zoomin.png"))
        self.zoomInIcon.setIconSize(iconSize)
        self.zoomOutIcon = QToolButton()
        self.zoomOutIcon.setAutoRepeat(True)
        self.zoomOutIcon.setAutoRepeatInterval(33)
        self.zoomOutIcon.setAutoRepeatDelay(0)
        self.zoomOutIcon.setIcon(QIcon(":/zoomout.png"))
        self.zoomOutIcon.setIconSize(iconSize)
        self.zoomSlider = QSlider()
        self.zoomSlider.setMinimum(0)
        self.zoomSlider.setMaximum(500)
        self.zoomSlider.setValue(250)
        self.zoomSlider.setTickPosition(QSlider.TicksRight)

        # Zoom slider layout
        zoomSliderLayout = QVBoxLayout()
        zoomSliderLayout.addWidget(self.zoomInIcon)
        zoomSliderLayout.addWidget(self.zoomSlider)
        zoomSliderLayout.addWidget(self.zoomOutIcon)

        self.rotateLeftIcon = QToolButton()
        self.rotateLeftIcon.setIcon(QIcon(":/rotateleft.png"))
        self.rotateLeftIcon.setIconSize(iconSize)
        self.rotateRightIcon = QToolButton()
        self.rotateRightIcon.setIcon(QIcon(":/rotateright.png"))
        self.rotateRightIcon.setIconSize(iconSize)
        self.rotateSlider = QSlider()
        self.rotateSlider.setOrientation(Qt.Horizontal)
        self.rotateSlider.setMinimum(-360)
        self.rotateSlider.setMaximum(360)
        self.rotateSlider.setValue(0)
        self.rotateSlider.setTickPosition(QSlider.TicksBelow)

        # Rotate slider layout
        rotateSliderLayout = QHBoxLayout()
        rotateSliderLayout.addWidget(self.rotateLeftIcon)
        rotateSliderLayout.addWidget(self.rotateSlider)
        rotateSliderLayout.addWidget(self.rotateRightIcon)

        self.resetButton = QToolButton()
        self.resetButton.setText(self.tr("0"))
        self.resetButton.setEnabled(False)

        # Label layout
        labelLayout = QHBoxLayout()
        self.label = QLabel(name)
        self.label2 = QLabel(self.tr("Pointer Mode"))
        self.selectModeButton = QToolButton()
        self.selectModeButton.setText(self.tr("Select"))
        self.selectModeButton.setCheckable(True)
        self.selectModeButton.setChecked(True)
        self.dragModeButton = QToolButton()
        self.dragModeButton.setText(self.tr("Drag"))
        self.dragModeButton.setCheckable(True)
        self.dragModeButton.setChecked(False)
        self.antialiasButton = QToolButton()
        self.antialiasButton.setText(self.tr("Antialiasing"))
        self.antialiasButton.setCheckable(True)
        self.antialiasButton.setChecked(False)
        self.openGlButton = QToolButton()
        self.openGlButton.setText(self.tr("OpenGL"))
        self.openGlButton.setCheckable(True)
        self.openGlButton.setEnabled(QGLFormat.hasOpenGL())
        self.printButton = QToolButton()
        self.printButton.setIcon(QIcon(":/fileprint.png"))

        pointerModeGroup = QButtonGroup(self)
        pointerModeGroup.setExclusive(True)
        pointerModeGroup.addButton(self.selectModeButton)
        pointerModeGroup.addButton(self.dragModeButton)

        labelLayout.addWidget(self.label)
        labelLayout.addStretch()
        labelLayout.addWidget(self.label2)
        labelLayout.addWidget(self.selectModeButton)
        labelLayout.addWidget(self.dragModeButton)
        labelLayout.addStretch()
        labelLayout.addWidget(self.antialiasButton)
        labelLayout.addWidget(self.openGlButton)
        labelLayout.addWidget(self.printButton)

        topLayout = QGridLayout()
        topLayout.addLayout(labelLayout, 0, 0)
        topLayout.addWidget(self.graphicsView, 1, 0)
        topLayout.addLayout(zoomSliderLayout, 1, 1)
        topLayout.addLayout(rotateSliderLayout, 2, 0)
        topLayout.addWidget(self.resetButton, 2, 1)
        self.setLayout(topLayout)

        self.resetButton.clicked.connect(self.resetView)
        self.zoomSlider.valueChanged.connect(self.setupMatrix)
        self.rotateSlider.valueChanged.connect(self.setupMatrix)
        self.graphicsView.verticalScrollBar().valueChanged.connect(
            self.setResetButtonEnabled)
        self.graphicsView.horizontalScrollBar().valueChanged.connect(
            self.setResetButtonEnabled)
        self.selectModeButton.toggled.connect(self.togglePointerMode)
        self.dragModeButton.toggled.connect(self.togglePointerMode)
        self.antialiasButton.toggled.connect(self.toggleAntialiasing)
        self.openGlButton.toggled.connect(self.toggleOpenGL)
        self.rotateLeftIcon.clicked.connect(self.rotateLeft)
        self.rotateRightIcon.clicked.connect(self.rotateRight)
        self.zoomInIcon.clicked.connect(self.zoomIn)
        self.zoomOutIcon.clicked.connect(self.zoomOut)
        self.printButton.clicked.connect(self.print)

        self.setupMatrix()
Beispiel #11
0
    def __init__(self, parent=None):
        super(Snippets, self).__init__(parent)
        # Create widgets
        self.setWindowModality(Qt.ApplicationModal)
        self.title = QLabel(self.tr("Snippet Editor"))
        self.saveButton = QPushButton(self.tr("Save"))
        self.revertButton = QPushButton(self.tr("Revert"))
        self.clearHotkeyButton = QPushButton(self.tr("Clear Hotkey"))
        self.setWindowTitle(self.title.text())
        self.newFolderButton = QPushButton("New Folder")
        self.deleteSnippetButton = QPushButton("Delete")
        self.newSnippetButton = QPushButton("New Snippet")
        self.edit = QPlainTextEdit()
        self.resetting = False
        self.columns = 3

        self.keySequenceEdit = QKeySequenceEdit(self)
        self.currentHotkey = QKeySequence()
        self.currentHotkeyLabel = QLabel("")
        self.currentFileLabel = QLabel()
        self.currentFile = ""
        self.snippetDescription = QLineEdit()
        self.snippetEditsPending = False

        self.clearSelection()

        #Set Editbox Size
        font = getMonospaceFont(self)
        self.edit.setFont(font)
        font = QFontMetrics(font)
        self.edit.setTabStopWidth(4 * font.width(' '))
        #TODO, replace with settings API

        #Files
        self.files = QFileSystemModel()
        self.files.setRootPath(snippetPath)
        self.files.setNameFilters(["*.py"])

        #Tree
        self.tree = QTreeView()
        self.tree.setModel(self.files)
        self.tree.setSortingEnabled(True)
        self.tree.hideColumn(2)
        self.tree.sortByColumn(0, Qt.AscendingOrder)
        self.tree.setRootIndex(self.files.index(snippetPath))
        for x in range(self.columns):
            #self.tree.resizeColumnToContents(x)
            self.tree.header().setSectionResizeMode(
                x, QHeaderView.ResizeToContents)
        treeLayout = QVBoxLayout()
        treeLayout.addWidget(self.tree)
        treeButtons = QHBoxLayout()
        treeButtons.addWidget(self.newFolderButton)
        treeButtons.addWidget(self.newSnippetButton)
        treeButtons.addWidget(self.deleteSnippetButton)
        treeLayout.addLayout(treeButtons)
        treeWidget = QWidget()
        treeWidget.setLayout(treeLayout)

        # Create layout and add widgets
        buttons = QHBoxLayout()
        buttons.addWidget(self.clearHotkeyButton)
        buttons.addWidget(self.keySequenceEdit)
        buttons.addWidget(self.currentHotkeyLabel)
        buttons.addWidget(self.revertButton)
        buttons.addWidget(self.saveButton)

        description = QHBoxLayout()
        description.addWidget(QLabel(self.tr("Description: ")))
        description.addWidget(self.snippetDescription)

        vlayoutWidget = QWidget()
        vlayout = QVBoxLayout()
        vlayout.addWidget(self.currentFileLabel)
        vlayout.addWidget(self.edit)
        vlayout.addLayout(description)
        vlayout.addLayout(buttons)
        vlayoutWidget.setLayout(vlayout)

        hsplitter = QSplitter()
        hsplitter.addWidget(treeWidget)
        hsplitter.addWidget(vlayoutWidget)

        hlayout = QHBoxLayout()
        hlayout.addWidget(hsplitter)

        self.showNormal()  #Fixes bug that maximized windows are "stuck"
        self.settings = QSettings("Vector 35", "Snippet Editor")
        if self.settings.contains("ui/snippeteditor/geometry"):
            self.restoreGeometry(
                self.settings.value("ui/snippeteditor/geometry"))
        else:
            self.edit.setMinimumWidth(80 * font.averageCharWidth())
            self.edit.setMinimumHeight(30 * font.lineSpacing())

        # Set dialog layout
        self.setLayout(hlayout)

        # Add signals
        self.saveButton.clicked.connect(self.save)
        self.revertButton.clicked.connect(self.loadSnippet)
        self.clearHotkeyButton.clicked.connect(self.clearHotkey)
        self.tree.selectionModel().selectionChanged.connect(self.selectFile)
        self.newSnippetButton.clicked.connect(self.newFileDialog)
        self.deleteSnippetButton.clicked.connect(self.deleteSnippet)
        self.newFolderButton.clicked.connect(self.newFolder)

        #Read-only until new snippet
        self.readOnly(True)
Beispiel #12
0
    def init_ui(self):
        dir_path = os.path.dirname(os.path.realpath(__file__))
        file_location = dir_path + "/resources/gandalf_icon_256px.png"
        self.icon_pixmap = QPixmap(file_location)
        self.icon = QIcon(self.icon_pixmap)
        self.setWindowIcon(self.icon)
        self.setWindowIconText("Gandalf Enjoys Music")

        self.central = QWidget(self)
        self.setCentralWidget(self.central)
        self.layout = QVBoxLayout()

        self.lock_checkbox = QCheckBox("Manual tempo", self)
        self.lock_checkbox.clicked.connect(self.update_lock_checkbox)

        self.limit_layout = QVBoxLayout()
        self.limit_checkbox = QCheckBox("Limit tempo between:", self)
        self.limit_checkbox.setChecked(self.limit_tempo_by_default)
        self.limit_checkbox.clicked.connect(self.update_bpm_manually)

        self.init_video()

        if self.show_video_preview:
            self.setFixedSize(QSize(500, 350))
            self.layout.addWidget(self.video_widget)
        else:
            self.setFixedSize(500, 100)
            self.fullscreen_button = QPushButton(self)
            self.fullscreen_button.setText("Go Fullscreen")
            self.layout.addWidget(self.fullscreen_button)
            self.fullscreen_button.clicked.connect(self.show_fullscreen)
            self.video_widget.fullscreen_changed.connect(
                self.update_button_text)

        self.video_widget.fullscreen_changed.connect(
            self.reset_video_position
        )

        self.tempo_control_layout = QVBoxLayout()
        self.tempo_control_layout.addWidget(self.lock_checkbox)

        self.set_bpm_widget = QLineEdit("{:.1f}".format(self.old_bpm), self)
        self.set_bpm_widget.setMaxLength(5)
        self.set_bpm_widget.returnPressed.connect(self.update_bpm_manually)
        self.set_bpm_palette = QPalette()
        self.set_bpm_palette.setColor(QPalette.Text, Qt.gray)
        self.set_bpm_widget.setPalette(self.set_bpm_palette)
        self.set_bpm_widget.setFixedWidth(50)
        self.tempo_control_layout.addWidget(self.set_bpm_widget)

        self.limit_layout.addWidget(self.limit_checkbox)

        self.limits = QHBoxLayout()

        self.lower_bpm_widget = QLineEdit(str(self.tempo_lower_limit), self)
        self.lower_bpm_widget.setMaxLength(5)
        self.lower_bpm_widget.returnPressed.connect(self.update_lower_limit)
        self.lower_bpm_widget.setFixedWidth(50)
        self.limits.addWidget(self.lower_bpm_widget)

        self.upper_bpm_widget = QLineEdit(str(self.tempo_upper_limit), self)
        self.upper_bpm_widget.setMaxLength(5)
        self.upper_bpm_widget.returnPressed.connect(self.update_upper_limit)
        self.upper_bpm_widget.setFixedWidth(50)
        self.limits.addWidget(self.upper_bpm_widget)
        self.limit_layout.addLayout(self.limits)

        self.control_layout = QHBoxLayout()
        self.control_layout.addLayout(self.tempo_control_layout)
        self.control_layout.addLayout(self.limit_layout)

        self.save_settings_button = QPushButton("Save settings", self)
        self.save_settings_button.clicked.connect(self.save_config)
        self.control_layout.addWidget(self.save_settings_button)

        self.layout.addLayout(self.control_layout)

        self.device_layout = QHBoxLayout()
        self.audio_select_label = QLabel("Audio device:", self)
        self.device_layout.addWidget(self.audio_select_label)

        self.audio_selection = QComboBox(self)
        self.audio_selection.addItems(self.input_devices)
        self.audio_selection.currentIndexChanged.connect(self.audio_selection_changed)
        self.device_layout.addWidget(self.audio_selection)

        self.layout.addLayout(self.device_layout)

        self.central.setLayout(self.layout)
    def __init__(self, parent=None):
        super().__init__(parent)
        self.player = FE14ConversationPlayer()
        self.visual_splitter_1 = QFrame()
        self.visual_splitter_1.setFrameShape(QFrame.HLine)
        self.visual_splitter_1.setFrameShadow(QFrame.Sunken)

        self.buttons_layout = QHBoxLayout()
        self.buttons_layout.setAlignment(QtGui.Qt.AlignCenter)
        self.save_button = QPushButton(text="Save")
        self.preview_button = QPushButton("Preview")
        self.buttons_layout.addWidget(self.save_button)
        self.buttons_layout.addWidget(self.preview_button)
        self.visual_splitter_2 = QFrame()
        self.visual_splitter_2.setFrameShape(QFrame.HLine)
        self.visual_splitter_2.setFrameShadow(QFrame.Sunken)

        self.avatar_form = QFormLayout()
        self.avatar_name_editor = QLineEdit()
        self.avatar_is_female_check = QCheckBox()
        self.avatar_form.addRow("Avatar Name", self.avatar_name_editor)
        self.avatar_form.addRow("Avatar Is Female", self.avatar_is_female_check)

        self.visual_splitter_3 = QFrame()
        self.visual_splitter_3.setFrameShape(QFrame.HLine)
        self.visual_splitter_3.setFrameShadow(QFrame.Sunken)

        self.conversation_list = QListView()

        self.left_layout = QVBoxLayout()
        self.left_layout.addWidget(self.player)
        self.left_layout.addWidget(self.visual_splitter_1)
        self.left_layout.addLayout(self.buttons_layout)
        self.left_layout.addWidget(self.visual_splitter_2)
        self.left_layout.addLayout(self.avatar_form)
        self.left_layout.addWidget(self.visual_splitter_3)
        self.left_layout.addWidget(self.conversation_list)
        self.left_layout.setStretch(0, 0)
        self.left_layout.setStretch(1, 0)
        self.left_layout.setStretch(2, 0)
        self.left_layout.setStretch(3, 0)
        self.left_layout.setStretch(4, 0)
        self.left_layout.setStretch(5, 0)
        self.left_layout.setStretch(6, 1)

        self.text_area = FE14ConversationTextEdit()

        self.main_layout = QHBoxLayout()
        self.main_layout.addLayout(self.left_layout)
        self.main_layout.addWidget(self.text_area)
        self.main_layout.setStretch(0, 0)
        self.main_layout.setStretch(1, 1)

        self.central_widget = QWidget()
        self.central_widget.setLayout(self.main_layout)
        self.tool_bar = QToolBar()
        self.addToolBar(self.tool_bar)
        self.setCentralWidget(self.central_widget)
        self.status = QStatusBar()
        self.setStatusBar(self.status)
        self.resize(900, 500)
Beispiel #14
0
    def _create_dock_windows(self):
        """Create dock windows and connects them to gui."""
        def _make_dock(name, widgets=[], tab_with=None):
            dock = QDockWidget(name)

            dock.setAllowedAreas(Qt.LeftDockWidgetArea
                                 | Qt.RightDockWidgetArea)

            dock_widget = QWidget()
            layout = QVBoxLayout()

            for widget in widgets:
                layout.addWidget(widget)

            dock_widget.setLayout(layout)
            dock.setWidget(dock_widget)

            key = f"hide {name.lower()} dock"
            if key in prefs and prefs[key]:
                dock.hide()

            self.addDockWidget(Qt.RightDockWidgetArea, dock)
            self.viewMenu.addAction(dock.toggleViewAction())

            if tab_with is not None:
                self.tabifyDockWidget(tab_with, dock)

            return layout

        def _add_button(to, label, action, key=None):
            key = key or label.lower()
            btn = QPushButton(label)
            btn.clicked.connect(action)
            to.addWidget(btn)
            self._buttons[key] = btn
            return btn

        ####### Videos #######
        videos_layout = _make_dock("Videos")
        self.videosTable = GenericTableView(
            state=self.state,
            row_name="video",
            is_activatable=True,
            model=VideosTableModel(items=self.labels.videos,
                                   context=self.commands),
        )
        videos_layout.addWidget(self.videosTable)

        hb = QHBoxLayout()
        _add_button(hb, "Show Video", self.videosTable.activateSelected)
        _add_button(hb, "Add Videos", self.commands.addVideo)
        _add_button(hb, "Remove Video", self.commands.removeVideo)

        hbw = QWidget()
        hbw.setLayout(hb)
        videos_layout.addWidget(hbw)

        ####### Skeleton #######
        skeleton_layout = _make_dock("Skeleton",
                                     tab_with=videos_layout.parent().parent())

        gb = QGroupBox("Nodes")
        vb = QVBoxLayout()
        self.skeletonNodesTable = GenericTableView(
            state=self.state,
            row_name="node",
            model=SkeletonNodesTableModel(items=self.state["skeleton"],
                                          context=self.commands),
        )

        vb.addWidget(self.skeletonNodesTable)
        hb = QHBoxLayout()
        _add_button(hb, "New Node", self.commands.newNode)
        _add_button(hb, "Delete Node", self.commands.deleteNode)

        hbw = QWidget()
        hbw.setLayout(hb)
        vb.addWidget(hbw)
        gb.setLayout(vb)
        skeleton_layout.addWidget(gb)

        def _update_edge_src():
            self.skeletonEdgesDst.model().skeleton = self.state["skeleton"]

        gb = QGroupBox("Edges")
        vb = QVBoxLayout()
        self.skeletonEdgesTable = GenericTableView(
            state=self.state,
            row_name="edge",
            model=SkeletonEdgesTableModel(items=self.state["skeleton"],
                                          context=self.commands),
        )

        vb.addWidget(self.skeletonEdgesTable)
        hb = QHBoxLayout()
        self.skeletonEdgesSrc = QComboBox()
        self.skeletonEdgesSrc.setEditable(False)
        self.skeletonEdgesSrc.currentIndexChanged.connect(_update_edge_src)
        self.skeletonEdgesSrc.setModel(
            SkeletonNodeModel(self.state["skeleton"]))
        hb.addWidget(self.skeletonEdgesSrc)
        hb.addWidget(QLabel("to"))
        self.skeletonEdgesDst = QComboBox()
        self.skeletonEdgesDst.setEditable(False)
        hb.addWidget(self.skeletonEdgesDst)
        self.skeletonEdgesDst.setModel(
            SkeletonNodeModel(self.state["skeleton"],
                              lambda: self.skeletonEdgesSrc.currentText()))

        def new_edge():
            src_node = self.skeletonEdgesSrc.currentText()
            dst_node = self.skeletonEdgesDst.currentText()
            self.commands.newEdge(src_node, dst_node)

        _add_button(hb, "Add Edge", new_edge)
        _add_button(hb, "Delete Edge", self.commands.deleteEdge)

        hbw = QWidget()
        hbw.setLayout(hb)
        vb.addWidget(hbw)
        gb.setLayout(vb)
        skeleton_layout.addWidget(gb)

        hb = QHBoxLayout()
        _add_button(hb, "Load Skeleton", self.commands.openSkeleton)
        _add_button(hb, "Save Skeleton", self.commands.saveSkeleton)

        hbw = QWidget()
        hbw.setLayout(hb)
        skeleton_layout.addWidget(hbw)

        ####### Instances #######
        instances_layout = _make_dock("Instances")
        self.instancesTable = GenericTableView(
            state=self.state,
            row_name="instance",
            name_prefix="",
            model=LabeledFrameTableModel(items=self.state["labeled_frame"],
                                         context=self.commands),
        )
        instances_layout.addWidget(self.instancesTable)

        hb = QHBoxLayout()
        _add_button(hb, "New Instance", lambda x: self.commands.newInstance())
        _add_button(hb, "Delete Instance",
                    self.commands.deleteSelectedInstance)

        hbw = QWidget()
        hbw.setLayout(hb)
        instances_layout.addWidget(hbw)

        ####### Suggestions #######
        suggestions_layout = _make_dock("Labeling Suggestions")
        self.suggestionsTable = GenericTableView(
            state=self.state,
            is_sortable=True,
            model=SuggestionsTableModel(items=self.labels.suggestions,
                                        context=self.commands),
        )

        suggestions_layout.addWidget(self.suggestionsTable)

        hb = QHBoxLayout()

        _add_button(
            hb,
            "Prev",
            self.process_events_then(self.commands.prevSuggestedFrame),
            "goto previous suggestion",
        )

        self.suggested_count_label = QLabel()
        hb.addWidget(self.suggested_count_label)

        _add_button(
            hb,
            "Next",
            self.process_events_then(self.commands.nextSuggestedFrame),
            "goto next suggestion",
        )

        hbw = QWidget()
        hbw.setLayout(hb)
        suggestions_layout.addWidget(hbw)

        self.suggestions_form_widget = YamlFormWidget.from_name(
            "suggestions",
            title="Generate Suggestions",
        )
        self.suggestions_form_widget.mainAction.connect(
            self.process_events_then(self.commands.generateSuggestions))
        suggestions_layout.addWidget(self.suggestions_form_widget)

        def goto_suggestion(*args):
            selected_frame = self.suggestionsTable.getSelectedRowItem()
            self.commands.gotoVideoAndFrame(selected_frame.video,
                                            selected_frame.frame_idx)

        self.suggestionsTable.doubleClicked.connect(goto_suggestion)

        self.state.connect("suggestion_idx", self.suggestionsTable.selectRow)
Beispiel #15
0
    def __init__(self):
        QWidget.__init__(self)
        self.items = 0

        # Example data
        self._data = {
            "Water": 24.5,
            "Electricity": 55.1,
            "Rent": 850.0,
            "Supermarket": 230.4,
            "Internet": 29.99,
            "Bars": 21.85,
            "Public transportation": 60.0,
            "Coffee": 22.45,
            "Restaurants": 120
        }

        # Left
        self.table = QTableWidget()
        self.table.column_count = 2
        self.table.horizontal_header_labels = ["Description", "Price"]
        self.table.horizontal_header(
        ).section_resize_mode = QHeaderView.Stretch

        # Chart
        self.chart_view = QtCharts.QChartView()
        self.chart_view.render_hint = QPainter.Antialiasing

        # Right
        self.description = QLineEdit()
        self.price = QLineEdit()
        self.add = QPushButton("Add")
        self.clear = QPushButton("Clear")
        self.quit = QPushButton("Quit")
        self.plot = QPushButton("Plot")

        # Disabling 'Add' button
        self.add.enabled = False

        self.right = QVBoxLayout()

        self.right.contents_margins = QMargins(10, 10, 10, 10)
        self.right.add_widget(QLabel("Description"))
        self.right.add_widget(self.description)
        self.right.add_widget(QLabel("Price"))
        self.right.add_widget(self.price)
        self.right.add_widget(self.add)
        self.right.add_widget(self.plot)
        self.right.add_widget(self.chart_view)
        self.right.add_widget(self.clear)
        self.right.add_widget(self.quit)

        # QWidget Layout
        self.layout = QHBoxLayout()

        #self.table_view.setSizePolicy(size)
        self.layout.add_widget(self.table)
        self.layout.add_layout(self.right)

        # Set the layout to the QWidget
        self.set_layout(self.layout)

        # Signals and Slots
        self.add.clicked.connect(self.add_element)
        self.quit.clicked.connect(self.quit_application)
        self.plot.clicked.connect(self.plot_data)
        self.clear.clicked.connect(self.clear_table)
        self.description.textChanged[str].connect(self.check_disable)
        self.price.textChanged[str].connect(self.check_disable)

        # Fill example data
        self.fill_table()
Beispiel #16
0
    def __init__(self, targetImage=None, axeSize=500, layer=None, parent=None):
        super().__init__(layer=layer, targetImage=targetImage, parent=parent)
        self.setMinimumSize(axeSize, axeSize + 100)
        # contrast spline viewer
        self.contrastForm = None
        # options
        optionList1, optionNames1 = ['Multi-Mode',
                                     'CLAHE'], ['Multi-Mode', 'CLAHE']
        self.listWidget1 = optionsWidget(options=optionList1,
                                         optionNames=optionNames1,
                                         exclusive=True,
                                         changed=self.dataChanged)
        self.listWidget1.checkOption(self.listWidget1.intNames[0])
        optionList2, optionNames2 = ['High', 'manualCurve'], [
            'Preserve Highlights', 'Show Contrast Curve'
        ]

        def optionList2Change(item):
            if item.internalName == 'High':
                # force to recalculate the spline
                self.layer.autoSpline = True
            self.dataChanged.emit()

        self.listWidget2 = optionsWidget(options=optionList2,
                                         optionNames=optionNames2,
                                         exclusive=False,
                                         changed=optionList2Change)
        self.listWidget2.checkOption(self.listWidget2.intNames[0])
        self.options = UDict(
            (self.listWidget1.options, self.listWidget2.options))

        # contrast slider
        self.sliderContrast = QbLUeSlider(Qt.Horizontal)
        self.sliderContrast.setStyleSheet(
            QbLUeSlider.bLueSliderDefaultIBWStylesheet)
        self.sliderContrast.setRange(0, 10)
        self.sliderContrast.setSingleStep(1)

        contrastLabel = QbLUeLabel()
        contrastLabel.setMaximumSize(150, 30)
        contrastLabel.setText("Contrast Level")
        contrastLabel.doubleClicked.connect(
            lambda: self.sliderContrast.setValue(
                self.contrast2Slider(self.contrastDefault)))

        self.contrastValue = QLabel()
        font = self.contrastValue.font()
        metrics = QFontMetrics(font)
        w = metrics.width("100")
        h = metrics.height()
        self.contrastValue.setMinimumSize(w, h)
        self.contrastValue.setMaximumSize(w, h)
        self.contrastValue.setText(
            str("{:d}".format(self.sliderContrast.value())))

        # contrast changed  event handler.
        def contrastUpdate(value):
            self.contrastValue.setText(
                str("{:d}".format(self.sliderContrast.value())))
            # move not yet terminated or value not modified
            if self.sliderContrast.isSliderDown() or self.slider2Contrast(
                    value) == self.contrastCorrection:
                return
            self.sliderContrast.valueChanged.disconnect()
            self.sliderContrast.sliderReleased.disconnect()
            self.contrastCorrection = self.slider2Contrast(
                self.sliderContrast.value())
            # force to recalculate the spline
            self.layer.autoSpline = True
            self.dataChanged.emit()
            self.sliderContrast.valueChanged.connect(contrastUpdate)
            self.sliderContrast.sliderReleased.connect(
                lambda: contrastUpdate(self.sliderContrast.value()))

        self.sliderContrast.valueChanged.connect(contrastUpdate)
        self.sliderContrast.sliderReleased.connect(
            lambda: contrastUpdate(self.sliderContrast.value()))

        # saturation slider
        self.sliderSaturation = QbLUeSlider(Qt.Horizontal)
        self.sliderSaturation.setStyleSheet(
            QbLUeSlider.bLueSliderDefaultColorStylesheet)
        self.sliderSaturation.setRange(0, 100)
        self.sliderSaturation.setSingleStep(1)

        saturationLabel = QbLUeLabel()
        saturationLabel.setMaximumSize(150, 30)
        saturationLabel.setText("Saturation")
        saturationLabel.doubleClicked.connect(
            lambda: self.sliderSaturation.setValue(
                self.saturation2Slider(self.saturationDefault)))

        self.saturationValue = QLabel()
        font = self.saturationValue.font()
        metrics = QFontMetrics(font)
        w = metrics.width("100")
        h = metrics.height()
        self.saturationValue.setMinimumSize(w, h)
        self.saturationValue.setMaximumSize(w, h)
        self.saturationValue.setText(
            str("{:+d}".format(self.sliderContrast.value())))

        # saturation changed  event handler
        def saturationUpdate(value):
            self.saturationValue.setText(
                str("{:+d}".format(
                    int(
                        self.slidersaturation2User(
                            self.sliderSaturation.value())))))
            # move not yet terminated or value not modified
            if self.sliderSaturation.isSliderDown() or self.slider2Saturation(
                    value) == self.satCorrection:
                return
            self.sliderSaturation.valueChanged.disconnect()
            self.sliderSaturation.sliderReleased.disconnect()
            self.satCorrection = self.slider2Saturation(
                self.sliderSaturation.value())
            self.dataChanged.emit()
            self.sliderSaturation.valueChanged.connect(saturationUpdate)
            self.sliderSaturation.sliderReleased.connect(
                lambda: saturationUpdate(self.sliderSaturation.value()))

        self.sliderSaturation.valueChanged.connect(saturationUpdate)
        self.sliderSaturation.sliderReleased.connect(
            lambda: saturationUpdate(self.sliderSaturation.value()))

        # brightness slider
        self.sliderBrightness = QbLUeSlider(Qt.Horizontal)
        self.sliderBrightness.setStyleSheet(
            QbLUeSlider.bLueSliderDefaultBWStylesheet)
        self.sliderBrightness.setRange(0, 100)
        self.sliderBrightness.setSingleStep(1)

        brightnessLabel = QbLUeLabel()
        brightnessLabel.setMaximumSize(150, 30)
        brightnessLabel.setText("Brightness")
        brightnessLabel.doubleClicked.connect(
            lambda: self.sliderBrightness.setValue(
                self.brightness2Slider(self.brightnessDefault)))

        self.brightnessValue = QLabel()
        font = self.brightnessValue.font()
        metrics = QFontMetrics(font)
        w = metrics.width("100")
        h = metrics.height()
        self.brightnessValue.setMinimumSize(w, h)
        self.brightnessValue.setMaximumSize(w, h)
        self.brightnessValue.setText(
            str("{:+d}".format(self.sliderContrast.value())))

        # brightness changed  event handler
        def brightnessUpdate(value):
            self.brightnessValue.setText(
                str("{:+d}".format(
                    int(
                        self.sliderBrightness2User(
                            self.sliderBrightness.value())))))
            # move not yet terminated or value not modified
            if self.sliderBrightness.isSliderDown() or self.slider2Brightness(
                    value) == self.brightnessCorrection:
                return
            self.sliderBrightness.valueChanged.disconnect()
            self.sliderBrightness.sliderReleased.disconnect()
            self.brightnessCorrection = self.slider2Brightness(
                self.sliderBrightness.value())
            self.dataChanged.emit()
            self.sliderBrightness.valueChanged.connect(brightnessUpdate)
            self.sliderBrightness.sliderReleased.connect(
                lambda: brightnessUpdate(self.sliderBrightness.value()))

        self.sliderBrightness.valueChanged.connect(brightnessUpdate)
        self.sliderBrightness.sliderReleased.connect(
            lambda: brightnessUpdate(self.sliderBrightness.value()))

        # attributes initialized in setDefaults, declared here
        # for the sake of correctness
        self.contrastCorrection = None  # range
        self.satCorrection = None  # range -0.5..0.5
        self.brightnessCorrection = None  # range -0.5..0.5

        # layout
        l = QVBoxLayout()
        l.setAlignment(Qt.AlignTop)
        gb1 = QGroupBox()
        gb1.setTitle('Contrast')
        l1 = QVBoxLayout()
        l1.setAlignment(Qt.AlignTop)
        l1.addWidget(self.listWidget1)
        gb1.setLayout(l1)
        l.addWidget(gb1)
        l.addWidget(self.listWidget2)
        l.addWidget(contrastLabel)
        hl = QHBoxLayout()
        hl.addWidget(self.contrastValue)
        hl.addWidget(self.sliderContrast)
        l.addLayout(hl)
        l.addWidget(brightnessLabel)
        hl3 = QHBoxLayout()
        hl3.addWidget(self.brightnessValue)
        hl3.addWidget(self.sliderBrightness)
        l.addLayout(hl3)
        l.addWidget(saturationLabel)
        hl2 = QHBoxLayout()
        hl2.addWidget(self.saturationValue)
        hl2.addWidget(self.sliderSaturation)
        l.addLayout(hl2)
        l.addStretch(1)
        self.setLayout(l)
        self.adjustSize()
        self.setDefaults()
        self.setWhatsThis("""<b>Contrast Brightness Saturation</b><br>
            <b>Contrast</b> is enhanced using one of these two methods:<br>
              - <b>CLAHE</b> : increases the local contrast.<br>
              - <b>Multi-Mode</b> : increases the local contrast and the contrast between regions of the image.<br>
            For both methods the contrast slider controls the level of the correction.<br>
            With Multi-Mode enabled, use the option <b>Show Contrast Curve</b> to edit the correction curve and check
            <b>Preserve Highlights</b> for softer highlights.<br>
            <b>Brightness</b> and <b>Saturation</b> corrections are non linear to limit clipping.<br>
            Sliders are <b>reset</b> to their default value by double clicking the name of the slider.<br>
            """)  # end setWhatsThis
Beispiel #17
0
    def _createFilterTree(self, spatial_filters):
        av = self.model.activeView
        tally = self.model.statepoint.tallies[av.selectedTally]
        filters = tally.filters

        # create a tree for the filters
        self.treeLayout = QVBoxLayout()
        self.filterTree = QTreeWidget()
        self.treeLayout.addWidget(self.filterTree)
        self.treeExpander = Expander("Filters:", layout=self.treeLayout)
        self.treeExpander.expand()  # start with filters expanded

        header = QTreeWidgetItem(["Filters"])
        self.filterTree.setHeaderItem(header)
        self.filterTree.setItemHidden(header, True)
        self.filterTree.setColumnCount(1)
        self.filterTree.itemChanged.connect(self.updateFilters)

        self.filter_map = {}
        self.bin_map = {}

        for tally_filter in filters:
            filter_label = str(type(tally_filter)).split(".")[-1][:-2]
            filter_item = QTreeWidgetItem(self.filterTree, (filter_label, ))
            self.filter_map[tally_filter] = filter_item

            # make checkable
            if not spatial_filters:
                filter_item.setFlags(QtCore.Qt.ItemIsUserCheckable)
                filter_item.setToolTip(
                    0, "Only tallies with spatial filters are viewable.")
            else:
                filter_item.setFlags(filter_item.flags()
                                     | QtCore.Qt.ItemIsTristate
                                     | QtCore.Qt.ItemIsUserCheckable)
            filter_item.setCheckState(0, QtCore.Qt.Unchecked)

            # all mesh bins are selected by default and not shown in the dock
            if isinstance(tally_filter, openmc.MeshFilter):
                filter_item.setCheckState(0, QtCore.Qt.Checked)
                filter_item.setFlags(QtCore.Qt.ItemIsUserCheckable)
                filter_item.setToolTip(
                    0, "All Mesh bins are selected automatically")
                continue

            def _bin_sort_val(bin):
                if isinstance(bin, Iterable) and all(
                    [isinstance(val, float) for val in bin]):
                    return np.sum(bin)
                else:
                    return bin

            for bin in sorted(tally_filter.bins, key=_bin_sort_val):
                item = QTreeWidgetItem(filter_item, [
                    str(bin),
                ])
                if not spatial_filters:
                    item.setFlags(QtCore.Qt.ItemIsUserCheckable)
                    item.setToolTip(
                        0, "Only tallies with spatial filters are viewable.")
                else:
                    item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
                item.setCheckState(0, QtCore.Qt.Unchecked)

                bin = bin if not isinstance(bin, Iterable) else tuple(bin)
                self.bin_map[tally_filter, bin] = item

            # start with all filters selected if spatial filters are present
            if spatial_filters:
                filter_item.setCheckState(0, QtCore.Qt.Checked)
    def __init__(self):
        super(SegmenterWidget, self).__init__()
        self.active_image_dir = None
        self.active_label_dir = None
        self.src_paths = []
        self.current_idx = None
        self.prev_idx = 0
        label_types = ['Foot', 'Inner Wound', 'Outer Wound']

        # Load last used image directory
        self.meta_file = os.path.join(os.path.dirname(__file__), 'meta.txt')
        if os.path.exists(self.meta_file):
            with open(self.meta_file, 'r') as f:
                last_active_image_dir = f.readline().strip()
                # print(last_active_image_dir)
                if os.path.exists(last_active_image_dir):
                    self.active_image_dir = last_active_image_dir

        # Set up Segmenter Widget
        self.image_title = QLineEdit(self)
        self.image_title.setText('--None--')
        self.image_title.setReadOnly(True)
        self.viewer = ImageSegmenterView(self)

        # Bottom Toolbar Widgets

        ## 'Set Image Folder' button
        self.select_dir_btn = QToolButton(self)
        self.select_dir_btn.setText('Set Image Folder')
        self.select_dir_btn.clicked.connect(self.set_image_dir)
        self.current_dir = ClickableLineEdit(self,
                                             text='--None--',
                                             readOnly=True)
        self.current_dir.clicked.connect(self.set_image_dir)

        self.select_label_dir_btn = QToolButton(self)
        self.select_label_dir_btn.setText('Set Label Folder')
        self.select_label_dir_btn.clicked.connect(self.set_label_dir)
        self.current_label_dir = ClickableLineEdit(self,
                                                   text='--None--',
                                                   readOnly=True)
        self.current_label_dir.clicked.connect(self.set_label_dir)

        self.prev_btn = QToolButton(self)
        self.prev_btn.setText('Previous Image')
        self.prev_btn.clicked.connect(self.goto_previous)
        self.image_idx = LabeledSpinBox('Current Image:',
                                        minimum=0,
                                        maximum=0,
                                        starting_value=0)
        self.image_idx.valueChanged.connect(self.goto_image)
        self.next_btn = QToolButton(self)
        self.next_btn.setText('Next Image')
        self.next_btn.clicked.connect(self.goto_next)
        self.skip_btn = QToolButton(self)
        self.skip_btn.setText('Next Unlabeled Image')
        self.skip_btn.clicked.connect(self.skipto_next)
        self.skip_label_btn = QToolButton(self)
        self.skip_label_btn.setText('Next Labeled Image  ')
        self.skip_label_btn.clicked.connect(self.skipto_next_label)

        ## Sliders
        self.opacity_slider = LabeledSlider('Mask Opacity: {}%',
                                            single_step=5,
                                            page_step=20,
                                            minimum=0,
                                            maximum=100,
                                            starting_value=50)
        self.opacity_slider.valueChanged.connect(self.viewer.set_opacity)
        self.pen_size_slider = LabeledSlider('Pen Size: {}px',
                                             single_step=5,
                                             page_step=10,
                                             minimum=1,
                                             maximum=500,
                                             starting_value=30)
        self.pen_size_slider.valueChanged.connect(self.viewer.set_pen_size)

        # Right Toolbar
        self.label_options = LabeledComboBox("Current Segmentation Mask",
                                             items=label_types)
        self.label_options.currentTextChanged.connect(self.label_changed)

        ## Paint Buttons
        self.brush_box = QGroupBox("Brush Options")
        self.foreground_btn = QPushButton('Foreground')
        self.foreground_btn.setCheckable(True)
        self.foreground_btn.setChecked(True)
        self.foreground_btn.setAutoExclusive(True)
        self.foreground_btn.clicked.connect(self.viewer.set_foreground)
        self.poss_foreground_btn = QPushButton("Possible Foreground")
        self.poss_foreground_btn.setCheckable(True)
        self.poss_foreground_btn.setChecked(False)
        self.poss_foreground_btn.setAutoExclusive(True)
        self.poss_foreground_btn.clicked.connect(
            self.viewer.set_possible_foreground)
        self.background_btn = QPushButton('Background')
        self.background_btn.setCheckable(True)
        self.background_btn.setChecked(False)
        self.background_btn.setAutoExclusive(True)
        self.background_btn.clicked.connect(self.viewer.set_background)
        self.eraser_button = QPushButton('Erase')
        self.eraser_button.setCheckable(True)
        self.eraser_button.setChecked(False)
        self.eraser_button.setAutoExclusive(True)
        self.eraser_button.clicked.connect(self.viewer.set_possible_background)
        brush_layout = QVBoxLayout()
        brush_layout.addWidget(self.foreground_btn)
        brush_layout.addWidget(self.poss_foreground_btn)
        brush_layout.addWidget(self.background_btn)
        brush_layout.addWidget(self.eraser_button)
        self.brush_box.setLayout(brush_layout)

        ## Image Action Buttons
        self.undo_btn = QToolButton(self)
        self.undo_btn.setText('Undo')
        self.undo_btn.clicked.connect(self.viewer.undo)
        self.redo_btn = QToolButton(self)
        self.redo_btn.setText('Redo')
        self.redo_btn.clicked.connect(self.viewer.redo)

        self.save_button = QToolButton(self)
        self.save_button.setText('&Save Mask')
        self.save_button.clicked.connect(self.saveSegmentation)
        self.clear_button = QToolButton(self)
        self.clear_button.setText('Clear Mask')
        self.clear_button.clicked.connect(self.viewer.resetSegLayer)

        self.grabcut_button = QToolButton(self)
        self.grabcut_button.setText('Run &GrabCut Segmenter')
        self.grabcut_button.clicked.connect(self.run_grabcut)

        self.hide_image_button = QToolButton(self)
        self.hide_image_button.setText('Show/&Hide Image')
        self.hide_image_button.pressed.connect(self.viewer.hide_image)

        # Arrange layout
        MainLayout = QVBoxLayout(self)

        BottomStack = QVBoxLayout()

        BottomToolbar = QHBoxLayout()
        BottomToolbar.setAlignment(Qt.AlignLeft)
        Selectors = QVBoxLayout()
        ImageDirSelector = QHBoxLayout()
        ImageDirSelector.addWidget(self.select_dir_btn)
        ImageDirSelector.addWidget(self.current_dir)
        Selectors.addLayout(ImageDirSelector)
        LabelDirSelector = QHBoxLayout()
        LabelDirSelector.addWidget(self.select_label_dir_btn)
        LabelDirSelector.addWidget(self.current_label_dir)
        Selectors.addLayout(LabelDirSelector)

        BottomToolbar.addLayout(Selectors)
        BottomToolbar.addWidget(self.image_idx)
        BottomToolbar.addWidget(self.prev_btn)
        BottomToolbar.addWidget(self.next_btn)
        Skippers = QVBoxLayout()
        Skippers.addWidget(self.skip_btn)
        Skippers.addWidget(self.skip_label_btn)

        # BottomToolbar.addWidget(self.skip_btn)
        BottomToolbar.addLayout(Skippers)
        BottomStack.addLayout(BottomToolbar)

        RightToolbar = QVBoxLayout()
        RightToolbar.setAlignment(Qt.AlignCenter)
        RightToolbar.addWidget(self.label_options)
        RightToolbar.addStretch()
        RightToolbar.addWidget(self.brush_box)
        RightToolbar.addWidget(self.undo_btn)
        RightToolbar.addWidget(self.redo_btn)
        RightToolbar.addStretch()
        # self.gc_spinner.setFixedHeight(0)
        # RightToolbar.addWidget(self.gc_spinner)
        RightToolbar.addWidget(self.hide_image_button)
        RightToolbar.addWidget(self.grabcut_button)
        RightToolbar.addWidget(self.save_button)
        RightToolbar.addWidget(self.clear_button)

        TopLayout = QHBoxLayout()
        ImageLayout = QVBoxLayout()
        ImageLayout.addWidget(self.image_title)
        ImageLayout.addWidget(self.viewer)
        TopLayout.addLayout(ImageLayout)
        TopLayout.addLayout(RightToolbar)

        MainLayout.addLayout(TopLayout)
        FlatSliders = QHBoxLayout()
        FlatSliders.addWidget(self.pen_size_slider)
        FlatSliders.addWidget(self.opacity_slider)
        MainLayout.addLayout(FlatSliders)
        MainLayout.addLayout(BottomStack)
Beispiel #19
0
__setup__()
app = QApplication([])

window = QWidget()

mainToggle = AnimatedToggle()
secondaryToggle = AnimatedToggle(checked_color="#FFB000",
                                 pulse_checked_color="#44FFB000")
tripToggle = AnimatedToggle(checked_color="green", pulse_checked_color="green")
mainToggle.resize(QtCore.QSize(120, 60))
mainToggle.setFixedHeight(50)
secondaryToggle.resize(QtCore.QSize(120, 60))
secondaryToggle.setFixedHeight(50)
tripToggle.resize(QtCore.QSize(120, 60))
tripToggle.setFixedHeight(50)

window.setLayout(QVBoxLayout())
# window.layout().addWidget(QLabel("Main Toggle"))
window.layout().addWidget(mainToggle)

# window.layout().addWidget(QLabel("Secondary Toggle"))
window.layout().addWidget(secondaryToggle)
window.layout().addWidget(tripToggle)

mainToggle.stateChanged.connect(secondaryToggle.setChecked)
mainToggle.stateChanged.connect(tripToggle.setChecked)

window.show()
app.exec_()
Beispiel #20
0
    def __init__(
        self,
        _model: MainWindowViewModel,
        coronal_widget: Optional[QWidget] = None,
        axial_widget: Optional[QWidget] = None,
        sagittal_widget: Optional[QWidget] = None,
        volume_widget: Optional[QWidget] = None,
        slice_widget: Optional[QWidget] = None,
        side_controls: Optional[QWidget] = None,
    ):

        self._model = _model
        self._model.register(self.update)

        self.win = QMainWindow()

        widget = QWidget()
        self.win.setCentralWidget(widget)

        main_layout = QHBoxLayout()
        top_views_layout = QHBoxLayout()
        bottom_views_layout = QHBoxLayout()
        views_layout = QVBoxLayout()
        views_layout.addLayout(top_views_layout)
        views_layout.addLayout(bottom_views_layout)
        main_layout.addLayout(views_layout)
        widget.setLayout(main_layout)

        if coronal_widget:
            coronal_layout = QVBoxLayout()
            label = QLabel('Coronal')
            label.setAlignment(QtCore.Qt.AlignCenter)
            coronal_layout.addWidget(label)
            coronal_layout.addWidget(coronal_widget)
            top_views_layout.addLayout(coronal_layout)

        if axial_widget:
            axial_layout = QVBoxLayout()
            label = QLabel('Axial')
            label.setAlignment(QtCore.Qt.AlignCenter)
            axial_layout.addWidget(label)
            axial_layout.addWidget(axial_widget)
            top_views_layout.addLayout(axial_layout)

        if sagittal_widget:
            sagittal_layout = QVBoxLayout()
            label = QLabel('Sagittal')
            label.setAlignment(QtCore.Qt.AlignCenter)
            sagittal_layout.addWidget(label)
            sagittal_layout.addWidget(sagittal_widget)
            top_views_layout.addLayout(sagittal_layout)

        if slice_widget:
            bottom_views_layout.addWidget(slice_widget)

        if volume_widget:
            bottom_views_layout.addWidget(volume_widget)

        if side_controls:
            main_layout.addWidget(side_controls)

        self.statusbar = self.win.statusBar()
        self.image_coord_label = QLabel(text="Image Coords")
        self.statusbar.addPermanentWidget(self.image_coord_label)

        self.win.show()
Beispiel #21
0
Datei: QT.py Projekt: Zamtos/QT
    def __init__(self):
        super(MainWindow, self).__init__()

        self.latlong = "0"
        self.textEdit = QTextEdit()
        self.mainWidget = QWidget()
        self.mainLayout = QVBoxLayout()
        font0 = QFont("Arial", 12)
        font0.setBold(True)
        font01 = QFont("Arial", 12)
        font02 = QFont("Arial", 12)
        self.text1 = QLabel("<b>Domyślne Współrzędne:</b><br/>"
                            "Szerokość: 51° 06' 00''<br/>"
                            "Długość: 17° 01' 00''<br/>"
                            "(Współrzędne geograficzne Wrocławia)")
        self.solarpanelcordinates = QLabel('WSPÓŁRZĘDNE PANELU SŁONECZNEGO: ')
        self.solarpanelcordinates.setFont(font0)
        # self.solarpanelcordinates.setFrameStyle(QFrame.Box | QFrame.Sunken)
        # self.solarpanelcordinates.setMidLineWidth(6)
        #self.text1.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
        self.text1.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        self.text1.setFont(font01)
        self.text1.setFrameStyle(QFrame.Box | QFrame.Raised)
        self.text1.setMidLineWidth(6)
        self.result4 = QLabel('')
        self.result4.setFont(font02)
        self.result4.setMidLineWidth(3)
        self.result5 = QLabel('')
        self.result5.setFont(font02)
        self.result6 = QLabel('')
        self.result6.setFont(font02)
        self.result7 = QLabel('')
        self.result7.setFont(font02)
        self.result8 = QLabel('')
        self.result8.setFont(font02)
        self.result9 = QLabel('')
        self.result9.setFont(font02)
        self.mainLayout.addWidget(self.text1)
        self.mainLayout.addWidget(self.solarpanelcordinates)
        self.mainLayout.addWidget(self.result4)
        self.mainLayout.addWidget(self.result5)
        self.mainLayout.addWidget(self.result6)
        self.mainLayout.addWidget(self.result7)
        self.mainLayout.addWidget(self.result8)
        self.mainLayout.addWidget(self.result9)
        self.mainWidget.setLayout(self.mainLayout)
        self.setCentralWidget(self.mainWidget)

        self.createActions()
        self.createMenus()
        #self.createToolBars()
        self.createStatusBar()
        self.createDockWindows()
        self.setWindowTitle("Panel Słoneczny")
        self.rad = 0
        self.o = 0
        self.timer = QTimer()
        self.timer.timeout.connect(self.dLocation)
        self.timerIsUp = False
        self.timer2 = QTimer()
        self.timer2.timeout.connect(self.update)
        self.timer2.start(1000)
        self.newLetter()
        self.s = ephem.Sun()
        self.o = ephem.Observer()
        self.x = "Wrocław"
        print(self.x)
 def init_ui(self):
     layout = QVBoxLayout(self)
     layout.setSpacing(0)
     layout.addWidget(self.radar_list)
     self.setLayout(layout)
Beispiel #23
0
    def __init__(self, filename, image, parent=None):
        super(DigestWidget, self).__init__(parent)

        table = []

        file_info = QFileInfo(filename)
        table.append([self.tr('PhysicalFile'), self.tr('File name'), file_info.fileName()])
        table.append([None, self.tr('Parent folder'), str(file_info.dir().absolutePath())])
        table.append([None, self.tr('MIME type'), magic.from_file(filename, mime=True)])
        table.append([None, self.tr('File size'), '{} bytes ({})'.format(
            QLocale().toString(file_info.size()), human_size(file_info.size()))])
        table.append([None, self.tr('File owner'), file_info.owner()])
        table.append([None, self.tr('Permissions'), str(oct(os.stat(filename).st_mode)[-3:])])
        table.append([None, self.tr('Creation time'), file_info.birthTime().toLocalTime().toString()])
        table.append([None, self.tr('Last access'), file_info.lastRead().toLocalTime().toString()])
        table.append([None, self.tr('Last modified'), file_info.lastModified().toLocalTime().toString()])
        table.append([None, self.tr('Metadata changed'), file_info.metadataChangeTime().toLocalTime().toString()])
        table.append([None, self.tr('Name ballistics'), ballistics(file_info.fileName())])

        file = QFile(filename)
        if not file.open(QIODevice.ReadOnly):
            QMessageBox.warning(self, self.tr('Warning'), self.tr('Unable to read file from disk!'))
            return
        data = file.readAll()
        md5 = QCryptographicHash.hash(data, QCryptographicHash.Md5).toHex()
        table.append([self.tr('CryptoHash'), self.tr('MD5'), str(md5, encoding='utf-8')])
        sha1 = QCryptographicHash.hash(data, QCryptographicHash.Sha1).toHex()
        table.append([None, self.tr('SHA2-1'), str(sha1, encoding='utf-8')])
        sha224 = QCryptographicHash.hash(data, QCryptographicHash.Sha224).toHex()
        table.append([None, self.tr('SHA2-224'), str(sha224, encoding='utf-8')])
        sha256 = QCryptographicHash.hash(data, QCryptographicHash.Sha256).toHex()
        table.append([None, self.tr('SHA2-256'), str(sha256, encoding='utf-8')])
        sha384 = QCryptographicHash.hash(data, QCryptographicHash.Sha384).toHex()
        table.append([None, self.tr('SHA2-384'), str(sha384, encoding='utf-8')])
        sha512 = QCryptographicHash.hash(data, QCryptographicHash.Sha512).toHex()
        table.append([None, self.tr('SHA2-512'), str(sha512, encoding='utf-8')])

        sha3_224 = QCryptographicHash.hash(data, QCryptographicHash.Sha3_224).toHex()
        table.append([None, self.tr('SHA3-224'), str(sha3_224, encoding='utf-8')])
        sha3_256 = QCryptographicHash.hash(data, QCryptographicHash.Sha3_256).toHex()
        table.append([None, self.tr('SHA3-256'), str(sha3_256, encoding='utf-8')])
        sha3_384 = QCryptographicHash.hash(data, QCryptographicHash.Sha3_384).toHex()
        table.append([None, self.tr('SHA3-384'), str(sha3_384, encoding='utf-8')])
        sha3_512 = QCryptographicHash.hash(data, QCryptographicHash.Sha3_512).toHex()
        table.append([None, self.tr('SHA3-512'), str(sha3_512, encoding='utf-8')])

        table.append([self.tr('ImageHash'), self.tr('Average'), str(cv.img_hash.averageHash(image)[0])])
        # table_widget.item(15, 0).setToolTip(self.tr('Average hash'))
        table.append([None, self.tr('Block mean'), str(cv.img_hash.blockMeanHash(image)[0])])
        # table_widget.item(16, 0).setToolTip(self.tr('Block mean hash'))
        table.append([None, self.tr('Color moments'), str(cv.img_hash.colorMomentHash(image)[0])])
        # table_widget.item(17, 0).setToolTip(self.tr('Color moments hash'))
        table.append([None, self.tr('Marr-Hildreth'), str(cv.img_hash.marrHildrethHash(image)[0])])
        # table_widget.item(18, 0).setToolTip(self.tr('Marr-Hildreth hash'))
        table.append([None, self.tr('Perceptual'), str(cv.img_hash.pHash(image)[0])])
        # table_widget.item(19, 0).setToolTip(self.tr('Perceptual hash'))
        table.append([None, self.tr('Radial variance'), str(cv.img_hash.radialVarianceHash(image)[0])])
        # table_widget.item(20, 0).setToolTip(self.tr('Radial variance hash'))

        headers = [self.tr('Group'), self.tr('Property'), self.tr('Value')]
        table_widget = TableWidget(table, headers)
        main_layout = QVBoxLayout()
        main_layout.addWidget(table_widget)
        self.setLayout(main_layout)
        self.setMinimumSize(700, 520)
Beispiel #24
0
    def __init__(self, camera):
        super(AttributesPanel, self).__init__()
        main_layout = QVBoxLayout(self)
        self.setMinimumWidth(400)

        self.camera = camera

        # image attributes
        image_format_box = QGroupBox("Image Attributes")
        image_format_layout = QVBoxLayout(image_format_box)
        main_layout.addWidget(image_format_box)

        res_layout = QHBoxLayout()
        image_format_layout.addLayout(res_layout)
        resolution_lbl = QLabel("Output resolution:")
        self.resolution_field = QComboBox()
        self.resolution_field.addItems([
            "640x480", "1024x768", "1280x960", "1920x1440", "2048x1536",
            "3200x2400"
        ])

        res_layout.addWidget(resolution_lbl)
        res_layout.addWidget(self.resolution_field)

        self.rotated_checkbx = QCheckBox("Rotete 180")
        self.rotated_checkbx.stateChanged.connect(self.rotate_image)
        image_format_layout.addWidget(self.rotated_checkbx)

        # save frame
        save_frame_box = QGroupBox("Capture Frame")
        save_box_layout = QVBoxLayout(save_frame_box)
        main_layout.addWidget(save_frame_box)

        save_path_layout = QHBoxLayout()
        save_box_layout.addLayout(save_path_layout)
        self.path_field = QLineEdit()
        self.path_field.setPlaceholderText("Image path...")
        browse_bttn = QPushButton("Browse")
        browse_bttn.clicked.connect(self._get_folder_path)

        save_path_layout.addWidget(self.path_field)
        save_path_layout.addWidget(browse_bttn)

        save_bttn = QPushButton("Save current Frame")
        save_bttn.clicked.connect(self.save_frame)
        save_box_layout.addWidget(save_bttn)

        # timelapse
        timelapse_box = QGroupBox("Timelapse")
        timelapse_box_layout = QVBoxLayout(timelapse_box)
        main_layout.addWidget(timelapse_box)

        timelapse_folder_layout = QHBoxLayout()
        timelapse_box_layout.addLayout(timelapse_folder_layout)

        self.timelapse_folder = QLineEdit()
        self.timelapse_folder.setPlaceholderText("Export path...")

        timelapse_folder_bttn = QPushButton("Browse...")
        timelapse_folder_layout.addWidget(self.timelapse_folder)
        timelapse_folder_layout.addWidget(timelapse_folder_bttn)

        time_layout = QHBoxLayout()
        timelapse_box_layout.addLayout(time_layout)

        time_lbl = QLabel("Max time (sec):")
        self.timelapse_time = QSpinBox()
        self.timelapse_time.setMinimum(1)
        time_layout.addWidget(time_lbl)
        time_layout.addWidget(self.timelapse_time)

        interval_layout = QHBoxLayout()
        timelapse_box_layout.addLayout(interval_layout)

        interval_lbl = QLabel("Interval (sec):")
        self.interval_field = QSpinBox()
        self.interval_field.setMinimum(1)
        interval_layout.addWidget(interval_lbl)
        interval_layout.addWidget(self.interval_field)

        start_timelapse_bttn = QPushButton("Start Timelapse...")
        timelapse_box_layout.addWidget(start_timelapse_bttn)
Beispiel #25
0
        def __init__(self, parent: QWidget = None):
            super(FrmNavLabel, self).__init__(parent)

            widget = QWidget()
            layout = QHBoxLayout()
            self.navLabel51 = NavLabel('首页')
            self.navLabel52 = NavLabel('学生管理')
            self.navLabel53 = NavLabel('成绩查询')
            layout.addWidget(self.navLabel51)
            layout.addWidget(self.navLabel52)
            layout.addWidget(self.navLabel53)
            layout.setContentsMargins(0, 0, 0, 0)
            layout.setSpacing(0)
            widget.setLayout(layout)
            widget.setMinimumSize(300, 30)
            widget.setMaximumSize(300, 30)

            widget1 = QWidget()
            layout = QGridLayout()
            self.navLabel11 = NavLabel('当前温度')
            self.navLabel12 = NavLabel('当前湿度')
            self.navLabel13 = NavLabel('当前压力')
            self.navLabel21 = NavLabel('温度告警值')
            self.navLabel22 = NavLabel('湿度告警值')
            self.navLabel23 = NavLabel('压力告警值')
            layout.addWidget(self.navLabel11, 0, 0)
            layout.addWidget(self.navLabel12, 1, 0)
            layout.addWidget(self.navLabel13, 2, 0)
            layout.addWidget(self.navLabel21, 0, 1)
            layout.addWidget(self.navLabel22, 1, 1)
            layout.addWidget(self.navLabel23, 2, 1)
            layout.setContentsMargins(0, 0, 0, 0)
            layout.setHorizontalSpacing(6)
            layout.setVerticalSpacing(6)
            widget1.setLayout(layout)
            widget1.setMinimumSize(220, 100)
            widget1.setMaximumSize(220, 100)
            widget1.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)

            widget2 = QWidget()
            layout = QHBoxLayout()
            self.navLabel31 = NavLabel('当\n前\n温\n度')
            self.navLabel32 = NavLabel('当\n前\n湿\n度')
            self.navLabel33 = NavLabel('当\n前\n压\n力')
            self.navLabel41 = NavLabel('当\n前\n温\n度')
            self.navLabel42 = NavLabel('当\n前\n湿\n度')
            self.navLabel43 = NavLabel('当\n前\n压\n力')
            layout.addWidget(self.navLabel31)
            layout.addWidget(self.navLabel32)
            layout.addWidget(self.navLabel33)
            layout.addWidget(self.navLabel41)
            layout.addWidget(self.navLabel42)
            layout.addWidget(self.navLabel43)
            layout.setContentsMargins(0, 0, 0, 0)
            layout.setSpacing(6)
            widget2.setLayout(layout)
            widget2.setMinimumSize(220, 110)
            widget2.setMaximumSize(220, 16777215)
            widget2.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)

            widget_2 = QWidget(self)
            layout = QVBoxLayout()
            layout.addWidget(widget)
            layout.addWidget(widget1)
            layout.addWidget(widget2)
            widget_2.setLayout(layout)

            self.initForm()
Beispiel #26
0
    def setupUi(self, dlg_new_tool):
        if not dlg_new_tool.objectName():
            dlg_new_tool.setObjectName(u"dlg_new_tool")
        dlg_new_tool.resize(570, 463)
        dlg_new_tool.setModal(True)
        self.gridLayout_2 = QGridLayout(dlg_new_tool)
        self.gridLayout_2.setObjectName(u"gridLayout_2")
        self.gridLayout = QGridLayout()
        self.gridLayout.setObjectName(u"gridLayout")
        self.te_description = QTextEdit(dlg_new_tool)
        self.te_description.setObjectName(u"te_description")

        self.gridLayout.addWidget(self.te_description, 3, 0, 1, 6)

        self.label = QLabel(dlg_new_tool)
        self.label.setObjectName(u"label")

        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)

        self.lbl_file_exists = QLabel(dlg_new_tool)
        self.lbl_file_exists.setObjectName(u"lbl_file_exists")
        self.lbl_file_exists.setPixmap(QPixmap(u"../resources/OK.png"))

        self.gridLayout.addWidget(self.lbl_file_exists, 0, 5, 1, 1)

        self.label_5 = QLabel(dlg_new_tool)
        self.label_5.setObjectName(u"label_5")

        self.gridLayout.addWidget(self.label_5, 0, 3, 1, 1)

        self.chk_mask_required = QCheckBox(dlg_new_tool)
        self.chk_mask_required.setObjectName(u"chk_mask_required")

        self.gridLayout.addWidget(self.chk_mask_required, 5, 0, 1, 6)

        self.label_4 = QLabel(dlg_new_tool)
        self.label_4.setObjectName(u"label_4")

        self.gridLayout.addWidget(self.label_4, 0, 2, 1, 1)

        self.le_tool_name = QLineEdit(dlg_new_tool)
        self.le_tool_name.setObjectName(u"le_tool_name")

        self.gridLayout.addWidget(self.le_tool_name, 0, 1, 1, 1)

        self.label_3 = QLabel(dlg_new_tool)
        self.label_3.setObjectName(u"label_3")

        self.gridLayout.addWidget(self.label_3, 1, 3, 1, 1)

        self.le_file_name = QLineEdit(dlg_new_tool)
        self.le_file_name.setObjectName(u"le_file_name")
        self.le_file_name.setReadOnly(True)

        self.gridLayout.addWidget(self.le_file_name, 0, 4, 1, 1)

        self.label_6 = QLabel(dlg_new_tool)
        self.label_6.setObjectName(u"label_6")
        font = QFont()
        font.setPointSize(8)
        self.label_6.setFont(font)

        self.gridLayout.addWidget(self.label_6, 1, 2, 1, 1)

        self.le_class_name = QLineEdit(dlg_new_tool)
        self.le_class_name.setObjectName(u"le_class_name")
        self.le_class_name.setReadOnly(True)

        self.gridLayout.addWidget(self.le_class_name, 1, 4, 1, 1)

        self.label_2 = QLabel(dlg_new_tool)
        self.label_2.setObjectName(u"label_2")

        self.gridLayout.addWidget(self.label_2, 2, 0, 1, 6)

        self.label_7 = QLabel(dlg_new_tool)
        self.label_7.setObjectName(u"label_7")

        self.gridLayout.addWidget(self.label_7, 4, 0, 1, 1)

        self.le_package_name = QLineEdit(dlg_new_tool)
        self.le_package_name.setObjectName(u"le_package_name")

        self.gridLayout.addWidget(self.le_package_name, 4, 1, 1, 5)

        self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 2)

        self.verticalLayout_4 = QVBoxLayout()
        self.verticalLayout_4.setObjectName(u"verticalLayout_4")
        self.groupBox = QGroupBox(dlg_new_tool)
        self.groupBox.setObjectName(u"groupBox")
        self.groupBox.setCheckable(False)
        self.verticalLayout = QVBoxLayout(self.groupBox)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.rb_output_image = QRadioButton(self.groupBox)
        self.rb_output_image.setObjectName(u"rb_output_image")
        self.rb_output_image.setChecked(True)

        self.verticalLayout.addWidget(self.rb_output_image)

        self.rb_output_mask = QRadioButton(self.groupBox)
        self.rb_output_mask.setObjectName(u"rb_output_mask")

        self.verticalLayout.addWidget(self.rb_output_mask)

        self.rb_output_data = QRadioButton(self.groupBox)
        self.rb_output_data.setObjectName(u"rb_output_data")

        self.verticalLayout.addWidget(self.rb_output_data)

        self.rb_output_none = QRadioButton(self.groupBox)
        self.rb_output_none.setObjectName(u"rb_output_none")

        self.verticalLayout.addWidget(self.rb_output_none)

        self.verticalLayout_4.addWidget(self.groupBox)

        self.gb_pipeline_tool_groups = QGroupBox(dlg_new_tool)
        self.gb_pipeline_tool_groups.setObjectName(u"gb_pipeline_tool_groups")

        self.verticalLayout_4.addWidget(self.gb_pipeline_tool_groups)

        self.verticalSpacer = QSpacerItem(
            20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding
        )

        self.verticalLayout_4.addItem(self.verticalSpacer)

        self.gridLayout_2.addLayout(self.verticalLayout_4, 1, 0, 1, 1)

        self.verticalLayout_3 = QVBoxLayout()
        self.verticalLayout_3.setObjectName(u"verticalLayout_3")
        self.groupBox_2 = QGroupBox(dlg_new_tool)
        self.groupBox_2.setObjectName(u"groupBox_2")
        self.verticalLayout_2 = QVBoxLayout(self.groupBox_2)
        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
        self.rb_rt_yes = QRadioButton(self.groupBox_2)
        self.rb_rt_yes.setObjectName(u"rb_rt_yes")

        self.verticalLayout_2.addWidget(self.rb_rt_yes)

        self.rb_rt_no = QRadioButton(self.groupBox_2)
        self.rb_rt_no.setObjectName(u"rb_rt_no")
        self.rb_rt_no.setChecked(True)

        self.verticalLayout_2.addWidget(self.rb_rt_no)

        self.rb_rt_widget = QRadioButton(self.groupBox_2)
        self.rb_rt_widget.setObjectName(u"rb_rt_widget")

        self.verticalLayout_2.addWidget(self.rb_rt_widget)

        self.rb_rt_property = QRadioButton(self.groupBox_2)
        self.rb_rt_property.setObjectName(u"rb_rt_property")

        self.verticalLayout_2.addWidget(self.rb_rt_property)

        self.verticalLayout_3.addWidget(self.groupBox_2)

        self.gb_no_pipeline_tool_groups = QGroupBox(dlg_new_tool)
        self.gb_no_pipeline_tool_groups.setObjectName(u"gb_no_pipeline_tool_groups")

        self.verticalLayout_3.addWidget(self.gb_no_pipeline_tool_groups)

        self.verticalSpacer_2 = QSpacerItem(
            20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding
        )

        self.verticalLayout_3.addItem(self.verticalSpacer_2)

        self.gridLayout_2.addLayout(self.verticalLayout_3, 1, 1, 1, 1)

        self.horizontalLayout = QHBoxLayout()
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalSpacer = QSpacerItem(
            40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum
        )

        self.horizontalLayout.addItem(self.horizontalSpacer)

        self.bt_save = QPushButton(dlg_new_tool)
        self.bt_save.setObjectName(u"bt_save")

        self.horizontalLayout.addWidget(self.bt_save)

        self.bt_cancel = QPushButton(dlg_new_tool)
        self.bt_cancel.setObjectName(u"bt_cancel")

        self.horizontalLayout.addWidget(self.bt_cancel)

        self.gridLayout_2.addLayout(self.horizontalLayout, 2, 1, 1, 1)

        self.gridLayout_2.setColumnStretch(0, 1)
        self.gridLayout_2.setColumnStretch(1, 1)

        self.retranslateUi(dlg_new_tool)

        QMetaObject.connectSlotsByName(dlg_new_tool)
Beispiel #27
0
 def add_background(widget, color='lightGray'):
     backing = Color(color)
     layout = QVBoxLayout()
     layout.addWidget(widget)
     backing.setLayout(layout)
     return backing
Beispiel #28
0
    def __init__(self):
        QWidget.__init__(self)
        self.a = QFontDatabase()
        print(self.a.families())
        print(self.a.writingSystemSample(QFontDatabase.Arabic))

        #focus qeuee
        #Texts
        #Margin
        #child widget access
        #Top Bar
        #multiple windows handling (one open, main close all close,
        #nice Layouts
        #Rights
        #emoji and other langs (encoding)

        self.MainToolbar = QToolBar()
        self.DonateButton = QPushButton()

        self.DonateButton.setStatusTip("F*****G")
        # self.DonateButton.setBackgroundRole(QIcon(QPixmap(":/Bitcoin.png")))
        self.DonateButton.setFont(QFont("Vazir"))
        self.DonateButton.setMinimumSize(50, 100)
        self.DonateButton.setText("test")

        self.MainToolbar.addWidget(self.DonateButton)

        self.ActiveSessionShortCutGroup = QGroupBox()
        # self.ActiveSessionShortCutGroup
        self.ActiveSessionShortCutGroup.setTitle("Shortcuts")
        self.ActiveSessionShortCutGroupVBox = QVBoxLayout()
        self.ActiveSessionShortCutGroupVBox.setContentsMargins(15, 15, 15, 15)

        def ShortCutVBox(text):
            ShortCutInputButton = QPushButton()
            ShortCutResetButton = QPushButton("Reset")
            ShortCutText = QLabel(text)
            ShortCutResetButton.setMaximumWidth(100)
            ShortCutButtonsHBox = QHBoxLayout()
            ShortCutButtonsHBox.setContentsMargins(10, 10, 10, 10)
            ShortCutButtonsHBox.addWidget(ShortCutInputButton)
            ShortCutButtonsHBox.addWidget(ShortCutResetButton)
            ShortCutBlockVBox = QVBoxLayout()
            ShortCutBlockVBox.addWidget(ShortCutText)
            ShortCutBlockVBox.addLayout(ShortCutButtonsHBox)
            return ShortCutBlockVBox

        CipherShortCutBlockVBox = ShortCutVBox(
            "Enter Ciphering ShortCut (Also Decode in Smart Mode)")
        DecipherShortCutBlockVBox = ShortCutVBox(
            "Enter Deciphering ShortCut (Also Code in Smart Mode - could be left empty)"
        )

        self.ActiveSessionShortCutGroupVBox.addLayout(CipherShortCutBlockVBox)
        self.ActiveSessionShortCutGroupVBox.addLayout(
            DecipherShortCutBlockVBox)
        self.ActiveSessionShortCutGroup.setLayout(
            self.ActiveSessionShortCutGroupVBox)

        self.SettingsGroup = QGroupBox()
        self.SettingsGroupVBox = QVBoxLayout()

        self.OnOffDeamonBox = QCheckBox(
            "Start This service and Open Angel Gates to your Privacy, KINDA! :)"
        )
        self.StartUpDeamonBox = QCheckBox(
            "Start CryptoCut Deamon at the System Boot up")
        self.EncryptNotifBox = QCheckBox(
            "Show a Notification After (De/En)crpt of Texts And Show its Successful or Not"
        )
        self.VirtualKeyboardBox = QCheckBox(
            "Open Virtual Keyboard for Keylogger Suspection Situations")
        self.SaftyTweaksBox = QCheckBox(
            "Our Small Tweaks would be Applied on Standard Methods to Make them even better"
        )
        self.SuperSafeModeBox = QCheckBox(
            "Open a Box with Password Input Mode to write text in and Paste in last Focused Region"
        )
        self.RapidModeBox = QCheckBox(
            "Paste Text Back in place and Delete the text")
        self.TrayDeamonBox = QCheckBox(
            "Show Application Icon in Tray for Ease of Access")
        self.SmartModeBox = QCheckBox(
            "Automatically Detect Its a Cipher or a Normal Text and Work with one Shortcut"
        )

        self.SettingsGroupVBox.addWidget(self.OnOffDeamonBox)
        self.SettingsGroupVBox.addWidget(self.StartUpDeamonBox)
        self.SettingsGroupVBox.addWidget(self.EncryptNotifBox)
        self.SettingsGroupVBox.addWidget(self.VirtualKeyboardBox)
        self.SettingsGroupVBox.addWidget(self.SaftyTweaksBox)
        self.SettingsGroupVBox.addWidget(self.SuperSafeModeBox)
        self.SettingsGroupVBox.addWidget(self.RapidModeBox)
        self.SettingsGroupVBox.addWidget(self.TrayDeamonBox)
        self.SettingsGroupVBox.addWidget(self.SmartModeBox)

        self.SettingsGroup.setTitle("Settings")
        self.SettingsGroup.setLayout(self.SettingsGroupVBox)

        self.apply = QPushButton("Apply Setting")
        self.reset = QPushButton("Reset to Default")
        self.apply.setMinimumWidth(150)
        self.reset.setMinimumWidth(150)
        self.apply.setMinimumHeight(35)
        self.reset.setMinimumHeight(35)

        self.Container = QHBoxLayout()

        self.Container.addWidget(self.apply)
        self.Container.addWidget(self.reset)
        self.Container.minimumHeightForWidth(20)

        self.Main = QVBoxLayout()
        self.Main.setMargin(10)
        self.Main.addWidget(self.MainToolbar)
        self.Main.addWidget(self.ActiveSessionShortCutGroup)
        self.Main.addWidget(self.SettingsGroup)
        self.TestPlainTextEdit = QPlainTextEdit("Test CryptoCut HERE")
        self.TestPlainTextEdit.setMinimumHeight(200)
        self.Main.addWidget(self.TestPlainTextEdit)
        self.Main.addLayout(self.Container)
        #self.table_view.setSizePolicy(size)
        # Set the layout to the QWidget
        self.setLayout(self.Main)
Beispiel #29
0
    def __init__(self):
        QWidget.__init__(self)
        self.items = 0

        # Left
        self.table = QTableWidget()
        self.table.setColumnCount(2)
        self.table.setHorizontalHeaderLabels(["Ports", "Services"])
        self.table.horizontalHeader().setStretchLastSection(True)
        self.table.clicked.connect(self.item_clicked)

        # Right
        self.base_ip = QLineEdit()
        self.process = QPushButton("Scan")
        self.clear = QPushButton("Clear")
        self.quit = QPushButton("Quit")

        self.process.setEnabled(False)

        # Creating layout
        self.right = QVBoxLayout()
        self.right.setMargin(10)

        # IP
        label = QLabel("Enter IP addr:")
        label.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Fixed)
        self.right.addWidget(label)
        self.right.addWidget(self.base_ip)

        # Types of scan
        scan_types = QGroupBox("Types of scan:")
        self.scan_type_all = QCheckBox("All (-A)")
        self.scan_type_all.stateChanged.connect(self.box_changed_all)
        self.scan_type_script = QCheckBox("Script Scan (-sC)")
        self.scan_type_script.stateChanged.connect(self.box_changed_other)
        self.scan_type_version = QCheckBox("Version Scan (-sV)")
        self.scan_type_version.stateChanged.connect(self.box_changed_other)
        self.scan_type_os = QCheckBox("OS Scan (-O)")
        self.scan_type_os.stateChanged.connect(self.box_changed_other)
        check_layout = QVBoxLayout()
        check_layout.addWidget(self.scan_type_all)
        check_layout.addWidget(self.scan_type_script)
        check_layout.addWidget(self.scan_type_version)
        check_layout.addWidget(self.scan_type_os)
        scan_types.setLayout(check_layout)
        self.right.addWidget(scan_types)

        # Speed
        label = QLabel("Speed [0-5]:")
        label.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Fixed)
        self.right.addWidget(label)
        self.speed_slider = QSlider(Qt.Horizontal)
        self.speed_slider.setMinimum(0)
        self.speed_slider.setMaximum(5)
        self.speed_slider.setValue(4)
        self.speed_slider.setTickPosition(QSlider.TicksBelow)
        self.right.addWidget(self.speed_slider)

        # Ports
        label = QLabel("Ports:")
        label.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Fixed)
        self.right.addWidget(label)
        self.ports = QComboBox()
        self.ports.addItems([
            "Well-known (0-1023)",
            "Well-known Extended (0-6667)",
            "Well-known + Registered ports (0-49151)",
            "All (0-65535)",
        ])
        self.right.addWidget(self.ports)

        # Fill Space
        self.right.addWidget(QFrame())

        self.right.addWidget(self.process)
        self.right.addWidget(self.clear)
        self.right.addWidget(self.quit)

        # QWidget Layout
        self.layout = QHBoxLayout()

        self.layout.addWidget(self.table)
        self.layout.addLayout(self.right)

        # Set the layout to the QWidget
        self.setLayout(self.layout)

        # Signals and Slots
        self.process.clicked.connect(self.start_scan)
        self.quit.clicked.connect(self.quit_application)
        self.clear.clicked.connect(self.clear_table)
        self.base_ip.textChanged[str].connect(self.check_disable)
Beispiel #30
0
    def __init__(self):
        QWidget.__init__(self)

        self.setStyleSheet("background-color:white; font-size:24px;")

        # Icon
        self.top_icon = QPixmap("ivs.jpg")
        self.top_icon_label = QLabel()
        self.top_icon_label.setAlignment(Qt.AlignCenter)
        self.top_icon_label.setPixmap(
            self.top_icon.scaled(256, 256, Qt.KeepAspectRatio))

        # Title
        title_font = QFont("Helvatica", 24, QFont.Bold)
        self.title = QLabel("Intelligent Video Summarization")
        self.title.setFont(title_font)

        # Desired Objects
        self.desired_objects_checkbox = [
            QCheckBox("car", self),
            QCheckBox("motor-bike", self),
            QCheckBox("rickshaw", self),
            QCheckBox("cycle", self),
            QCheckBox("person", self)
        ]
        self.desired_objects_label = QLabel("Select the desired objects")
        self.desired_objects = QGroupBox()
        self.desired_objects.setTitle("Select Desired Objects")

        # Add Options (Checkboxes) in Desired Objects
        self.desired_objects_layout = QVBoxLayout()
        self.desired_objects.setStyleSheet("font-weight:bold;")
        for checkbox in self.desired_objects_checkbox:
            self.desired_objects_layout.addWidget(checkbox)
        self.desired_objects.setLayout(self.desired_objects_layout)

        self.button = QPushButton("Select Video")
        self.button.setStyleSheet("background-color:blue; color:white;")

        self.start_button = QPushButton("Start")
        self.start_button.setStyleSheet("background-color:red; color:white;")

        # Detector
        self.detectors_list = [
            QRadioButton("yolo", self),
            QRadioButton("frcc", self),
            QRadioButton("pseudo", self)
        ]
        self.detectors = QGroupBox()
        self.detectors.setTitle("Select Detection Algorithm")
        self.detectors_layout = QVBoxLayout()
        self.detectors.setStyleSheet("font-weight:bold;")

        for radio_button in self.detectors_list:
            self.detectors_layout.addWidget(radio_button)

        self.detectors.setLayout(self.detectors_layout)

        # Main Layout
        self.layout = QFormLayout()
        self.layout.addRow(self.top_icon_label)
        self.layout.addRow(self.title)
        self.layout.addRow(self.button)
        self.layout.addRow(self.desired_objects)
        self.layout.addRow(self.detectors)
        self.layout.addRow(self.start_button)
        self.setLayout(self.layout)

        # Connecting the signal
        self.button.clicked.connect(self.add_video_path)
        self.start_button.clicked.connect(self.start_summarizing)