class CustomSplitter(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.splitter = QSplitter(self)
        self.splitter.addWidget(QTextEdit(self))
        self.splitter.addWidget(QTextEdit(self))
        layout = QVBoxLayout(self)
        layout.addWidget(self.splitter)
        handle = self.splitter.handle(1)
        layout = QVBoxLayout()
        layout.setContentsMargins(0, 0, 0, 0)
        button = QToolButton(handle)
        button.setArrowType(Qt.LeftArrow)
        button.clicked.connect(lambda: self.handleSplitterButton(True))
        layout.addWidget(button)
        button = QToolButton(handle)
        button.setArrowType(Qt.RightArrow)
        button.clicked.connect(lambda: self.handleSplitterButton(False))
        layout.addWidget(button)
        handle.setLayout(layout)

    def handleSplitterButton(self, left=True):
        if not all(self.splitter.sizes()):
            self.splitter.setSizes([1, 1])
        elif left:
            self.splitter.setSizes([0, 1])
        else:
            self.splitter.setSizes([1, 0])
Example #2
0
    def _setup_ui(self):
        """Widget layout configuration."""
        splitter = QSplitter()

        # Set label names
        self._ttv_info_layout.setFieldGrowthPolicy(
            QFormLayout.FieldsStayAtSizeHint)
        self._ttv_info_layout.addRow("Name ", self._ttv_name_label)
        self._ttv_info_layout.addRow("Total items (train)",
                                     self._train_len_label)
        self._ttv_info_layout.addRow("Total items (test)",
                                     self._test_len_label)
        self._ttv_info_layout.addRow("Total items (validation)",
                                     self._validation_len_label)
        self._ttv_info_layout.addRow("Shape (train): ",
                                     self._train_shape_label)

        ttv_info_widget = QWidget()
        ttv_info_widget.setLayout(self._ttv_info_layout)

        splitter.addWidget(ttv_info_widget)
        splitter.addWidget(self._ttv_tabs)

        self._main_layout.addWidget(splitter, 0, 0)
        self._main_layout.setContentsMargins(0, 0, 0, 0)

        self.setLayout(self._main_layout)
Example #3
0
 def __init__(self, totaltime=0):
     super().__init__()
     # 在主窗口左侧添加题干和选项
     lsplitter = QSplitter(Qt.Vertical)
     self.question_panel = Question_panel()
     lsplitter.addWidget(self.question_panel)
     # 在主窗口右侧添加绘图和文本编辑,并把比例设置为3比1
     rsplitter = QSplitter(Qt.Vertical)
     self.painter = QGraphicsView(rsplitter)
     self.note = QTextEdit(rsplitter)
     rsplitter.setStretchFactor(0, 3)
     rsplitter.setStretchFactor(1, 1)
     # 添加插件的顺序会导致左右不同
     mainSplitter = QSplitter(Qt.Horizontal)
     mainSplitter.addWidget(lsplitter)
     mainSplitter.addWidget(rsplitter)
     self.setCentralWidget(mainSplitter)
     # 点击暂停按钮切换图标和停继时间
     self.question_panel.ui.pushButtonPause.clicked.connect(
         self.toggle_play_and_pause)
     self.totaltime = totaltime  # 当前试卷答题总时间
     self.elapsed_time = QElapsedTimer()  # 答题总时间的计时器
     self.paused = False  # 默认刚打开时,还未暂停时间
     self.setTime()  # 更新时间显示
     self.timer = QTimer()
     self.timer.timeout.connect(self.setTime)  # 每秒更新时间显示的定时器
Example #4
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self._workbench: WorkbenchModel = None

        sideWidget = QWidget(self)
        sideLayout = QVBoxLayout()
        self.CBL = QComboBox(sideWidget)
        self.CBR = QComboBox(sideWidget)
        self.columnsL = SearchableAttributeTableWidget(sideWidget, True, showTypes=True)
        self.columnsR = SearchableAttributeTableWidget(sideWidget, True, showTypes=True)
        button = QPushButton('Compute diff', self)
        sideLayout.addWidget(self.CBL)
        sideLayout.addWidget(self.columnsL)
        sideLayout.addWidget(self.CBR)
        sideLayout.addWidget(self.columnsR)
        sideLayout.addWidget(button)
        sideWidget.setLayout(sideLayout)

        self.tableWidget = QTableView(self)

        splitter = QSplitter(self)
        splitter.addWidget(sideWidget)
        splitter.addWidget(self.tableWidget)

        layout = QHBoxLayout(self)
        layout.addWidget(splitter)

        self.CBL.currentTextChanged.connect(self.setAttributeModelL)
        self.CBR.currentTextChanged.connect(self.setAttributeModelR)
        button.clicked.connect(self.computeDiff)
Example #5
0
    def __init__(self, parent):
        super(EditSourceCodeDialog, self).__init__(parent)

        # create UI
        self.main_grid_layout = QGridLayout(self)

        main_vertical_splitter = QSplitter()
        main_vertical_splitter.setOrientation(Qt.Vertical)

        #   instructions and actions layout
        header_widget = QWidget()
        header_layout = QHBoxLayout()

        instructions_text_edit = QTextEdit()
        instructions_text_edit.setText(instructions_text)
        instructions_text_edit.setEnabled(False)

        reset_button = QPushButton()
        reset_button.setText('reset')
        reset_button.clicked.connect(self.reset)

        header_layout.addWidget(instructions_text_edit)
        header_layout.addWidget(reset_button)

        header_widget.setLayout(header_layout)


        main_vertical_splitter.addWidget(header_widget)

        #   code text edit
        self.code_text_edit = CodeEditor()
        self.code_text_edit.static_elements = ['def update(self, input_called=-1, token=None):',
                                               'self.data_outputs_updated()',
                                               'def get_data(self):',
                                               'def set_data(self, data):',
                                               '''	def __init__(self, parent_node: Node, flow, configuration=None):
		super(%NODE_TITLE%_NodeInstance, self).__init__(parent_node, flow, configuration)''',
                                               'class %NODE_TITLE%_NodeInstance']
        self.code_text_edit.components = ['self.main_widget',
                                          'self.outputs',
                                          'self.input',
                                          'self.special_actions']
        main_vertical_splitter.addWidget(self.code_text_edit)



        self.main_grid_layout.addWidget(main_vertical_splitter)


        button_box = QDialogButtonBox()
        button_box.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok)
        button_box.accepted.connect(self.accept)
        button_box.rejected.connect(self.reject)
        self.main_grid_layout.addWidget(button_box)

        self.setWindowTitle('Edit Source Code')
        self.resize(1300, 950)


        self.reset()
