def addWidgets(self): """Create main layout.""" logger = self.logger logger.debug('adding widgets') layout = QVBoxLayout() self.setLayout(layout) layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) tabbar = QTabBar(self) tabbar.setFocusPolicy(Qt.NoFocus) tabbar.setVisible(False) tabbar.currentChanged.connect(self.changeVault) layout.addWidget(tabbar) self.tabbar = tabbar stack = QStackedWidget(self) layout.addWidget(stack) novault = NoVaultWidget(stack) stack.addWidget(novault) self.stack = stack
def __init__(self, orientation=2, parent=None): QWidget.__init__(self, parent) self.__tabBar = QTabBar() self.__tabBar.setDrawBase(True) self.__tabBar.setShape(QTabBar.RoundedNorth) self.__tabBar.setFocusPolicy(Qt.NoFocus) self.__tabBar.setUsesScrollButtons(True) self.__tabBar.setElideMode(1) self.__stackedWidget = QStackedWidget(self) self.__stackedWidget.setContentsMargins(0, 0, 0, 0) self.barLayout = QBoxLayout(QBoxLayout.LeftToRight) self.barLayout.setMargin(0) self.layout = QBoxLayout(QBoxLayout.TopToBottom) self.layout.setMargin(0) self.layout.setSpacing(0) self.barLayout.addWidget(self.__tabBar) self.layout.addLayout(self.barLayout) self.layout.addWidget(self.__stackedWidget) self.setLayout(self.layout) self.__minimized = False self.__minSize = 0 self.__maxSize = 0 self.__bigSize = QSize() self.splitter = None self.__tabBar.installEventFilter(self) self.__orientation = orientation self.setOrientation(orientation) self.__tabBar.currentChanged.connect( self.__stackedWidget.setCurrentIndex) return
def __init__(self, parent, controller): # create window QMainWindow.__init__(self) self.setAttribute(Qt.WA_DeleteOnClose) self.setWindowTitle("Tracking Analysis") self.setGeometry(100, 200, 10, 10) # set controller self.controller = controller # create main widget & layout self.main_widget = QWidget(self) self.main_widget.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) self.main_layout = QGridLayout(self.main_widget) # create left widget & layout self.left_widget = QWidget(self) self.main_layout.addWidget(self.left_widget, 0, 0) self.left_layout = QVBoxLayout(self.left_widget) self.left_layout.setAlignment(Qt.AlignTop) # create list of tracking items self.tracking_list_items = [] self.tracking_list = QListWidget(self) self.tracking_list.currentRowChanged.connect(self.controller.switch_tracking_file) self.left_layout.addWidget(self.tracking_list) # create tracking list buttons self.tracking_list_buttons = QHBoxLayout(self) self.left_layout.addLayout(self.tracking_list_buttons) self.add_tracking_button = QPushButton('+') self.add_tracking_button.clicked.connect(self.controller.select_and_open_tracking_files) self.add_tracking_button.setToolTip("Add tracking file.") self.tracking_list_buttons.addWidget(self.add_tracking_button) self.remove_tracking_button = QPushButton('-') self.remove_tracking_button.clicked.connect(self.controller.remove_tracking_file) self.remove_tracking_button.setToolTip("Remove selected tracking file.") self.tracking_list_buttons.addWidget(self.remove_tracking_button) self.prev_tracking_button = QPushButton('<') self.prev_tracking_button.clicked.connect(self.controller.prev_tracking_file) self.prev_tracking_button.setToolTip("Switch to previous tracking file.") self.tracking_list_buttons.addWidget(self.prev_tracking_button) self.next_tracking_button = QPushButton('>') self.next_tracking_button.clicked.connect(self.controller.next_tracking_file) self.next_tracking_button.setToolTip("Switch to next tracking file.") self.tracking_list_buttons.addWidget(self.next_tracking_button) # create right widget & layout self.right_widget = QWidget(self) self.right_widget.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) self.main_layout.addWidget(self.right_widget, 0, 1) self.right_layout = QVBoxLayout(self.right_widget) self.right_layout.setAlignment(Qt.AlignTop) self.right_layout.setSpacing(5) # create button layout for main widget plot_horiz_layout = QHBoxLayout() self.right_layout.addLayout(plot_horiz_layout) # add param labels & textboxes plot_type_label = QLabel() plot_type_label.setText("Plot:") plot_horiz_layout.addWidget(plot_type_label) plot_horiz_layout.addStretch(1) # create tab widget for plot type self.plot_tabs_widget = QTabBar() self.plot_tabs_widget.setDrawBase(False) self.plot_tabs_widget.setExpanding(False) self.plot_tabs_widget.currentChanged.connect(self.controller.change_plot_type) plot_horiz_layout.addWidget(self.plot_tabs_widget) # create button layout for main widget crop_horiz_layout = QHBoxLayout() self.right_layout.addLayout(crop_horiz_layout) # add param labels & textboxes crop_type_label = QLabel() crop_type_label.setText("Crop #:") crop_horiz_layout.addWidget(crop_type_label) crop_horiz_layout.addStretch(1) # create tab widget for crop number self.crop_tabs_widget = QTabBar() self.crop_tabs_widget.setDrawBase(False) self.crop_tabs_widget.setExpanding(False) self.crop_tabs_widget.currentChanged.connect(self.controller.change_crop) crop_horiz_layout.addWidget(self.crop_tabs_widget) # create button layout for main widget button_layout = QHBoxLayout() button_layout.addStretch(1) self.right_layout.addLayout(button_layout) # add buttons self.show_tracking_params_button = QPushButton('Tracking Parameters', self) self.show_tracking_params_button.setMinimumHeight(30) self.show_tracking_params_button.clicked.connect(self.controller.show_tracking_params) button_layout.addWidget(self.show_tracking_params_button) # create stacked widget & layout self.stacked_widget = QStackedWidget(self) self.stacked_widget.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) self.right_layout.addWidget(self.stacked_widget) self.create_tail_tracking_widget(self.stacked_widget) self.create_body_tracking_widget(self.stacked_widget) # self.right_layout = QVBoxLayout(self.right_widget) # self.right_layout.setAlignment(Qt.AlignTop) # self.right_layout.setSpacing(5) # self.main_widget.setFocus() self.setCentralWidget(self.main_widget) # set window titlebar buttons self.setWindowFlags(Qt.CustomizeWindowHint | Qt.WindowCloseButtonHint | Qt.WindowMinimizeButtonHint | Qt.WindowMaximizeButtonHint) self.show()