Beispiel #1
0
    def create_widget(self, parent=None):
        main_group_box = QGroupBox()
        main_layout = QHBoxLayout()

        top = QFrame()
        top_layout = QGridLayout()
        top_layout.setColumnStretch(0, 2)
        top_layout.setColumnStretch(1, 1)

        top_layout.addWidget(self.tips_label, 0, 0)
        top_layout.addWidget(self.path_label, 1, 0)

        self.button_folder_selection = QPushButton('Select directory')
        self.button_folder_selection.clicked.connect(
            lambda: self.on_dir_selection())
        top_layout.addWidget(self.button_folder_selection, 1, 1)

        top.setLayout(top_layout)
        splitter = QSplitter(Qt.Vertical)
        splitter.addWidget(top)

        gestures_group_box = self.create_gestures_group_box()
        splitter.addWidget(gestures_group_box)

        splitter.setSizes([50, 200])
        main_layout.addWidget(splitter)
        main_group_box.setLayout(main_layout)

        return main_group_box
Beispiel #2
0
    def build(self):

        self.setStyleSheet('QLabel {color: white}')

        layout = QGridLayout()
        self.setLayout(layout)

        layout.setRowStretch(0, 10)
        layout.setColumnStretch(3, 1)

        key_lbl = QLabel('{} Hotkeys:'.format(self.mode.title()))
        layout.addWidget(key_lbl, 1, 0, 1, 2)

        position = 2
        for key, op in self.mapping.iteritems():

            key_lbl = QLabel(key)
            layout.addWidget(key_lbl, position, 0, 1, 1)

            op_lbl = QLabel(op)
            layout.addWidget(op_lbl, position, 1, 1, 1)

            position += 1

        #  help_key_lbl = QLabel('h')
        #  layout.addWidget(help_key_lbl, position, 0, 1, 1)
        #
        #  help_lbl = QLabel('Toggle Help')
        #  layout.addWidget(help_lbl, position, 1, 1, 1)

        layout.setRowStretch(position, 1)
Beispiel #3
0
class GroupImages(QGroupBox):
    def __init__(self, parent):
        """Groupbox for pynwb.base.Images fields filling form."""
        super().__init__()
        self.setTitle('Images')
        self.parent = parent
        self.group_type = 'Images'

        self.lbl_name = QLabel('name<span style="color:' +
                               required_asterisk_color + ';">*</span>:')
        self.form_name = QLineEdit('Images')
        self.form_name.setToolTip("The name of this set of images")
        nInstances = 0
        for grp in self.parent.groups_list:
            if isinstance(grp, GroupImages):
                nInstances += 1
        if nInstances > 0:
            self.form_name.setText('Images' + str(nInstances))

        self.lbl_images = QLabel('images:')
        self.combo_images = CustomComboBox()
        self.combo_images.setToolTip("Image objects")

        self.lbl_description = QLabel('description:')
        self.form_description = QLineEdit('')
        self.form_description.setPlaceholderText("description")
        self.form_description.setToolTip("Description of images")

        self.grid = QGridLayout()
        self.grid.setColumnStretch(2, 1)
        self.grid.addWidget(self.lbl_name, 0, 0, 1, 2)
        self.grid.addWidget(self.form_name, 0, 2, 1, 4)
        self.grid.addWidget(self.lbl_images, 1, 0, 1, 2)
        self.grid.addWidget(self.combo_images, 1, 2, 1, 4)
        self.grid.addWidget(self.lbl_description, 2, 0, 1, 2)
        self.grid.addWidget(self.form_description, 2, 2, 1, 4)
        self.setLayout(self.grid)

    def refresh_objects_references(self, metadata=None):
        """Refreshes references with existing objects in parent group."""
        self.combo_images.clear()
        for grp in self.parent.groups_list:
            if isinstance(grp, GroupImage):
                self.combo_images.addItem(grp.form_name.text())

    def read_fields(self):
        """Reads fields and returns them structured in a dictionary."""
        data = {}
        data['name'] = self.form_name.text()
        data['images'] = self.combo_images.currentText()
        data['description'] = self.form_description.text()
        return data

    def write_fields(self, metadata={}):
        """Reads structured dictionary and write in form fields."""
        self.form_name.setText(metadata['name'])
        self.combo_images.clear()
        self.combo_images.addItem(metadata['images'])
        if 'description' in metadata:
            self.form_description.setText(metadata['description'])
Beispiel #4
0
 def __init__(self, parent=None):
     super(airWidget, self).__init__(parent)
     self.desktop = ''
     box = QGridLayout()
     box.setColumnStretch(0, -1)
     box.setColumnStretch(1, 1)
     self.btn_icon = QPushButton()
     effect = QGraphicsDropShadowEffect(blurRadius=5, xOffset=3, yOffset=3)
     self.btn_icon.setGraphicsEffect(effect)
     self.btn_icon.setIconSize(QSize(64, 64))
     self.btn_icon.setMinimumHeight(72)
     self.btn_icon.clicked.connect(self._executeAir)
     box.addWidget(self.btn_icon, 0, 0, 2, 1, Qt.AlignLeft)
     self.lbl_name = QLabel("")
     self.lbl_name.setObjectName("appName")
     box.addWidget(self.lbl_name, 0, 1, 1, 1, Qt.AlignLeft)
     self.lbl_desc = QLabel("")
     box.addWidget(self.lbl_desc, 1, 1, 1, 2, Qt.AlignLeft)
     btn_remove = QPushButton(_("Remove"))
     btn_remove.setObjectName("btnRemove")
     btn_remove.clicked.connect(self._removeAir)
     box.addWidget(btn_remove, 0, 2, 1, 1, Qt.AlignLeft)
     self.setObjectName("cell")
     self.setLayout(box)
     self.setStyleSheet(self._setCss())
class GroupDevice(CollapsibleBox):
    def __init__(self, parent):
        """Groupbox for pynwb.device.Device fields filling form."""
        super().__init__(title='Device', parent=parent)
        self.parent = parent
        self.pynwb_class = pynwb.device.Device
        self.group_type = 'Device'

        self.lbl_name = QLabel('name<span style="color:' +
                               required_asterisk_color + ';">*</span>:')
        self.form_name = QLineEdit('Device')
        self.form_name.setToolTip("the name pof this device")

        self.grid = QGridLayout()
        self.grid.setColumnStretch(2, 1)
        self.grid.addWidget(self.lbl_name, 0, 0, 1, 2)
        self.grid.addWidget(self.form_name, 0, 2, 1, 4)
        #self.setLayout(self.grid)

    def refresh_objects_references(self, metadata=None):
        """Refreshes references with existing objects in parent group."""
        pass

    def read_fields(self):
        """Reads fields and returns them structured in a dictionary."""
        data = {}
        data['name'] = self.form_name.text()
        return data

    def write_fields(self, metadata={}):
        """Reads structured dictionary and write in form fields."""
        self.form_name.setText(str(metadata['name']))
        self.setContentLayout(self.grid)