Example #6
0
    def __init__(self):
        QMainWindow.__init__(self)
        self.setWindowTitle('vizzero')

        self.core_controller = CoreController()
        self.plugins = [Handsim(self.core_controller), RecordHandFixed(self.core_controller)]

        vbox = QVBoxLayout(self)
        window = QWidget()
        window.setLayout(vbox)

        self.myo_canvas = RealtimeCanvas(self.core_controller)
        self.myo_canvas.native.setParent(window)
        self.sensor_controls = SensorControls(self.core_controller.sensor_controller)
        vbox.addWidget(self.sensor_controls)
        vbox.addWidget(self.myo_canvas.native)

        self.node_proc = None

        self.tabs = Tabs(self.core_controller, self.plugins)
        splitter1 = QSplitter(Qt.Horizontal)
        splitter1.addWidget(self.tabs)
        splitter1.addWidget(window)
        splitter1.setSizes([70, 30])

        self.setCentralWidget(splitter1)

        self.core_controller.sensor_controller.rx_sensor_data_subject\
            .subscribe(self.myo_canvas.feed_data, scheduler=self.draw_data_scheduler)
Example #7
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)

        self.scene = None
        self.populateScene()

        self.h1Splitter = QSplitter()
        self.h2Splitter = QSplitter()

        vSplitter = QSplitter()
        vSplitter.setOrientation(Qt.Vertical)
        vSplitter.addWidget(self.h1Splitter)
        vSplitter.addWidget(self.h2Splitter)

        view = View("Top left view", self)
        view.view().setScene(self.scene)
        self.h1Splitter.addWidget(view)

        view = View("Top right view", self)
        view.view().setScene(self.scene)
        self.h1Splitter.addWidget(view)

        view = View("Bottom left view", self)
        view.view().setScene(self.scene)
        self.h2Splitter.addWidget(view)

        view = View("Bottom right view", self)
        view.view().setScene(self.scene)
        self.h2Splitter.addWidget(view)

        layout = QHBoxLayout()
        layout.addWidget(vSplitter)
        self.setLayout(layout)

        self.setWindowTitle(self.tr("Chip Example"))
Example #8
0
class Torrents2Tab(QWidget):
    newtorrents = Signal(int)

    def __init__(self):
        QWidget.__init__(self)
        layout = QVBoxLayout(self)
        self.splitter = QSplitter(self)
        self.list = QTreeView(self)
        self.list.setSortingEnabled(True)
        self.model = NewTorrentModel()
        proxy = QSortFilterProxyModel()
        proxy.setSourceModel(self.model)
        self.list.setModel(proxy)
        self.splitter.addWidget(self.list)
        self.t = QTableWidget(0, 4, self)
        self.splitter.addWidget(self.t)
        layout.addWidget(self.splitter)
        self.setLayout(layout)
        self.ds = DataSource()
        self.worker = UpdateTorrentWorker()
        self.worker_thread = QThread()
        self.worker_thread.started.connect(self.worker.run)
        self.worker.finished.connect(self.worker_thread.quit)
        self.worker.moveToThread(self.worker_thread)
        self.worker_thread.start()
        self.worker.processed.connect(self.processed)

    def finish(self):
        self.worker.finish()
        self.worker_thread.quit()
        self.worker_thread.wait()

    def processed(self, topic):
        self.model.add_topic(topic['published'])
