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)
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
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)
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
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)
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())
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时,取消加载
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()
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()
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)
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)
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)
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()
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
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)
__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_()
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()
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)
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)
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)
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()
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)
def add_background(widget, color='lightGray'): backing = Color(color) layout = QVBoxLayout() layout.addWidget(widget) backing.setLayout(layout) return backing
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)
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)
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)