Beispiel #6
0
    def initUI(self):
        mainLayout = QGridLayout(self)
        mainLayout.setAlignment(Qt.AlignLeft | Qt.AlignTop)
        mainLayout.setColumnStretch(0, 0)
        mainLayout.setColumnStretch(1, 1)
        mainLayout.setColumnStretch(2, 1)
        self.setLayout(mainLayout)

        line = 0
        nameText = QLabel('Name:')
        nameText.setAlignment(Qt.AlignRight)
        self.nameIn = QLineEdit()
        mainLayout.addWidget(nameText, line, 0)
        mainLayout.addWidget(self.nameIn, line, 1, 1, 2)

        line += 1
        tempText = QLabel('Template:')
        tempText.setAlignment(Qt.AlignRight)
        self.tempCombo = QComboBox()
        self.tempCombo.addItem('[NO TEMPLATE]', 0)
        self._read_templates()
        mainLayout.addWidget(tempText, line, 0)
        mainLayout.addWidget(self.tempCombo, line, 1, 1, 2)

        line += 1
        okBtn = QPushButton("Create")
        okBtn.clicked.connect(self.accept)
        cancelBtn = QPushButton("Cancel")
        cancelBtn.clicked.connect(self.reject)

        mainLayout.addWidget(okBtn, line, 1, 1, 1)
        mainLayout.addWidget(cancelBtn, line, 2, 1, 1)
        self.setWindowTitle("New Picker Interface Information")
        self.setWindowFlags(Qt.WindowStaysOnTopHint)
    def __init__(self, parent=None):
        super(AddDialogWidget, self).__init__(parent)

        nameLabel = QLabel("Name")
        addressLabel = QLabel("Address")
        buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | 
                                      QDialogButtonBox.Cancel)

        self.nameText = QLineEdit()
        self.addressText = QTextEdit()

        grid = QGridLayout()
        grid.setColumnStretch(1, 2)
        grid.addWidget(nameLabel, 0, 0)
        grid.addWidget(self.nameText, 0, 1)
        grid.addWidget(addressLabel, 1, 0, Qt.AlignLeft | Qt.AlignTop)
        grid.addWidget(self.addressText, 1, 1, Qt.AlignLeft)

        layout = QVBoxLayout()
        layout.addLayout(grid)
        layout.addWidget(buttonBox)

        self.setLayout(layout)

        self.setWindowTitle("Add a Contact")

        buttonBox.accepted.connect(self.accept)
        buttonBox.rejected.connect(self.reject)
Beispiel #8
0
    def createMessageGroupBox(self):
        self.messageGroupBox = QGroupBox("Balloon Message")

        self.typeLabel = QLabel("Type:")

        self.typeComboBox = QComboBox()
        self.typeComboBox.addItem("None", QSystemTrayIcon.NoIcon)
        self.typeComboBox.addItem(
            self.style().standardIcon(QStyle.SP_MessageBoxInformation),
            "Information",
            QSystemTrayIcon.Information,
        )
        self.typeComboBox.addItem(
            self.style().standardIcon(QStyle.SP_MessageBoxWarning),
            "Warning",
            QSystemTrayIcon.Warning,
        )
        self.typeComboBox.addItem(
            self.style().standardIcon(QStyle.SP_MessageBoxCritical),
            "Critical",
            QSystemTrayIcon.Critical,
        )
        self.typeComboBox.addItem(QIcon(), "Custom icon", -1)
        self.typeComboBox.setCurrentIndex(1)

        self.durationLabel = QLabel("Duration:")

        self.durationSpinBox = QSpinBox()
        self.durationSpinBox.setRange(5, 60)
        self.durationSpinBox.setSuffix(" s")
        self.durationSpinBox.setValue(15)

        self.durationWarningLabel = QLabel("(some systems might ignore this hint)")
        self.durationWarningLabel.setIndent(10)

        self.titleLabel = QLabel("Title:")
        self.titleEdit = QLineEdit("Cannot connect to network")
        self.bodyLabel = QLabel("Body:")

        self.bodyEdit = QTextEdit()
        self.bodyEdit.setPlainText("Don't believe me. Honestly, I don't have a clue."
                                   "\nClick this balloon for details.")

        self.showMessageButton = QPushButton("Show Message")
        self.showMessageButton.setDefault(True)

        messageLayout = QGridLayout()
        messageLayout.addWidget(self.typeLabel, 0, 0)
        messageLayout.addWidget(self.typeComboBox, 0, 1, 1, 2)
        messageLayout.addWidget(self.durationLabel, 1, 0)
        messageLayout.addWidget(self.durationSpinBox, 1, 1)
        messageLayout.addWidget(self.durationWarningLabel, 1, 2, 1, 3)
        messageLayout.addWidget(self.titleLabel, 2, 0)
        messageLayout.addWidget(self.titleEdit, 2, 1, 1, 4)
        messageLayout.addWidget(self.bodyLabel, 3, 0)
        messageLayout.addWidget(self.bodyEdit, 3, 1, 2, 4)
        messageLayout.addWidget(self.showMessageButton, 5, 4)
        messageLayout.setColumnStretch(3, 1)
        messageLayout.setRowStretch(4, 1)
        self.messageGroupBox.setLayout(messageLayout)
Beispiel #9
0
def createGridLayout(app, data, time):
    app.horizontalGroupBox = QGroupBox()
    layout = QGridLayout()

    num_rows = 12
    num_columns = 5

    plots = []

    for row_id in range(0, num_rows):
        layout.setColumnStretch(row_id, num_columns)

    for col_id in range(0, num_columns):
        for row_id in range(0, num_rows):
            curr_id = col_id * num_rows + row_id
            curr_plot = pg.PlotWidget(title='#' + str(curr_id + 1))
            curr_plot.enableAutoRange(False, False)
            curr_plot.setXRange(0, 500)
            curve = HDF5Plot()
            curve.setHDF5(data[:, curr_id])
            curr_plot.addItem(curve)
            layout.addWidget(curr_plot, col_id, row_id)
            plots.append(curr_plot)
            if curr_id > 0:
                plots[curr_id - 1].getViewBox().setXLink(plots[curr_id])
                plots[curr_id - 1].getViewBox().setYLink(plots[curr_id])

    app.horizontalGroupBox.setLayout(layout)
    def __init__(self, parent=None):
        super(AddDialogWidget, self).__init__(parent)

        nameLabel = QLabel("Name")
        addressLabel = QLabel("Address")
        buttonBox = QDialogButtonBox(QDialogButtonBox.Ok |
                                      QDialogButtonBox.Cancel)

        self.nameText = QLineEdit()
        self.addressText = QTextEdit()

        grid = QGridLayout()
        grid.setColumnStretch(1, 2)
        grid.addWidget(nameLabel, 0, 0)
        grid.addWidget(self.nameText, 0, 1)
        grid.addWidget(addressLabel, 1, 0, Qt.AlignLeft | Qt.AlignTop)
        grid.addWidget(self.addressText, 1, 1, Qt.AlignLeft)

        layout = QVBoxLayout()
        layout.addLayout(grid)
        layout.addWidget(buttonBox)

        self.setLayout(layout)

        self.setWindowTitle("Add a Contact")

        buttonBox.accepted.connect(self.accept)
        buttonBox.rejected.connect(self.reject)