Example #9
0
    def _SetupUI(self):
        main_layout = QVBoxLayout()
        search_filter_widget = QWidget()
        search_filter_layout = QHBoxLayout(search_filter_widget)
        central_widget = QWidget()
        central_layout = QVBoxLayout(central_widget)

        panel_splitter = QSplitter(Qt.Horizontal)
        panel_splitter.setHandleWidth(4)
        panel_splitter.addWidget(self._source_panel)
        panel_splitter.addWidget(central_widget)
        panel_splitter.setStretchFactor(0, 0)
        panel_splitter.setStretchFactor(1, 1)
        panel_splitter.moveSplitter(LEFT_PANEL_WIDTH, 1)
        panel_splitter.setSizePolicy(QSizePolicy.Expanding,
                                     QSizePolicy.Expanding)

        search_filter_layout.addWidget(self._search_bar)
        search_filter_layout.addWidget(self._filter_bar)
        search_filter_layout.setContentsMargins(0, 0, 0, 0)

        central_layout.addWidget(search_filter_widget)
        central_layout.addWidget(self._splitter)
        central_layout.addWidget(self._status_bar)
        central_layout.setContentsMargins(0, 0, 0, 0)

        main_layout.addWidget(panel_splitter)
        self.setLayout(main_layout)
Example #10
0
    def __init__(self, title, comm, topics, userWidget):
        super().__init__(title)
        self.setObjectName(title)

        self.comm = comm
        self.topics = topics

        splitter = QSplitter()

        self.fieldDataIndex = None

        plotLayout = QVBoxLayout()
        selectionLayout = QVBoxLayout()
        detailsLayout = QFormLayout()
        filterLayout = QHBoxLayout()

        w_left = QWidget()
        w_left.setLayout(plotLayout)
        splitter.addWidget(w_left)
        w_right = QWidget()
        w_right.setLayout(selectionLayout)
        splitter.addWidget(w_right)

        splitter.setCollapsible(0, False)
        splitter.setStretchFactor(0, 10)
        splitter.setStretchFactor(1, 0)

        selectionLayout.addLayout(detailsLayout)
        selectionLayout.addWidget(QLabel("Filter Data"))
        selectionLayout.addLayout(filterLayout)

        self.selectedActuatorIdLabel = QLabel("")
        self.selectedActuatorValueLabel = QLabel("")
        self.selectedActuatorWarningLabel = QLabel("")
        self.lastUpdatedLabel = TimeDeltaLabel()

        self.topicList = QListWidget()
        self.topicList.currentRowChanged.connect(self.currentTopicChanged)
        for topic in self.topics.topics:
            self.topicList.addItem(topic.name)
        self.fieldList = QListWidget()
        self.fieldList.currentRowChanged.connect(self.currentFieldChanged)

        plotLayout.addWidget(userWidget)

        detailsLayout.addRow(QLabel("Selected Actuator Details"), QLabel(""))
        detailsLayout.addRow(QLabel("Actuator Id"),
                             self.selectedActuatorIdLabel)
        detailsLayout.addRow(QLabel("Actuator Value"),
                             self.selectedActuatorValueLabel)
        detailsLayout.addRow(QLabel("Actuator Warning"),
                             self.selectedActuatorWarningLabel)
        detailsLayout.addRow(QLabel("Last Updated"), self.lastUpdatedLabel)

        filterLayout.addWidget(self.topicList)
        filterLayout.addWidget(self.fieldList)

        self.topicList.setCurrentRow(0)

        self.setWidget(splitter)
Example #11
0
    def __init__(self):
        QWidget.__init__(self)
        self.setLayout(QGridLayout())

        split = QSplitter(Qt.Horizontal)
        split.setChildrenCollapsible(False)

        self.vis_area = WidgetVisualizationArea()
        split.addWidget(self.vis_area)

        edit_pane = QWidget()
        edit_pane.setLayout(QVBoxLayout())

        font = QFont('Courier New', 11)

        self.editor = QPlainTextEdit()
        self.editor.document().setDefaultFont(font)
        edit_pane.layout().addWidget(self.editor)

        compile_b = QPushButton("Compile")
        compile_b.clicked.connect(self.compilePDL)
        edit_pane.layout().addWidget(compile_b)

        self.messages = QPlainTextEdit()
        self.messages.setReadOnly(True)
        self.messages.document().setDefaultFont(font)
        edit_pane.layout().addWidget(self.messages)

        split.addWidget(edit_pane)

        self.layout().addWidget(split)
Example #12
0
    def __init__(self, model):
        super(_ControlTab, self).__init__()

        self._model = model

        layout = QGridLayout()
        splitter = QSplitter()

        self._bot_table = _BotTable()
        self._responses_tab = _ResponsesTab()
        self._execute_tab = _ExecuteTab(self._responses_tab, model)

        self._tab_widget = QTabWidget()
        self._tab_widget.addTab(self._execute_tab, "Execute")
        self._tab_widget.addTab(self._responses_tab, "Responses")

        splitter.setOrientation(Qt.Vertical)
        splitter.addWidget(self._bot_table)
        splitter.addWidget(self._tab_widget)
        splitter.setSizes([50, 100])

        layout.addWidget(splitter)
        self.setLayout(layout)

        self._register_listeners()
