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])
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)
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) # 每秒更新时间显示的定时器
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)
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()
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)
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"))
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'])
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)
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)
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)
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()
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)
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)
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)
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)
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()
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
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
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()
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
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)
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)
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)
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())
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')