Beispiel #11
0
class Layout(Slots):
    def __init__(self):
        super().__init__()

    def stored_location_layout(self):
        self.stored_directories_title = QLabel(constants.stored_dir_str)

        # Combo box and its properties
        self.stored_dir_dropdown = QComboBox()
        self.stored_dir_dropdown.addItems(self.get_list_items())
        self.stored_dir_dropdown.setCursor(QCursor(Qt.PointingHandCursor))
        self.stored_dir_dropdown.setStyleSheet(stored_dir_dropdown_styles)

        # Layout grid for combo box widget
        self.stored_dirs_layout = QGridLayout()
        self.stored_dirs_layout.addWidget(self.stored_directories_title, 0, 0)
        self.stored_dirs_layout.addWidget(self.stored_dir_dropdown, 0, 1)
        self.stored_dirs_layout.setColumnStretch(1, 2)
        self.stored_dirs_layout.setContentsMargins(0, 16, 0, 32)

        return self.stored_dirs_layout

    def push_to_group_layout(self):
        # Create a group
        self.group_push_to = QGroupBox(constants.push_branch_str)
        self.group_push_to.setStyleSheet(group_widgets_styles)

        # Create the layout for the branch widgets
        self.pushToLayout = QVBoxLayout()
        self.pushToLayout.setAlignment(Qt.AlignTop)
        self.pushToLayout.setContentsMargins(16, 24, 16, 24)

        # Set the layout to the group
        self.group_push_to.setLayout(self.pushToLayout)

        # Create the staging button and its properties
        self.staging_btn = QPushButton(constants.master_to_staging_str)
        self.staging_btn.clicked.connect(
            lambda: self.handle_branch_push_to_git(constants.master, constants.
                                                   staging))
        self.staging_btn.setCursor(QCursor(Qt.PointingHandCursor))
        self.staging_btn.setStyleSheet(button_styles)

        # Create the production button and its properties
        self.prod_btn = QPushButton(constants.staging_to_prod_str)
        self.prod_btn.setCursor(QCursor(Qt.PointingHandCursor))
        self.prod_btn.clicked.connect(lambda: self.handle_branch_push_to_git(
            constants.staging, constants.production))
        self.prod_btn.setStyleSheet(button_styles)

        self.thread = Thread()
        self.thread.finished.connect(lambda: self.staging_btn.setEnabled(True))
        self.thread.finished.connect(lambda: self.prod_btn.setEnabled(True))

        # Add the button widgets to the layout
        self.pushToLayout.addWidget(self.staging_btn)
        self.pushToLayout.addWidget(self.prod_btn)

        return self.group_push_to
Beispiel #12
0
class TableWidget(QWidget):
    def __init__(self):
        QWidget.__init__(self)

        self.model = CustomTableModel()

        self.table_view = QTableView()
        self.table_view.setModel(self.model)
        self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.table_view.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.chart = QtCharts.QChart()
        self.chart.setAnimationOptions(QtCharts.QChart.AllAnimations)

        self.series = QtCharts.QLineSeries()
        self.series.setName("Line 1")
        self.mapper = QtCharts.QVXYModelMapper(self)
        self.mapper.setXColumn(0)
        self.mapper.setYColumn(1)
        self.mapper.setSeries(self.series)
        self.mapper.setModel(self.model)
        self.chart.addSeries(self.series)

        # for storing color hex from the series
        seriesColorHex = "#000000"

        # get the color of the series and use it for showing the mapped area
        seriesColorHex = "{}".format(self.series.pen().color().name())
        self.model.add_mapping(seriesColorHex, QRect(0, 0, 2, self.model.rowCount()))

        # series 2
        self.series = QtCharts.QLineSeries()
        self.series.setName("Line 2")

        self.mapper = QtCharts.QVXYModelMapper(self)
        self.mapper.setXColumn(2)
        self.mapper.setYColumn(3)
        self.mapper.setSeries(self.series)
        self.mapper.setModel(self.model)
        self.chart.addSeries(self.series)

        # get the color of the series and use it for showing the mapped area
        seriesColorHex = "{}".format(self.series.pen().color().name())
        self.model.add_mapping(seriesColorHex, QRect(2, 0, 2, self.model.rowCount()))

        self.chart.createDefaultAxes()
        self.chart_view = QtCharts.QChartView(self.chart)
        self.chart_view.setRenderHint(QPainter.Antialiasing)
        self.chart_view.setMinimumSize(640, 480)

        # create main layout
        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.table_view, 1, 0)
        self.main_layout.addWidget(self.chart_view, 1, 1)
        self.main_layout.setColumnStretch(1, 1)
        self.main_layout.setColumnStretch(0, 0)
        self.setLayout(self.main_layout)
class TableWidget(QWidget):
    def __init__(self):
        QWidget.__init__(self)

        self.model = CustomTableModel()

        self.table_view = QTableView()
        self.table_view.setModel(self.model)
        self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.table_view.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.chart = QtCharts.QChart()
        self.chart.setAnimationOptions(QtCharts.QChart.AllAnimations)

        self.series = QtCharts.QLineSeries()
        self.series.setName("Line 1")
        self.mapper = QtCharts.QVXYModelMapper(self)
        self.mapper.setXColumn(0)
        self.mapper.setYColumn(1)
        self.mapper.setSeries(self.series)
        self.mapper.setModel(self.model)
        self.chart.addSeries(self.series)

        # for storing color hex from the series
        seriesColorHex = "#000000"

        # get the color of the series and use it for showing the mapped area
        seriesColorHex = "{}".format(self.series.pen().color().name())
        self.model.add_mapping(seriesColorHex, QRect(0, 0, 2, self.model.rowCount()))

        # series 2
        self.series = QtCharts.QLineSeries()
        self.series.setName("Line 2")

        self.mapper = QtCharts.QVXYModelMapper(self)
        self.mapper.setXColumn(2)
        self.mapper.setYColumn(3)
        self.mapper.setSeries(self.series)
        self.mapper.setModel(self.model)
        self.chart.addSeries(self.series)

        # get the color of the series and use it for showing the mapped area
        seriesColorHex = "{}".format(self.series.pen().color().name())
        self.model.add_mapping(seriesColorHex, QRect(2, 0, 2, self.model.rowCount()));

        self.chart.createDefaultAxes()
        self.chart_view = QtCharts.QChartView(self.chart)
        self.chart_view.setRenderHint(QPainter.Antialiasing)
        self.chart_view.setMinimumSize(640, 480)

        # create main layout
        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.table_view, 1, 0)
        self.main_layout.addWidget(self.chart_view, 1, 1)
        self.main_layout.setColumnStretch(1, 1)
        self.main_layout.setColumnStretch(0, 0)
        self.setLayout(self.main_layout)
    def __init__(self, parent=None):
        super(WidgetGallery, self).__init__(parent)

        self.originalPalette = QApplication.palette()

        styleComboBox = QComboBox()
        styleComboBox.addItems(QStyleFactory.keys())

        styleLabel = QLabel("&Style:")
        styleLabel.setBuddy(styleComboBox)

        self.useStylePaletteCheckBox = QCheckBox(
            "&Use style's standard palette")
        self.useStylePaletteCheckBox.setChecked(True)

        disableWidgetsCheckBox = QCheckBox("&Disable widgets")

        self.createTopLeftGroupBox()
        self.createTopRightGroupBox()
        self.createBottomLeftTabWidget()
        self.createBottomRightGroupBox()
        self.createProgressBar()

        styleComboBox.activated[str].connect(self.changeStyle)
        self.useStylePaletteCheckBox.toggled.connect(self.changePalette)
        disableWidgetsCheckBox.toggled.connect(
            self.topLeftGroupBox.setDisabled)
        disableWidgetsCheckBox.toggled.connect(
            self.topRightGroupBox.setDisabled)
        disableWidgetsCheckBox.toggled.connect(
            self.bottomLeftTabWidget.setDisabled)
        disableWidgetsCheckBox.toggled.connect(
            self.bottomRightGroupBox.setDisabled)

        topLayout = QHBoxLayout()
        topLayout.addWidget(styleLabel)
        topLayout.addWidget(styleComboBox)
        topLayout.addStretch(1)
        topLayout.addWidget(self.useStylePaletteCheckBox)
        topLayout.addWidget(disableWidgetsCheckBox)

        mainLayout = QGridLayout()
        mainLayout.addLayout(topLayout, 0, 0, 1, 2)
        mainLayout.addWidget(self.topLeftGroupBox, 1, 0)
        mainLayout.addWidget(self.topRightGroupBox, 1, 1)
        mainLayout.addWidget(self.bottomLeftTabWidget, 2, 0)
        mainLayout.addWidget(self.bottomRightGroupBox, 2, 1)
        mainLayout.addWidget(self.progressBar, 3, 0, 1, 2)
        mainLayout.setRowStretch(1, 1)
        mainLayout.setRowStretch(2, 1)
        mainLayout.setColumnStretch(0, 1)
        mainLayout.setColumnStretch(1, 1)
        self.setLayout(mainLayout)

        self.setWindowTitle("Common Qt Widgets")
        self.changeStyle('Fusion')