Example #13
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
    def _init_widgets(self):

        # Subclass QPlainTextEdit
        class SmartPlainTextEdit(QPlainTextEdit):
            def __init__(self, parent, callback):
                super(SmartPlainTextEdit, self).__init__(parent)
                self._callback = callback

            def keyPressEvent(self, event):
                super(SmartPlainTextEdit, self).keyPressEvent(event)
                if event.key() == Qt.Key_Return:
                    if not (event.modifiers() == Qt.ShiftModifier):
                        self._callback()

        # Gui stuff
        splitter = QSplitter(self)

        output_wid = QWidget(splitter)
        output_wid.setLayout(QVBoxLayout(output_wid))
        self._history_text = QTextEdit(output_wid)
        self._history_text.setCurrentFont(QFont('Times', 10))
        self._history_text.setFontFamily('Source Code Pro')
        output_wid.layout().addWidget(QLabel("History"))
        output_wid.layout().addWidget(self._history_text)

        input_wid = QWidget(splitter)
        input_wid.setLayout(QVBoxLayout(input_wid))
        self._command = SmartPlainTextEdit(input_wid, self._send_command)
        input_wid.layout().addWidget(QLabel("Command"))
        input_wid.layout().addWidget(
            QLabel(
                "Press Enter to send the command. Press Shift + Enter to add a newline."
            ))
        input_wid.layout().addWidget(self._command)

        splitter.setOrientation(Qt.Vertical)
        splitter.addWidget(output_wid)
        splitter.addWidget(input_wid)
        splitter.setSizes([300, 100])

        send_button = QPushButton(self, text="Send")
        clear_history_button = QPushButton(self, text="Clear History")
        interact_button = QPushButton(self, text="Interact")
        send_button.clicked.connect(self._send_command)
        clear_history_button.clicked.connect(self._history_text.clear)
        interact_button.clicked.connect(
            lambda: self.initialize(self.workspace.instance.img_name))
        buttons = QSplitter(self)
        buttons.addWidget(interact_button)
        buttons.addWidget(clear_history_button)
        buttons.addWidget(send_button)
        buttons.setSizes([100, 200, 600])

        self.setLayout(QVBoxLayout(self))
        self.layout().addWidget(splitter)
        self.layout().addWidget(buttons)
Example #15
0
class ProcessMonitorUI:
    def __init__(self, window: ProcessMonitorWindow):
        self.window = window

        self.main_widget = QWidget(window)
        self.main_layout = QVBoxLayout()
        self.layout_connection = QHBoxLayout()
        self.txt_conenction = QLineEdit()
        self.btn_connect = QPushButton()
        self.layout_connection.addWidget(self.txt_conenction)
        self.layout_connection.addWidget(self.btn_connect)
        self.process_list = ProcessListWidget()

        self.tabs_output = ProcessOutputTabsWidget()

        self.splitter = QSplitter(Qt.Horizontal)
        self.splitter.setMinimumSize(680, 540)
        policy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
        policy.setHorizontalStretch(0)
        policy.setVerticalStretch(0)
        policy.setHeightForWidth(self.splitter.sizePolicy().hasHeightForWidth())
        self.splitter.setSizePolicy(policy)
        self.splitter.setStretchFactor(0, 1)
        self.splitter.setStretchFactor(1, 0)

        self.main_layout.addLayout(self.layout_connection)
        self.splitter.addWidget(self.process_list)
        self.splitter.addWidget(self.tabs_output)
        self.main_layout.addWidget(self.splitter)

        self.main_widget.setLayout(self.main_layout)
        self.statusbar = QStatusBar(window)

        self.txt_conenction.setPlaceholderText("ws://127.0.0.1:8766")
        self.txt_conenction.setText("ws://127.0.0.1:8766")
        self.btn_connect.setText("Connect")

        window.setCentralWidget(self.main_widget)
        window.setStatusBar(self.statusbar)
        window.setWindowTitle("Process Monitor")
        window.setWindowIcon(window.style().standardIcon(QStyle.SP_BrowserReload))
        self.set_disconnected_ui("Click on Connect to establish a connection")

    def set_disconnected_ui(self, msg: str):
        self.process_list.setDisabled(True)
        self.btn_connect.setDisabled(False)
        self.statusbar.showMessage(f"Disconnected. {msg}")

    def set_connected_ui(self):
        self.process_list.setDisabled(False)
        self.btn_connect.setDisabled(True)
        self.statusbar.showMessage("Connection established.")

    def handle_output(self, output: OutputEvent):
        self.tabs_output.append_output(output.uid, output.output)
