def createNavigationByPage(self): systembuttons = ['Min', 'Max', 'Close'] navbutton = windowsoptions['mainwindow']['centralwindow']['pagetags'][ 0] + systembuttons navbutton_zh = windowsoptions['mainwindow']['centralwindow'][ 'pagetags_zh'] self.navigation = QtGui.QWidget() navigationLayout = QtGui.QHBoxLayout() for item in navbutton: button = item + 'Button' if item not in systembuttons: setattr(self, button, QtGui.QPushButton(navbutton_zh[item])) getattr(self, button).clicked.connect(self.parent.childpageChange) else: setattr(self, button, QtGui.QPushButton()) getattr(self, button).setObjectName(button) navigationLayout.addWidget(getattr(self, button)) self.navigation.setLayout(navigationLayout) self.navigation.setMaximumHeight(60) self.navigation.setContentsMargins(0, 0, 0, 0) getattr(self, 'Min' + 'Button').clicked.connect( self.parent.parent().showMinimized) getattr(self, 'Max' + 'Button').clicked.connect( self.parent.parent().windowMaxNormal) getattr(self, 'Close' + 'Button').clicked.connect(self.parent.parent().close)
def initUI(self): self.pagecount = len(self.pagetags_zh) # 页面个数 # self.createNavigation() self.pages = QtGui.QStackedWidget() # 创建堆控件 # self.pages.addWidget(self.navigationPage) self.createChildPages() # 创建子页面 # self.createConnections() mainLayout = QtGui.QHBoxLayout() mainLayout.addWidget(self.pages) self.setLayout(mainLayout) self.layout().setContentsMargins(0, 0, 0, 0) self.faderWidget = None self.pages.currentChanged.connect(self.fadeInWidget) # 页面切换时淡入淡出效果
def createNavigation(self): navbutton = ['Navigation', 'Back', 'Forward', 'Min', 'Max', 'Close'] navbutton_zh = { 'Navigation': u'导航主页(Navigation)', 'Back': u'后退(Back)', 'Forward': u'前进(Forward)', 'Min': u'', 'Max': u'', 'Close': u'' } self.navigation = QtGui.QWidget() navigationLayout = QtGui.QHBoxLayout() for item in navbutton: button = item + 'Button' if item not in ['Min', 'Max', 'Close']: setattr(self, button, QtGui.QPushButton(navbutton_zh[item])) else: setattr(self, button, QtGui.QPushButton()) getattr(self, button).setMaximumWidth(50) getattr(self, button).setObjectName(button) navigationLayout.addWidget(getattr(self, button)) self.navigation.setLayout(navigationLayout) self.navigation.setMaximumHeight(60) self.navigation.setContentsMargins(0, 0, 0, 0) getattr(self, 'Navigation' + 'Button').clicked.connect( self.parent.backnavigationPage) getattr(self, 'Back' + 'Button').clicked.connect(self.parent.backPage) getattr(self, 'Forward' + 'Button').clicked.connect( self.parent.forwardnextPage) getattr(self, 'Min' + 'Button').clicked.connect( self.parent.parent().showMinimized) getattr(self, 'Max' + 'Button').clicked.connect( self.parent.parent().windowMaxNormal) getattr(self, 'Close' + 'Button').clicked.connect(self.parent.parent().close)
def _setup_views(self): """ Creates the UI widgets. """ self.central_splitter = QtGui.QSplitter(self, orientation=QtCore.Qt.Vertical) self.setCentralWidget(self.central_splitter) # central_layout = QtGui.QVBoxLayout() # self.central_splitter.setLayout(central_layout) # Tree widget self.obj_tree = ToggleColumnTreeView() self.obj_tree.setAlternatingRowColors(True) self.obj_tree.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) self.obj_tree.setUniformRowHeights(True) self.obj_tree.setAnimated(True) self.obj_tree.add_header_context_menu() # Stretch last column? # It doesn't play nice when columns are hidden and then shown again. obj_tree_header = self.obj_tree.header() # obj_tree_header.setMovable(True) obj_tree_header.setStretchLastSection(False) for action in self.obj_tree.toggle_column_actions_group.actions(): self.show_cols_submenu.addAction(action) self.central_splitter.addWidget(self.obj_tree) # Bottom pane bottom_pane_widget = QtGui.QWidget() bottom_layout = QtGui.QHBoxLayout() bottom_layout.setSpacing(0) bottom_layout.setContentsMargins(5, 5, 5, 5) # left top right bottom bottom_pane_widget.setLayout(bottom_layout) self.central_splitter.addWidget(bottom_pane_widget) group_box = QtGui.QGroupBox("Details") bottom_layout.addWidget(group_box) group_layout = QtGui.QHBoxLayout() group_layout.setContentsMargins(2, 2, 2, 2) # left top right bottom group_box.setLayout(group_layout) # Radio buttons radio_widget = QtGui.QWidget() radio_layout = QtGui.QVBoxLayout() radio_layout.setContentsMargins(0, 0, 0, 0) # left top right bottom radio_widget.setLayout(radio_layout) self.button_group = QtGui.QButtonGroup(self) for button_id, attr_detail in enumerate(self._attr_details): radio_button = QtGui.QRadioButton(attr_detail.name) radio_layout.addWidget(radio_button) self.button_group.addButton(radio_button, button_id) self.button_group.buttonClicked[int].connect( self._change_details_field) self.button_group.button(0).setChecked(True) radio_layout.addStretch(1) group_layout.addWidget(radio_widget) # Editor widget font = QtGui.QFont() font.setFamily('Courier') font.setFixedPitch(True) #font.setPointSize(14) self.editor = QtGui.QPlainTextEdit() self.editor.setReadOnly(True) self.editor.setFont(font) group_layout.addWidget(self.editor) # Splitter parameters self.central_splitter.setCollapsible(0, False) self.central_splitter.setCollapsible(1, True) self.central_splitter.setSizes([400, 200]) self.central_splitter.setStretchFactor(0, 10) self.central_splitter.setStretchFactor(1, 0)