class InformationsWindow(QDialog):
    def __init__(self, parent):
        super(InformationsWindow, self).__init__()
        self.parent = parent
        self.setWindowTitle("PyEngine - A Propos")
        self.setFixedSize(500, 300)

        self.grid = QGridLayout()

        title = Label("PyEngine", 18)
        title.setAlignment(Qt.AlignHCenter)

        tvpyengine = Label("Version PyEngine : ", 15)
        vpyengine = Label(pyengine.__version__, 15)
        vpyengine.setAlignment(Qt.AlignHCenter)

        tvpyengine_ui = Label("Version PyEngine-UI : ", 15)
        vpyengine_ui = Label(pyengine_ui.__version__, 15)
        vpyengine_ui.setAlignment(Qt.AlignHCenter)

        tvpyqt = Label("Version PySide2 : ", 15)
        vpyqt = Label(PySide2.__version__, 15)
        vpyqt.setAlignment(Qt.AlignHCenter)

        tvqt = Label("Version Qt : ", 15)
        vqt = Label(QLibraryInfo.version().toString(), 15)
        vqt.setAlignment(Qt.AlignHCenter)

        tauthor = Label("Fait par : ", 15)
        author = Label("Nevinia", 15)
        author.setAlignment(Qt.AlignHCenter)

        self.spacerItem = QSpacerItem(20, 25)

        self.grid.addWidget(title, 0, 0, 1, 2)
        self.grid.addWidget(tvpyengine, 1, 0)
        self.grid.addWidget(vpyengine, 1, 1)
        self.grid.addWidget(tvpyengine_ui, 2, 0)
        self.grid.addWidget(vpyengine_ui, 2, 1)
        self.grid.addWidget(tvpyqt, 3, 0)
        self.grid.addWidget(vpyqt, 3, 1)
        self.grid.addWidget(tvqt, 4, 0)
        self.grid.addWidget(vqt, 4, 1)
        self.grid.addItem(self.spacerItem, 5, 0)
        self.grid.addWidget(tauthor, 6, 0)
        self.grid.addWidget(author, 6, 1)

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

        self.setLayout(self.grid)

        self.setWindowFlags(Qt.CustomizeWindowHint)
        self.setWindowFlags(Qt.WindowTitleHint)
        self.setWindowFlags(Qt.WindowCloseButtonHint)
Beispiel #16
0
class GroupEventWaveform(QGroupBox):
    def __init__(self, parent):
        """Groupbox for pynwb.ecephys.EventWaveform fields filling form."""
        super().__init__()
        self.setTitle('EventWaveform')
        self.parent = parent
        self.group_type = 'EventWaveform'

        self.lbl_name = QLabel('name<span style="color:' +
                               required_asterisk_color + ';">*</span>:')
        self.form_name = QLineEdit('EventWaveform')
        self.form_name.setToolTip("The unique name of this EventWaveform")
        nInstances = 0
        for grp in self.parent.groups_list:
            if isinstance(grp, GroupEventWaveform):
                nInstances += 1
        if nInstances > 0:
            self.form_name.setText('EventWaveform' + str(nInstances))

        self.lbl_spike_event_series = QLabel(
            'spike_event_series<span style="color:' + required_asterisk_color +
            ';">*</span>:')
        self.combo_spike_event_series = CustomComboBox()
        self.combo_spike_event_series.setToolTip(
            "SpikeEventSeries to store in this interface")

        self.grid = QGridLayout()
        self.grid.setColumnStretch(2, 1)
        self.grid.addWidget(self.lbl_name, 0, 0, 1, 2)
        self.grid.addWidget(self.form_name, 0, 2, 1, 4)
        self.grid.addWidget(self.lbl_spike_event_series, 1, 0, 1, 2)
        self.grid.addWidget(self.combo_spike_event_series, 1, 2, 1, 4)
        self.setLayout(self.grid)

    def refresh_objects_references(self, metadata=None):
        """Refreshes references with existing objects in parent group."""
        self.combo_spike_event_series.clear()
        for grp in self.parent.groups_list:
            if isinstance(grp, GroupSpikeEventSeries):
                self.combo_spike_event_series.addItem(grp.form_name.text())

    def read_fields(self):
        """Reads fields and returns them structured in a dictionary."""
        data = {}
        data['name'] = self.form_name.text()
        data['spike_event_series'] = self.combo_spike_event_series.currentText(
        )
        return data

    def write_fields(self, metadata={}):
        """Reads structured dictionary and write in form fields."""
        self.form_name.setText(metadata['name'])
        self.combo_spike_event_series.clear()
        self.combo_spike_event_series.addItem(metadata['spike_event_series'])
Beispiel #17
0
class GroupLFP(QGroupBox):
    def __init__(self, parent):
        """Groupbox for pynwb.ecephys.LFP fields filling form."""
        super().__init__()
        self.setTitle('LFP')
        self.parent = parent
        self.group_type = 'LFP'

        self.lbl_name = QLabel('name<span style="color:' +
                               required_asterisk_color + ';">*</span>:')
        self.form_name = QLineEdit('LFP')
        self.form_name.setToolTip("The unique name of this LFP")
        nInstances = 0
        for grp in self.parent.groups_list:
            if isinstance(grp, GroupLFP):
                nInstances += 1
        if nInstances > 0:
            self.form_name.setText('LFP' + str(nInstances))

        self.lbl_electrical_series = QLabel(
            'electrical_series<span style="color:' + required_asterisk_color +
            ';">*</span>:')
        self.electrical_series = GroupElectricalSeries(self)

        self.lbl_decomposition_series = QLabel(
            'decomposition_series<span style="color:' +
            required_asterisk_color + ';">*</span>:')
        self.decomposition_series = GroupDecompositionSeries(self)

        self.grid = QGridLayout()
        self.grid.setColumnStretch(2, 1)
        self.grid.addWidget(self.lbl_name, 0, 0, 1, 2)
        self.grid.addWidget(self.form_name, 0, 2, 1, 4)
        self.grid.addWidget(self.lbl_electrical_series, 1, 0, 1, 2)
        self.grid.addWidget(self.electrical_series, 1, 2, 1, 4)
        self.grid.addWidget(self.lbl_decomposition_series, 2, 0, 1, 2)
        self.grid.addWidget(self.decomposition_series, 2, 2, 1, 4)
        self.setLayout(self.grid)

    def refresh_objects_references(self, metadata=None):
        """Refreshes references with existing objects in parent group."""
        pass

    def read_fields(self):
        """Reads fields and returns them structured in a dictionary."""
        data = {}
        data['name'] = self.form_name.text()
        data['electrical_series'] = self.electrical_series.read_fields()
        data['decomposition_series'] = self.decomposition_series.read_fields()
        return data

    def write_fields(self, metadata={}):
        """Reads structured dictionary and write in form fields."""
        self.form_name.setText(metadata['name'])
Beispiel #18
0
 def initSubLayout(imageLabel, imagePathLabel):
     subLayout = QGridLayout()
     subLayout.setColumnStretch(1, 9)
     subLayout.addWidget(imageLabel, 0, 0)
     subLayout.addWidget(imagePathLabel,
                         1,
                         0,
                         1,
                         2,
                         alignment=Qt.AlignRight | Qt.AlignTop)
     return subLayout