Example #16
0
class LeftMenuWidget(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        layout = QVBoxLayout(self)
        self.splitter = QSplitter(self)
        self.tree = QTreeView(self)
        self.tree.setSortingEnabled(True)
        self.tree.setModel(ForumModel())
        self.splitter.addWidget(self.tree)
        layout.addWidget(self.splitter)
        self.setLayout(layout)
Example #17
0
    def __init__(self, parent):
        super(EditInputWidgetDialog, self).__init__(parent)

        # create UI
        self.main_grid_layout = QGridLayout(self)

        main_vertical_splitter = QSplitter()
        main_vertical_splitter.setOrientation(Qt.Vertical)

        #   instructions and actions layout
        header_widget = QWidget()
        header_layout = QHBoxLayout()

        instructions_text_edit = QTextEdit()
        instructions_text_edit.setText(instructions_text)
        instructions_text_edit.setEnabled(False)

        reset_button = QPushButton()
        reset_button.setText('reset')
        reset_button.clicked.connect(self.reset)

        header_layout.addWidget(instructions_text_edit)
        header_layout.addWidget(reset_button)

        header_widget.setLayout(header_layout)

        main_vertical_splitter.addWidget(header_widget)

        #   code text edit
        self.code_text_edit = CodeEditor()
        self.code_text_edit.static_elements = [
            'def get_data(self):', 'def set_data(self, data):'
        ]
        self.code_text_edit.components = [
            'self.parent_node_instance',
            'self.parent_node_instance.update_shape()',
            'self.parent_port_instance'
        ]
        main_vertical_splitter.addWidget(self.code_text_edit)

        self.main_grid_layout.addWidget(main_vertical_splitter)

        button_box = QDialogButtonBox()
        button_box.setStandardButtons(QDialogButtonBox.Cancel
                                      | QDialogButtonBox.Ok)
        button_box.accepted.connect(self.accept)
        button_box.rejected.connect(self.reject)
        self.main_grid_layout.addWidget(button_box)

        self.setWindowTitle('Edit Source Code')
        self.resize(1300, 950)

        self.reset()
    def home(self):
        """
        Add the GUI elements to the window that represent the home state of the application.
        """
        toolbar = self.addToolBar("File")
        save = QAction(QIcon("res/icon_save.png"), "Save", self)
        save.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_S))
        toolbar.addAction(save)
        load = QAction(QIcon("res/icon_load.png"), "Load", self)
        load.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_O))
        toolbar.addAction(load)
        toolbar.addSeparator()
        undo = QAction(QIcon("res/icon_undo.png"), "Undo", self)
        undo.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_Z))
        toolbar.addAction(undo)
        redo = QAction(QIcon("res/icon_redo.png"), "Redo", self)
        redo.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_Y))
        toolbar.addAction(redo)
        toolbar.addSeparator()
        zoom_in = QAction(QIcon("res/icon_zoom_in.png"), "Zoom In", self)
        toolbar.addAction(zoom_in)
        zoom_out = QAction(QIcon("res/icon_zoom_out.png"), "Zoom Out", self)
        toolbar.addAction(zoom_out)
        toolbar.addSeparator()
        clear = QAction(QIcon("res/icon_clear.png"), "Clear", self)
        toolbar.addAction(clear)
        toolbar.addSeparator()
        grid = QAction(QIcon("res/icon_grid.png"), "Grid", self)
        toolbar.addAction(grid)
        toolbar.actionTriggered[QAction].connect(self.toolbar_pressed)

        splitter = QSplitter(self)
        splitter.setOrientation(Qt.Vertical)
        splitter.setHandleWidth(16)

        self.tile_ed = TileEd(self.size, self.tile_size, self.pixmap, self)
        scroll_area_tile_ed = QScrollArea()
        scroll_area_tile_ed.setBackgroundRole(QPalette.Dark)
        scroll_area_tile_ed.setWidgetResizable(True)
        scroll_area_tile_ed.setWidget(self.tile_ed)

        splitter.addWidget(scroll_area_tile_ed)

        self.tile_sel = TileSelector(self.tile_size, self.pixmap, self)
        scroll_area_tile_sel = QScrollArea()
        scroll_area_tile_sel.setBackgroundRole(QPalette.Dark)
        scroll_area_tile_sel.setWidgetResizable(True)
        scroll_area_tile_sel.setWidget(self.tile_sel)

        splitter.addWidget(scroll_area_tile_sel)
        self.setCentralWidget(splitter)
Example #19
0
    def initUI(self):

        hbox = QHBoxLayout()

        topleft = QFrame(self)
        topleft.setFrameShape(QFrame.StyledPanel)
        # topleft.setFrameShape(QFrame.Shadow)    # ? 报错

        topright = QFrame(self)
        topright.setFrameShape(QFrame.StyledPanel)

        bottom = QFrame(self)
        bottom.setFrameShape(QFrame.StyledPanel)

        splitter1 = QSplitter(Qt.Horizontal)  # 横向增加部件
        splitter1.addWidget(topleft)
        splitter1.addWidget(topright)

        splitter2 = QSplitter(Qt.Vertical)
        splitter2.addWidget(splitter1)
        splitter2.addWidget(bottom)

        hbox.addWidget(splitter2)
        self.setLayout(hbox)

        self.setGeometry(300, 300, 600, 400)
        self.setWindowTitle("QSplitter")
        self.show()
