class UiMainWidget(object): """ the main view """ def setup_ui(self, MainWidget): self.status = QStatusBar() self.right_widget = RightWidget() self.left_widget = LeftScrollArea() self.top_widget = TopWidget() self.right_layout = QVBoxLayout() self.left_layout = QVBoxLayout() self.top_layout = QHBoxLayout() self.show_container = QHBoxLayout() self.control_container = QHBoxLayout() self.layout = QVBoxLayout(MainWidget) self.set_widgets() self.set_layouts() def set_widgets(self): self.set_widgets_size() self.set_object_name() def set_object_name(self): self.right_widget.setObjectName('right_widget') self.left_widget.setObjectName('left_widget') self.top_widget.setObjectName('top_widget') self.top_widget.search_edit.setObjectName('search_edit') def set_widgets_size(self): """ set all widget specific size here, including child widget """ self.top_widget.setFixedHeight(60) self.left_widget.setFixedWidth(200) def set_layouts(self): self.right_layout.addWidget(self.right_widget) self.left_layout.addWidget(self.left_widget) self.top_layout.addWidget(self.top_widget) self.show_container.addLayout(self.left_layout) self.show_container.addLayout(self.right_layout) self.control_container.addLayout(self.top_layout) self.layout.addLayout(self.control_container) self.layout.addLayout(self.show_container) self.layout.addWidget(self.status) self.set_layouts_prop() def set_layouts_prop(self): self.layout.setSpacing(0) self.layout.setContentsMargins(0, 0, 0, 0) self.left_layout.setContentsMargins(0, 0, 0, 0)