Beispiel #19
0
    def __init__(self, parent, data):
        super(SegmentsWidget, self).__init__(parent)

        layout = QGridLayout()
        layout.setContentsMargins(0, 0, 0, 0)
        layout.setVerticalSpacing(1)
        layout.setHorizontalSpacing(
            UIContext.getScaledWindowSize(16, 16).width())

        self.segments = []
        for segment in data.segments:
            if segment.readable or segment.writable or segment.executable:
                self.segments.append(segment)
        self.segments.sort(key=lambda segment: segment.start)

        row = 0
        for segment in self.segments:
            begin = "0x%x" % segment.start
            end = "0x%x" % segment.end

            permissions = ""
            if segment.readable:
                permissions += "r"
            else:
                permissions += "-"
            if segment.writable:
                permissions += "w"
            else:
                permissions += "-"
            if segment.executable:
                permissions += "x"
            else:
                permissions += "-"

            rangeLayout = QHBoxLayout()
            rangeLayout.setContentsMargins(0, 0, 0, 0)
            beginLabel = headers.ClickableAddressLabel(begin)
            dashLabel = QLabel("-")
            dashLabel.setFont(binaryninjaui.getMonospaceFont(self))
            endLabel = headers.ClickableAddressLabel(end)
            rangeLayout.addWidget(beginLabel)
            rangeLayout.addWidget(dashLabel)
            rangeLayout.addWidget(endLabel)
            layout.addLayout(rangeLayout, row, 0)

            permissionsLabel = QLabel(permissions)
            permissionsLabel.setFont(binaryninjaui.getMonospaceFont(self))
            layout.addWidget(permissionsLabel, row, 1)

            row += 1

        layout.setColumnStretch(2, 1)
        self.setLayout(layout)
Beispiel #20
0
class TableWidget(QWidget):
    def __init__(self, data):
        QWidget.__init__(self)

        self.model = CustomTableModel(data)

        self.table_view = QTableView()
        self.table_view.setModel(self.model)
        self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.table_view.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.table_view.setMinimumSize(400, 600)

        self.chart = QtCharts.QChart()
        self.chart.setAnimationOptions(QtCharts.QChart.AllAnimations)

        self.init_data()

        self.chart.createDefaultAxes()
        self.chart_view = QtCharts.QChartView(self.chart)
        self.chart_view.setRenderHint(QPainter.Antialiasing)
        self.chart_view.setMinimumSize(800, 600)

        # create main layout
        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.table_view, 1, 0)
        self.main_layout.addWidget(self.chart_view, 1, 1)
        self.main_layout.setColumnStretch(1, 2)
        self.main_layout.setColumnStretch(0, 1)
        self.setLayout(self.main_layout)

    def add_series(self, name, columns):
        self.series = QtCharts.QLineSeries()
        self.series.setName(name)
        self.mapper = QtCharts.QVXYModelMapper(self)
        self.mapper.setXColumn(columns[0])
        self.mapper.setYColumn(columns[1])
        self.mapper.setSeries(self.series)
        self.mapper.setModel(self.model)
        self.chart.addSeries(self.series)

        # for storing color hex from the series
        seriesColorHex = "#000000"

        # get the color of the series and use it for showing the mapped area
        seriesColorHex = "{}".format(self.series.pen().color().name())
        self.model.add_mapping(seriesColorHex,
            QRect(columns[0], 0, 2, self.model.rowCount()))

    def init_data(self):
        for i in range(int(self.model.columnCount()/2)):
            self.add_series("Line {}".format(i+1), [i*2, (i*2)+1])
Beispiel #21
0
    def __init__(self, model, parent=None):
        super(BarChartWidget, self).__init__(parent)

        self.model = model

        grid = QGridLayout(self)

        # https://stackoverflow.com/questions/35946289/qt-qgridlayout-setrowstretch-not-working

        settingsGrid = QGridLayout(self)

        settingsGrid.addWidget(QLabel("Dataset"), 0, 0)

        self.datasetLabel = QLabel("no dataset")

        settingsGrid.addWidget(self.datasetLabel, 1, 0, 1, 2)
        settingsGrid.addWidget(QLabel("X Axis"), 2, 0)
        settingsGrid.addWidget(QLabel("Y Axis"), 3, 0)

        dataSetButton = QPushButton("Choose dataset", self)
        dataSetButton.clicked.connect(self.chooseDataset)

        self.xAxisComboBox = QComboBox(self)
        self.yAxisComboBox = QComboBox(self)

        settingsGrid.addWidget(dataSetButton, 0, 1)
        settingsGrid.addWidget(self.xAxisComboBox, 2, 1)
        settingsGrid.addWidget(self.yAxisComboBox, 3, 1)

        # settingsGrid.addWidget(QLabel("4"), 4, 1)

        createChartButton = QPushButton("Create Chart", self)
        createChartButton.clicked.connect(self.createChart)
        settingsGrid.addWidget(createChartButton, 4, 1)

        settingsGrid.setRowStretch(5, 10)

        grid.addLayout(settingsGrid, 0, 0)

        self.chart = QStackedWidget()
        grid.addWidget(self.chart, 0, 1)

        # self.chart.addWidget(QLabel("skka"))

        grid.setColumnStretch(0, 1)
        grid.setColumnStretch(1, 1)

        self.setLayout(grid)

        self.loadDataset("all_hour.csv")
Beispiel #22
0
    def __init__(self):
        super().__init__()

        self._analysis = None
        self._cancel_message_box = None

        self._title = PageTitle("Initialisation de l'analyse", False, self)

        self._stat_component = StatComponent()
        self._image_component = ImageComponent()
        self._progress_component = ProgressComponent()

        components_layout = QGridLayout()
        components_layout.setHorizontalSpacing(20)
        components_layout.setColumnStretch(0, 6)
        components_layout.setColumnStretch(1, 5)

        components_layout.addWidget(self._stat_component, 0, 0)
        components_layout.addWidget(self._image_component, 0, 1)
        components_layout.addWidget(self._progress_component, 1, 0, 1, 2)

        self._return_button = StylizedButton("Annuler", "yellow")
        self._return_button.setSizePolicy(QSizePolicy.Maximum,
                                          QSizePolicy.Maximum)

        button_layout = QHBoxLayout()
        button_layout.setAlignment(Qt.AlignRight)
        button_layout.setSpacing(35)
        button_layout.addWidget(self._return_button)

        main_layout = QVBoxLayout()
        main_layout.addWidget(self._title)
        main_layout.addLayout(components_layout)
        main_layout.addLayout(button_layout)

        self.setLayout(main_layout)

        self._return_button.clicked.connect(self._returnClick)

        self._analysis_thread = AnalysisThread()
        self._analysis_thread.initialized.connect(
            self._neuralNetworkInitialized)
        self._analysis_thread.imageProcessed.connect(self._imageProcessed)
        self._analysis_thread.completed.connect(self._analysisFinished)

        self._post_analysis_thread = PostAnalysisThread()
        self._post_analysis_thread.completed.connect(
            self._postAnalysisFinished)