Example #20
0
    def _layout(
            self) -> Tuple[QGridLayout, FileTreeView, FileTagView, ImageView]:
        layout = QGridLayout()
        layout.setContentsMargins(5, 5, 5, 5)

        splitter = QSplitter()
        layout.addWidget(splitter, 0, 0, 0, 0)

        left_splitter = QSplitter(Qt.Vertical)
        splitter.addWidget(left_splitter)

        # Top left
        file_tree = FileTreeView(self._on_file_tree_selection_changed)
        left_splitter.addWidget(file_tree)

        # Bottom left
        tagging = FileTagView(self.global_state)
        left_splitter.addWidget(tagging)

        # Right
        image = ImageView()
        splitter.addWidget(wrap_image(image))

        # Initialize equal widths (needs to be set at the end)
        splitter.setSizes([1000000, 1000000])

        return layout, file_tree, tagging, image
Example #21
0
    def _widgets(self):
        splitter = QSplitter()

        # -- Left
        left_splitter = QSplitter(Qt.Vertical)
        splitter.addWidget(left_splitter)

        # Top left
        filetree = FileTree(self._root_path,
                            self._on_filetree_selection_changed)
        left_splitter.addWidget(filetree)

        # Bottom left
        tagging = Tagging()
        left_splitter.addWidget(tagging)

        # -- Right
        image = ImageDisplay()
        # Wrap it in a resizable scroll area
        area = QScrollArea()
        area.setWidget(image)
        area.setWidgetResizable(True)
        area.setAlignment(Qt.AlignCenter)
        splitter.addWidget(area)

        # A slight hack to split width equally
        splitter.setSizes([100000, 100000])

        return splitter, filetree, tagging, image
Example #22
0
 def setup_ui(self):
     vertical_layout = QVBoxLayout(self)
     vertical_layout.setSpacing(6)
     vertical_layout.setContentsMargins(11, 11, 11, 11)
     splitter_v = QSplitter(self)
     splitter_v.setOrientation(PySide2.QtCore.Qt.Vertical)
     size_policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
     size_policy.setHorizontalStretch(0)
     size_policy.setVerticalStretch(0)
     size_policy.setHeightForWidth(
         splitter_v.sizePolicy().hasHeightForWidth())
     splitter_v.setSizePolicy(size_policy)
     splitter_h = QSplitter(splitter_v)
     splitter_h.setOrientation(PySide2.QtCore.Qt.Horizontal)
     vertical_layout_widget = QWidget(splitter_h)
     self.vertical_layout_left = QVBoxLayout(vertical_layout_widget)
     self.vertical_layout_left.setSpacing(6)
     self.vertical_layout_left.setSizeConstraint(
         QLayout.SetDefaultConstraint)
     self.vertical_layout_left.setContentsMargins(0, 0, 0, 0)
     splitter_h.addWidget(vertical_layout_widget)
     vertical_layout_widget2 = QWidget(splitter_h)
     self.vertical_layout_right = QVBoxLayout(vertical_layout_widget2)
     self.vertical_layout_right.setContentsMargins(0, 0, 0, 0)
     splitter_h.addWidget(vertical_layout_widget2)
     splitter_v.addWidget(splitter_h)
     vertical_layout_widget3 = QWidget(splitter_v)
     vertical_layout_bottom = QVBoxLayout(vertical_layout_widget3)
     vertical_layout_bottom.setSpacing(6)
     vertical_layout_bottom.setSizeConstraint(QLayout.SetDefaultConstraint)
     vertical_layout_bottom.setContentsMargins(11, 0, 11, 11)
     text_browser = QTextBrowser(vertical_layout_widget3)
     vertical_layout_bottom.addWidget(text_browser)
     splitter_v.addWidget(vertical_layout_widget3)
     vertical_layout.addWidget(splitter_v)
    def initUI(self):
        hbox = QHBoxLayout(self)

        topleft = QFrame(self)
        topleft.setFrameShape(QFrame.StyledPanel)

        topright = QFrame(self)
        topright.setFrameShape(QFrame.StyledPanel)

        bottom = QFrame(self)
        bottom.setFrameShape(QFrame.StyledPanel)

        splitter1 = QSplitter(QtCore.Qt.Horizontal)
        splitter1.addWidget(topleft)
        splitter1.addWidget(topright)

        splitter2 = QSplitter(QtCore.Qt.Vertical)
        splitter2.addWidget(splitter1)
        splitter2.addWidget(bottom)

        hbox.addWidget(splitter2)
        self.setLayout(hbox)
        QApplication.setStyle(QStyleFactory.create('Cleanlooks'))

        self.setGeometry(500, 500, 500, 500)
        self.setWindowTitle('QSplitter')
        self.show()