Beispiel #23
0
    def initUI(self):
        mainLayout = QGridLayout(self)
        mainLayout.setAlignment(Qt.AlignLeft | Qt.AlignTop)
        mainLayout.setColumnStretch(0, 0)
        mainLayout.setColumnStretch(1, 1)
        mainLayout.setColumnStretch(2, 1)
        mainLayout.setColumnStretch(3, 1)
        self.setLayout(mainLayout)

        nameText = QLabel('Name:')
        nameText.setAlignment(Qt.AlignRight)
        self.nameIn = QLineEdit()
        self.nameIn.setText(self.text)
        mainLayout.addWidget(nameText, 0, 0)
        mainLayout.addWidget(self.nameIn, 0, 1, 1, 3)

        langText = QLabel('Language:')
        langText.setAlignment(Qt.AlignRight)
        self.pyCheck = QRadioButton(CommandType.PYTHON)
        if self.cmdType == self.pyCheck.text():
            self.pyCheck.setChecked(True)
        self.melCheck = QRadioButton(CommandType.MEL)
        if self.cmdType == self.melCheck.text():
            self.melCheck.setChecked(True)
        mainLayout.addWidget(langText, 1, 0)
        mainLayout.addWidget(self.pyCheck, 1, 1)
        mainLayout.addWidget(self.melCheck, 1, 3)

        cmdText = QLabel('Command:')
        cmdText.setAlignment(Qt.AlignRight | Qt.AlignTop)
        self.cmdIn = QTextEdit()
        self.cmdIn.setPlainText(self.cmd)
        mainLayout.addWidget(cmdText, 2, 0)
        mainLayout.addWidget(self.cmdIn, 2, 1, 1, 3)

        okBtn = QPushButton("OK")
        okBtn.clicked.connect(self.accept)
        testBtn = QPushButton("Test")
        testBtn.clicked.connect(self.onTest)
        cancelBtn = QPushButton("Cancel")
        cancelBtn.clicked.connect(self.reject)

        mainLayout.addWidget(okBtn, 3, 1, 1, 1)
        mainLayout.addWidget(testBtn, 3, 2, 1, 1)
        mainLayout.addWidget(cancelBtn, 3, 3, 1, 1)
        self.setWindowTitle("Edit Command")
        self.setWindowFlags(Qt.WindowStaysOnTopHint)
Beispiel #24
0
    def __init__(self):
        super().__init__()

        self.setTitle("Paramètres")
        self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum)
        
        # Main layout
        main_layout = QHBoxLayout(self)
        main_layout.setSpacing(20)

        left_layout = QFormLayout()
        left_layout.setHorizontalSpacing(20)
        left_layout.setVerticalSpacing(14)

        self._threshold_sbox = QSpinBox()
        self._threshold_sbox.setRange(1, 99)
        self._threshold_sbox.setSuffix(" %")
        self._threshold_sbox.setMaximumWidth(250)
        left_layout.addRow("Seuil de détection :", self._threshold_sbox)

        self._devices_list = QComboBox()
        self._devices_list.setMaximumWidth(250)
        self._setDevicesList()

        left_layout.addRow("Processeur à utiliser :", self._devices_list)

        morphotype_layout = QGridLayout()
        morphotype_layout.setSpacing(5)

        morphotype_layout.addWidget(QLabel("Morphotypes à détecter :"), 0, 0, 1, 4)

        self._tab_cbox = {}
        for k,m in Loader.SpongesMorphotypes().items():
            sponge_cbox = QCheckBox(m.name())
            self._tab_cbox[k] = sponge_cbox

            x = k%2 + 1
            y = k//2 + 1
            morphotype_layout.addWidget(sponge_cbox, x, y)

        morphotype_layout.setColumnMinimumWidth(0, 15)
        morphotype_layout.setColumnStretch(0, 0)

        main_layout.addLayout(left_layout)
        main_layout.addLayout(morphotype_layout)

        self.setLayout(main_layout)
Beispiel #25
0
 def set_ui(self):
     layout = QGridLayout()
     layout.addWidget(self.target_wl.title, 0, 0)
     layout.addWidget(self.target_wl.edit, 0, 1)
     layout.addWidget(self.target_wl.unit, 0, 2)
     layout.addWidget(self.set_wl, 0, 3)
     # layout.addWidget(self.tune_step.title, 1, 0)
     # layout.addWidget(self.tune_step.edit, 1, 1)
     # layout.addWidget(self.tune_step.unit, 1, 2)
     # layout.addWidget(self.plus, 1, 3)
     # layout.addWidget(self.min, 1, 4)
     layout.addWidget(self.show_vernier, 1, 1)
     layout.addWidget(self.update_vernier, 1, 3)
     layout.setColumnStretch(4, 1)
     # layout.addWidget("", 0, 4, 1, 4)
     # layout.addWidget("", 1, 4, 1, 4)
     self.setLayout(layout)
Beispiel #26
0
    def createOptionsGroupBox(self):
        self.optionsGroupBox = QGroupBox("Options")

        buttonsOrientationLabel = QLabel("Orientation of buttons:")

        buttonsOrientationComboBox = QComboBox()
        buttonsOrientationComboBox.addItem("Horizontal", Qt.Horizontal)
        buttonsOrientationComboBox.addItem("Vertical", Qt.Vertical)
        buttonsOrientationComboBox.currentIndexChanged[int].connect(self.buttonsOrientationChanged)

        self.buttonsOrientationComboBox = buttonsOrientationComboBox

        optionsLayout = QGridLayout()
        optionsLayout.addWidget(buttonsOrientationLabel, 0, 0)
        optionsLayout.addWidget(self.buttonsOrientationComboBox, 0, 1)
        optionsLayout.setColumnStretch(2, 1)
        self.optionsGroupBox.setLayout(optionsLayout)
    def createOptionsGroupBox(self):
        self.optionsGroupBox = QGroupBox("Options")

        buttonsOrientationLabel = QLabel("Orientation of buttons:")

        buttonsOrientationComboBox = QComboBox()
        buttonsOrientationComboBox.addItem("Horizontal", Qt.Horizontal)
        buttonsOrientationComboBox.addItem("Vertical", Qt.Vertical)
        buttonsOrientationComboBox.currentIndexChanged[int].connect(self.buttonsOrientationChanged)

        self.buttonsOrientationComboBox = buttonsOrientationComboBox

        optionsLayout = QGridLayout()
        optionsLayout.addWidget(buttonsOrientationLabel, 0, 0)
        optionsLayout.addWidget(self.buttonsOrientationComboBox, 0, 1)
        optionsLayout.setColumnStretch(2, 1)
        self.optionsGroupBox.setLayout(optionsLayout)
class GroupPupilTracking(QGroupBox):
    def __init__(self, parent):
        """Groupbox for pynwb.behavior.PupilTracking fields filling form."""
        super().__init__()
        self.setTitle('PupilTracking')
        self.parent = parent
        self.group_type = 'PupilTracking'

        self.lbl_name = QLabel('name<span style="color:' +
                               required_asterisk_color + ';">*</span>:')
        self.form_name = QLineEdit('PupilTracking')
        self.form_name.setToolTip("The unique name of this PupilTracking")
        nInstances = 0
        for grp in self.parent.groups_list:
            if isinstance(grp, GroupPupilTracking):
                nInstances += 1
        if nInstances > 0:
            self.form_name.setText('PupilTracking' + str(nInstances))

        self.lbl_time_series = QLabel('time_series:')
        self.time_series = GroupTimeSeries(self)
        # self.combo_time_series = CustomComboBox()
        # self.combo_time_series.setToolTip("TimeSeries to store in this interface")

        self.grid = QGridLayout()
        self.grid.setColumnStretch(2, 1)
        self.grid.addWidget(self.lbl_name, 0, 0, 1, 2)
        self.grid.addWidget(self.form_name, 0, 2, 1, 4)
        self.grid.addWidget(self.lbl_time_series, 1, 0, 1, 2)
        self.grid.addWidget(self.time_series, 1, 2, 1, 4)
        self.setLayout(self.grid)

    def refresh_objects_references(self, metadata=None):
        """Refreshes references with existing objects in parent group."""
        pass

    def read_fields(self):
        """Reads fields and returns them structured in a dictionary."""
        data = {}
        data['name'] = self.form_name.text()
        data['time_series'] = self.time_series.read_fields()
        return data

    def write_fields(self, data={}):
        """Reads structured dictionary and write in form fields."""
        self.form_name.setText(data['name'])