Example #24
0
class MainWindow(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)

        self.scene = None
        self.populateScene()

        self.h1Splitter = QSplitter()
        self.h2Splitter = QSplitter()

        vSplitter = QSplitter()
        vSplitter.setOrientation(Qt.Vertical)
        vSplitter.addWidget(self.h1Splitter)
        vSplitter.addWidget(self.h2Splitter)

        view = View("Top left view", self)
        view.view().setScene(self.scene)
        self.h1Splitter.addWidget(view)

        view = View("Top right view", self)
        view.view().setScene(self.scene)
        self.h1Splitter.addWidget(view)

        view = View("Bottom left view", self)
        view.view().setScene(self.scene)
        self.h2Splitter.addWidget(view)

        view = View("Bottom right view", self)
        view.view().setScene(self.scene)
        self.h2Splitter.addWidget(view)

        layout = QHBoxLayout()
        layout.addWidget(vSplitter)
        self.setLayout(layout)

        self.setWindowTitle(self.tr("Chip Example"))

    def populateScene(self):

        self.scene = QGraphicsScene(self)

        image = QImage(":/qt4logo.png")
        xx: int = 0
        nitems: int = 0
        for i in range(-11000, 11000, 110):
            xx += 1
            yy: int = 0
            for j in range(-7000, 7000, 70):
                yy += 1
                x = (i + 11000) / 22000.0
                y = (j + 7000) / 14000.0

                color = QColor(
                    image.pixel(int(image.width() * x),
                                int(image.height() * y)))
                item = Chip(color, xx, yy)
                item.setPos(QPointF(i, j))
                self.scene.addItem(item)
                nitems += 1
Example #25
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.workbenchModel = WorkbenchModel(self)
        self.graph = flow.dag.OperationDag()
        self.operationMenu = OperationMenu()
        self.frameInfoPanel = FramePanel(parent=self,
                                         w=self.workbenchModel,
                                         opModel=self.operationMenu.model())
        self.workbenchView = WorkbenchView()
        self.workbenchView.setModel(self.workbenchModel)
        self.workbenchModel.emptyRowInserted.connect(
            self.workbenchView.startEditNoSelection)

        tabs = QTabWidget(self)

        attributeTab = AttributePanel(self.workbenchModel, self)
        chartsTab = ViewPanel(self.workbenchModel, self)
        self.graphScene = GraphScene(self)
        self._flowView = GraphView(self.graphScene, self)
        self.controller = GraphController(self.graph, self.graphScene,
                                          self._flowView, self.workbenchModel,
                                          self)

        tabs.addTab(attributeTab, '&Attribute')
        tabs.addTab(chartsTab, '&Visualise')
        tabs.addTab(self._flowView, 'F&low')
        self.__curr_tab = tabs.currentIndex()

        self.__leftSide = QSplitter(Qt.Vertical)
        self.__leftSide.addWidget(self.frameInfoPanel)
        self.__leftSide.addWidget(self.workbenchView)

        # layout = QHBoxLayout()
        # layout.addWidget(leftSplit, 2)
        # layout.addWidget(tabs, 8)
        splitter = QSplitter(Qt.Horizontal, self)
        splitter.addWidget(self.__leftSide)
        splitter.addWidget(tabs)
        layout = QHBoxLayout(self)
        layout.addWidget(splitter)

        tabs.currentChanged.connect(self.changeTabsContext)
        self.workbenchView.selectedRowChanged[str, str].connect(
            attributeTab.onFrameSelectionChanged)
        self.workbenchView.selectedRowChanged[str, str].connect(
            chartsTab.onFrameSelectionChanged)
        self.workbenchView.selectedRowChanged[str, str].connect(
            self.frameInfoPanel.onFrameSelectionChanged)
        self.workbenchView.rightClick.connect(self.createWorkbenchPopupMenu)
Example #26
0
    def get_menu(self):
        scroll = QScrollArea(self)
        self.forum_view.setStyleSheet("QListView{font: bold 12px;}")
        self.forum_view.clicked.connect(self.listViewClick)
        self.forum_view.setModel(self.forum_model)

        self.date_view.setStyleSheet("QListView{font: bold 12px;}")
        self.date_view.clicked.connect(self.listViewClick)
        self.date_view.setModel(self.day_model)

        menu_splitter = QSplitter(self)
        menu_splitter.setOrientation(Qt.Vertical)
        menu_splitter.addWidget(self.forum_view)
        menu_splitter.addWidget(self.date_view)
        scroll.setWidget(menu_splitter)
        scroll.setWidgetResizable(True)
        self.splitter.addWidget(scroll)
Example #27
0
    def _make_layout(self, widgets):
        qw_splitter = QSplitter(self)
        for widget in widgets:
            qw_splitter.addWidget(widget)
        qw_splitter.setSizes(
            [self.WINDOW_SIZE['width'] * 0.1, self.WINDOW_SIZE['width'] * 0.9])

        # layout = QHBoxLayout()
        # layout.addWidget(qw_splitter)
        # qw = QWidget()
        # qw.setLayout(layout)
        # self.setCentralWidget(qw)

        # self.setWindowFlags(Qt.WindowStaysOnTopHint) # 常に手前に表示する.

        # MainWindowのCentral領域にWidgetを設定
        self.setCentralWidget(qw_splitter)
    def initUi(self):

        self.liberation_map = QLiberationMap(self.game)
        self.info_panel = QInfoPanel(self.game)

        hbox = QSplitter(Qt.Horizontal)
        hbox.addWidget(self.info_panel)
        hbox.addWidget(self.liberation_map)

        vbox = QVBoxLayout()
        vbox.setMargin(0)
        vbox.addWidget(QTopPanel(self.game))
        vbox.addWidget(hbox)

        central_widget = QWidget()
        central_widget.setLayout(vbox)
        self.setCentralWidget(central_widget)
Example #29
0
class PartitionCentralWidget(QWidget):
    def __init__(self, boardWidget, settingsWidget, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self._boardWidget = boardWidget
        self._settingsWidget = settingsWidget

        self._startPartitionButton = QPushButton('Start Partition')
        self._startPartitionButton.clicked.connect(
            self._onStartPartitionButtonClicked)

        self._splitter = QSplitter(Qt.Horizontal)
        self._splitter.addWidget(self._boardWidget)
        self._splitter.addWidget(self._settingsWidget)

        mainLayout = QVBoxLayout()
        mainLayout.addWidget(self._splitter)
        mainLayout.addWidget(self._startPartitionButton)

        self.setLayout(mainLayout)

    @Slot()
    def _onStartPartitionButtonClicked(self):
        partitionAlgorithm = self._settingsWidget.partitionAlgorithm()

        if 'simple' in partitionAlgorithm.lower():
            self._boardWidget.startSimplePartition(
                self._settingsWidget.distance(),
                self._settingsWidget.freeCoefficients(),
                self._settingsWidget.grayScale())
        elif 'centers' in partitionAlgorithm.lower():
            self._boardWidget.startFuzzyPartitionNotFixedCenters(
                self._settingsWidget.distance(),
                self._settingsWidget.confidence(),
                self._settingsWidget.centersNumber(),
                self._settingsWidget.precision(),
                self._settingsWidget.grayScale())
        else:
            self._boardWidget.startFuzzyPartition(
                self._settingsWidget.distance(),
                self._settingsWidget.confidence(),
                self._settingsWidget.freeCoefficients(),
                self._settingsWidget.precision(),
                self._settingsWidget.grayScale())
Example #30
0
    def init_nwb_explorer(self):
        """Initializes NWB file explorer tab"""
        # Layout Widgets
        self.btn_load_nwbexp = QPushButton('Load NWB')
        self.btn_load_nwbexp.setIcon(self.style().standardIcon(
            QStyle.SP_ArrowDown))
        self.btn_load_nwbexp.clicked.connect(self.load_nwb_explorer)
        self.btn_load_nwbexp.setToolTip("Choose NWB file to explore!")
        self.btn_close_nwbexp = QPushButton('Close')
        self.btn_close_nwbexp.setIcon(self.style().standardIcon(
            QStyle.SP_DialogCloseButton))
        self.btn_close_nwbexp.clicked.connect(self.close_nwb_explorer)
        self.btn_close_nwbexp.setToolTip("Close current file view.")
        self.html = QWebEngineView()

        self.grid_widgets = QGridLayout()
        self.grid_widgets.setColumnStretch(2, 1)
        self.grid_widgets.addWidget(self.btn_load_nwbexp, 0, 0, 1, 1)
        self.grid_widgets.addWidget(self.btn_close_nwbexp, 0, 1, 1, 1)
        self.grid_widgets.addWidget(QLabel(), 0, 2, 1, 1)
        self.vbox_widgets = QVBoxLayout()
        self.vbox_widgets.addLayout(self.grid_widgets)
        self.vbox_widgets.addWidget(self.html)

        # Layout Console
        console_label = QLabel('Ipython console:')
        self.explorer_console = ConsoleWidget(par=self)
        self.explorer_console.setToolTip("nwbfile --> NWB file data")

        self.grid_console = QGridLayout()
        self.grid_console.addWidget(console_label, 0, 0, 1, 1)
        self.grid_console.addWidget(self.explorer_console, 1, 0, 1, 1)

        hsplitter = QSplitter(QtCore.Qt.Horizontal)
        left_w = QWidget()
        left_w.setLayout(self.vbox_widgets)
        right_w = QWidget()
        right_w.setLayout(self.grid_console)
        hsplitter.addWidget(left_w)
        hsplitter.addWidget(right_w)

        # Add tab to GUI
        self.tabs.addTab(hsplitter, 'NWB widgets')