Beispiel #29
0
    def make_ui(self):
        """Create and lay out UI elements."""

        filter = QSpinBox()
        filter.setRange(1, 6)
        self.widgets['filter'] = filter

        btn_start = QPushButton()
        btn_start.setText('Start')
        btn_start.clicked.connect(self.run)
        self.widgets['btn_start'] = btn_start

        side_panel = QGridLayout()
        side_panel.setColumnStretch(0, 0)
        side_panel.setColumnStretch(1, 1)
        side_panel.setColumnStretch(2, 1)
        side_panel.setRowStretch(6, 1)  # shove everything to the top

        side_panel.addWidget(QLabel('<h2>Controls</h2>'), 0, 0, 1, 2)
        side_panel.addWidget(QLabel('Filter:'), 1, 0)
        side_panel.addWidget(filter, 1, 1)
        side_panel.addWidget(btn_start, 2, 0, 1, 2)

        graph = FigureCanvas(Figure(tight_layout=True))
        graph_toolbar = NavigationToolBar(graph, None)
        graph_toolbar.setObjectName('GraphToolBar')
        self.widgets['graph'] = graph
        axis = graph.figure.subplots()
        axis.grid()
        axis.set_xlim(0, 100)
        axis.set_ylim(0, 10)

        self.widgets['axis'] = axis

        vbox = QVBoxLayout()
        vbox.addWidget(graph)
        vbox.addWidget(graph_toolbar)

        hbox = QHBoxLayout()
        hbox.addLayout(side_panel)
        hbox.addLayout(vbox, 1)

        main_widget = QFrame()
        main_widget.setLayout(hbox)

        return main_widget
Beispiel #30
0
    def createGridGroupBox(self):
        self.gridGroupBox = QGroupBox("Grid layout")
        layout = QGridLayout()

        for i in range(Dialog.NumGridRows):
            label = QLabel("Line %d:" % (i + 1))
            lineEdit = QLineEdit()
            layout.addWidget(label, i + 1, 0)
            layout.addWidget(lineEdit, i + 1, 1)

        self.smallEditor = QTextEdit()
        self.smallEditor.setPlainText(
            "This widget takes up about two thirds of the grid layout.")

        layout.addWidget(self.smallEditor, 0, 2, 4, 1)

        layout.setColumnStretch(1, 10)
        layout.setColumnStretch(2, 20)
        self.gridGroupBox.setLayout(layout)
Beispiel #31
0
	def __init__(self, parent, header):
		super(HeaderWidget, self).__init__(parent)
		layout = QGridLayout()
		layout.setContentsMargins(0, 0, 0, 0)
		layout.setVerticalSpacing(1)
		row = 0
		col = 0
		for field in header.fields:
			name = field[0]
			value = field[1]
			fieldType = ""
			if len(field) > 2:
				fieldType = field[2]
			layout.addWidget(QLabel(name + ": "), row, col * 3)
			if isinstance(value, list):
				for i in range(0, len(value)):
					if fieldType == "ptr":
						label = ClickableAddressLabel(value[i])
					elif fieldType == "code":
						label = ClickableCodeLabel(value[i])
					else:
						label = QLabel(value[i])
						label.setFont(binaryninjaui.getMonospaceFont(self))
					layout.addWidget(label, row, col * 3 + 1)
					row += 1
			else:
				if fieldType == "ptr":
					label = ClickableAddressLabel(value)
				elif fieldType == "code":
					label = ClickableCodeLabel(value)
				else:
					label = QLabel(value)
					label.setFont(binaryninjaui.getMonospaceFont(self))
				layout.addWidget(label, row, col * 3 + 1)
				row += 1
			if (header.columns > 1) and (row >= header.rows_per_column) and ((col + 1) < header.columns):
				row = 0
				col += 1
		for col in range(1, header.columns):
			layout.setColumnMinimumWidth(col * 3 - 1, UIContext.getScaledWindowSize(20, 20).width())
		layout.setColumnStretch(header.columns * 3 - 1, 1)
		self.setLayout(layout)
Beispiel #32
0
    def createBinsBox(self):
        self.binstable = QTableWidget(0, 4)
        self.binstable_isready = False
        labels = [
            "no. of HKLs", "lower bin value", "upper bin value", "opacity"
        ]
        self.binstable.setHorizontalHeaderLabels(labels)
        self.binstable.horizontalHeader().setDefaultAlignment(Qt.AlignLeft)
        self.bindata_labeltxt = QLabel()
        self.bindata_labeltxt.setText("Data binned:")
        self.Nbins_spinBox = QSpinBox()
        self.Nbins_spinBox.setSingleStep(1)
        self.Nbins_spinBox.setRange(1, 40)
        self.Nbins_spinBox.valueChanged.connect(self.onNbinsChanged)
        self.Nbins_labeltxt = QLabel()
        self.Nbins_labeltxt.setText("Number of bins:")

        self.OpaqueAllCheckbox = QCheckBox()
        #self.OpaqueAllCheckbox.setTristate()
        self.OpaqueAllCheckbox.setCheckState(Qt.Checked)
        self.OpaqueAllCheckbox.setText("Show all data in bins")
        self.OpaqueAllCheckbox.clicked.connect(self.onOpaqueAll)

        self.binstable.itemChanged.connect(self.onBinsTableItemChanged)
        self.binstable.itemSelectionChanged.connect(
            self.onBinsTableItemSelectionChanged)
        self.BinDataComboBox = QComboBox()
        self.BinDataComboBox.activated.connect(self.onBindataComboSelchange)
        self.BinsGroupBox = QGroupBox("Bins")
        layout = QGridLayout()
        layout.addWidget(self.bindata_labeltxt, 0, 0)
        layout.addWidget(self.BinDataComboBox, 0, 1)
        layout.addWidget(self.Nbins_labeltxt, 0, 2)
        layout.addWidget(self.Nbins_spinBox, 0, 3)
        layout.addWidget(self.OpaqueAllCheckbox, 1, 2)
        layout.addWidget(self.binstable, 2, 0, 1, 4)
        layout.setColumnStretch(0, 0)
        layout.setColumnStretch(1, 2)
        layout.setColumnStretch(3, 1)
        self.BinsGroupBox.setLayout(layout)
Beispiel #33
0
    def initPixelInfoLayout(self):
        layout = QGridLayout()
        layout.setColumnStretch(3, 9)
        layout.setVerticalSpacing(0)
        layout.setHorizontalSpacing(20)

        self.pixelXY1Label = QLabel()
        self.pixelXY2Label = QLabel()
        self.pixelIndex1Label = QLabel()
        self.pixelIndex2Label = QLabel()
        self.pixelColor1Label = QLabel()
        self.pixelColor2Label = QLabel()

        layout.addWidget(self.pixelXY1Label,
                         0,
                         0,
                         alignment=Qt.AlignLeft | Qt.AlignTop)
        layout.addWidget(self.pixelXY2Label,
                         1,
                         0,
                         alignment=Qt.AlignLeft | Qt.AlignTop)
        layout.addWidget(self.pixelIndex1Label,
                         0,
                         1,
                         alignment=Qt.AlignLeft | Qt.AlignTop)
        layout.addWidget(self.pixelIndex2Label,
                         1,
                         1,
                         alignment=Qt.AlignLeft | Qt.AlignTop)
        layout.addWidget(self.pixelColor1Label,
                         0,
                         2,
                         alignment=Qt.AlignLeft | Qt.AlignTop)
        layout.addWidget(self.pixelColor2Label,
                         1,
                         2,
                         alignment=Qt.AlignLeft | Qt.AlignTop)

        return layout
Beispiel #34
0
    def __init__(self):
        super(Window, self).__init__()

        self.renderArea = RenderArea()

        self.shapeComboBox = QComboBox()
        self.shapeComboBox.addItem("Polygon", RenderArea.Polygon)
        self.shapeComboBox.addItem("Rectangle", RenderArea.Rect)
        self.shapeComboBox.addItem("Rounded Rectangle", RenderArea.RoundedRect)
        self.shapeComboBox.addItem("Ellipse", RenderArea.Ellipse)
        self.shapeComboBox.addItem("Pie", RenderArea.Pie)
        self.shapeComboBox.addItem("Chord", RenderArea.Chord)
        self.shapeComboBox.addItem("Path", RenderArea.Path)
        self.shapeComboBox.addItem("Line", RenderArea.Line)
        self.shapeComboBox.addItem("Polyline", RenderArea.Polyline)
        self.shapeComboBox.addItem("Arc", RenderArea.Arc)
        self.shapeComboBox.addItem("Points", RenderArea.Points)
        self.shapeComboBox.addItem("Text", RenderArea.Text)
        self.shapeComboBox.addItem("Pixmap", RenderArea.Pixmap)

        shapeLabel = QLabel("&Shape:")
        shapeLabel.setBuddy(self.shapeComboBox)

        self.penWidthSpinBox = QSpinBox()
        self.penWidthSpinBox.setRange(0, 20)
        self.penWidthSpinBox.setSpecialValueText("0 (cosmetic pen)")

        penWidthLabel = QLabel("Pen &Width:")
        penWidthLabel.setBuddy(self.penWidthSpinBox)

        self.penStyleComboBox = QComboBox()
        self.penStyleComboBox.addItem("Solid", Qt.SolidLine)
        self.penStyleComboBox.addItem("Dash", Qt.DashLine)
        self.penStyleComboBox.addItem("Dot", Qt.DotLine)
        self.penStyleComboBox.addItem("Dash Dot", Qt.DashDotLine)
        self.penStyleComboBox.addItem("Dash Dot Dot", Qt.DashDotDotLine)
        self.penStyleComboBox.addItem("None", Qt.NoPen)

        penStyleLabel = QLabel("&Pen Style:")
        penStyleLabel.setBuddy(self.penStyleComboBox)

        self.penCapComboBox = QComboBox()
        self.penCapComboBox.addItem("Flat", Qt.FlatCap)
        self.penCapComboBox.addItem("Square", Qt.SquareCap)
        self.penCapComboBox.addItem("Round", Qt.RoundCap)

        penCapLabel = QLabel("Pen &Cap:")
        penCapLabel.setBuddy(self.penCapComboBox)

        self.penJoinComboBox = QComboBox()
        self.penJoinComboBox.addItem("Miter", Qt.MiterJoin)
        self.penJoinComboBox.addItem("Bevel", Qt.BevelJoin)
        self.penJoinComboBox.addItem("Round", Qt.RoundJoin)

        penJoinLabel = QLabel("Pen &Join:")
        penJoinLabel.setBuddy(self.penJoinComboBox)

        self.brushStyleComboBox = QComboBox()
        self.brushStyleComboBox.addItem("Linear Gradient",
                Qt.LinearGradientPattern)
        self.brushStyleComboBox.addItem("Radial Gradient",
                Qt.RadialGradientPattern)
        self.brushStyleComboBox.addItem("Conical Gradient",
                Qt.ConicalGradientPattern)
        self.brushStyleComboBox.addItem("Texture", Qt.TexturePattern)
        self.brushStyleComboBox.addItem("Solid", Qt.SolidPattern)
        self.brushStyleComboBox.addItem("Horizontal", Qt.HorPattern)
        self.brushStyleComboBox.addItem("Vertical", Qt.VerPattern)
        self.brushStyleComboBox.addItem("Cross", Qt.CrossPattern)
        self.brushStyleComboBox.addItem("Backward Diagonal", Qt.BDiagPattern)
        self.brushStyleComboBox.addItem("Forward Diagonal", Qt.FDiagPattern)
        self.brushStyleComboBox.addItem("Diagonal Cross", Qt.DiagCrossPattern)
        self.brushStyleComboBox.addItem("Dense 1", Qt.Dense1Pattern)
        self.brushStyleComboBox.addItem("Dense 2", Qt.Dense2Pattern)
        self.brushStyleComboBox.addItem("Dense 3", Qt.Dense3Pattern)
        self.brushStyleComboBox.addItem("Dense 4", Qt.Dense4Pattern)
        self.brushStyleComboBox.addItem("Dense 5", Qt.Dense5Pattern)
        self.brushStyleComboBox.addItem("Dense 6", Qt.Dense6Pattern)
        self.brushStyleComboBox.addItem("Dense 7", Qt.Dense7Pattern)
        self.brushStyleComboBox.addItem("None", Qt.NoBrush)

        brushStyleLabel = QLabel("&Brush Style:")
        brushStyleLabel.setBuddy(self.brushStyleComboBox)

        otherOptionsLabel = QLabel("Other Options:")
        self.antialiasingCheckBox = QCheckBox("&Antialiasing")
        self.transformationsCheckBox = QCheckBox("&Transformations")

        self.shapeComboBox.activated.connect(self.shapeChanged)
        self.penWidthSpinBox.valueChanged.connect(self.penChanged)
        self.penStyleComboBox.activated.connect(self.penChanged)
        self.penCapComboBox.activated.connect(self.penChanged)
        self.penJoinComboBox.activated.connect(self.penChanged)
        self.brushStyleComboBox.activated.connect(self.brushChanged)
        self.antialiasingCheckBox.toggled.connect(self.renderArea.setAntialiased)
        self.transformationsCheckBox.toggled.connect(self.renderArea.setTransformed)

        mainLayout = QGridLayout()
        mainLayout.setColumnStretch(0, 1)
        mainLayout.setColumnStretch(3, 1)
        mainLayout.addWidget(self.renderArea, 0, 0, 1, 4)
        mainLayout.setRowMinimumHeight(1, 6)
        mainLayout.addWidget(shapeLabel, 2, 1, Qt.AlignRight)
        mainLayout.addWidget(self.shapeComboBox, 2, 2)
        mainLayout.addWidget(penWidthLabel, 3, 1, Qt.AlignRight)
        mainLayout.addWidget(self.penWidthSpinBox, 3, 2)
        mainLayout.addWidget(penStyleLabel, 4, 1, Qt.AlignRight)
        mainLayout.addWidget(self.penStyleComboBox, 4, 2)
        mainLayout.addWidget(penCapLabel, 5, 1, Qt.AlignRight)
        mainLayout.addWidget(self.penCapComboBox, 5, 2)
        mainLayout.addWidget(penJoinLabel, 6, 1, Qt.AlignRight)
        mainLayout.addWidget(self.penJoinComboBox, 6, 2)
        mainLayout.addWidget(brushStyleLabel, 7, 1, Qt.AlignRight)
        mainLayout.addWidget(self.brushStyleComboBox, 7, 2)
        mainLayout.setRowMinimumHeight(8, 6)
        mainLayout.addWidget(otherOptionsLabel, 9, 1, Qt.AlignRight)
        mainLayout.addWidget(self.antialiasingCheckBox, 9, 2)
        mainLayout.addWidget(self.transformationsCheckBox, 10, 2)
        self.setLayout(mainLayout)

        self.shapeChanged()
        self.penChanged()
        self.brushChanged()
        self.antialiasingCheckBox.setChecked(True)

        self.setWindowTitle("Basic Drawing")