def __init__(self, parent): #Qt.WindowModal super(SettingsWindow, self).__init__(parent) self.setWindowTitle("Settings") self.tabbar = QTabWidget(self) self.tab_app = VPage(self) self.tab_search = VPage(self) self.tab_style = VPage(self) self.container = QVBoxLayout(self) self.container.setSpacing(0) self.setFixedHeight(400) self.init_tab_app() self.init_tab_search() self.init_tab_style() # add widgets to scroll areas after initializing them self.tabbar.addTab(self.tab_app, "Application") self.tabbar.addTab(self.tab_search, "Search Preset") self.tabbar.addTab(self.tab_style, "Theme") self.hbox_dia = QHBoxLayout() self.btn_accept = QPushButton("Save & Close") self.btn_cancel = QPushButton("Cancel") self.hbox_dia = QHBoxLayout() self.hbox_dia.addWidget(self.btn_accept) self.hbox_dia.addWidget(self.btn_cancel) self.btn_accept.setFixedWidth(128) self.btn_cancel.setFixedWidth(128) self.container.addWidget(self.tabbar) self.container.addLayout(self.hbox_dia) self.btn_cancel.clicked.connect(self.reject) self.btn_accept.clicked.connect(self.accept) self.setData_app() self.setData_search() self.setData_style()
def init_tab_style(self): self.cbox_theme = QComboBox(self) self.cbox_theme.addItem("default") for item in loadStyleDir(): self.cbox_theme.addItem(item) self.btn_theme = QPushButton("Apply Custom Colors", self) self.btn_theme_reset = QPushButton("Default Colors", self) self.scroll_tstyle = QScrollArea(self) self.style_page = VPage() # ---------------------------------------------------------- self.gbox_style1 = QGroupBox("Theme Colors", self) self.grid_themecolor = QGridLayout() self.grid_themecolor.setColumnMinimumWidth(0, 300) self.themeColors = [] self.themeColors.append(ColorEdit(self)) self.themeColors.append(ColorEdit(self)) self.themeColors.append(ColorEdit(self)) self.themeColors.append(ColorEdit(self)) self.themeColors.append(ColorEdit(self)) self.themeColors.append(ColorEdit(self)) self.grid_themecolor.addWidget(QLabel("Primary Color"), 0, 0, Qt.AlignLeft) self.grid_themecolor.addWidget(self.themeColors[0].edit, 0, 1, Qt.AlignRight) self.grid_themecolor.addWidget(QLabel("Secondary Color"), 1, 0, Qt.AlignLeft) self.grid_themecolor.addWidget(self.themeColors[1].edit, 1, 1, Qt.AlignRight) self.grid_themecolor.addWidget(QLabel("Background Color"), 2, 0, Qt.AlignLeft) self.grid_themecolor.addWidget(self.themeColors[2].edit, 2, 1, Qt.AlignRight) self.grid_themecolor.addWidget(QLabel("Light Color"), 3, 0, Qt.AlignLeft) self.grid_themecolor.addWidget(self.themeColors[3].edit, 3, 1, Qt.AlignRight) self.grid_themecolor.addWidget(QLabel("Nuetral Color"), 4, 0, Qt.AlignLeft) self.grid_themecolor.addWidget(self.themeColors[4].edit, 4, 1, Qt.AlignRight) self.grid_themecolor.addWidget(QLabel("Dark Color"), 5, 0, Qt.AlignLeft) self.grid_themecolor.addWidget(self.themeColors[5].edit, 5, 1, Qt.AlignRight) self.gbox_style1.setLayout(self.grid_themecolor) self.gbox_style2 = QGroupBox("Text and Highlight", self) self.gbox_style2.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) self.grid_textcolor = QGridLayout() self.textColors = [] self.textColors.append(ColorEdit(self)) self.textColors.append(ColorEdit(self)) self.textColors.append(ColorEdit(self)) self.textColors.append(ColorEdit(self)) self.textColors.append(ColorEdit(self)) self.textColors.append(ColorEdit(self)) self.textColors.append(ColorEdit(self)) self.textColors.append(ColorEdit(self)) self.textColors.append(ColorEdit(self)) self.spin_font = QSpinBox(self) self.spin_font.setMaximum(16) self.spin_font.setMinimum(8) self.spin_font.setValue(12) self.spin_font.setFixedWidth(55) self.cbox_font = QFontComboBox() self.cbox_font.setEditable(False) filter = QFontComboBox.ScalableFonts | QFontComboBox.MonospacedFonts | QFontComboBox.ProportionalFonts self.cbox_font.setFontFilters(filter) self.grid_textcolor.addWidget(QLabel("Font Size", self), 0, 0, Qt.AlignLeft) self.grid_textcolor.addWidget(self.cbox_font, 0, 1, Qt.AlignRight) self.grid_textcolor.addWidget(self.spin_font, 0, 2, Qt.AlignRight) self.grid_textcolor.addWidget(QLabel("Text Color"), 1, 0, Qt.AlignLeft) self.grid_textcolor.addWidget(self.textColors[0].edit, 1, 2, Qt.AlignRight) self.grid_textcolor.addWidget(QLabel("Text Color - Light"), 2, 0, Qt.AlignLeft) self.grid_textcolor.addWidget(self.textColors[1].edit, 2, 2, Qt.AlignRight) self.grid_textcolor.addWidget(QLabel("Text Color - Dark"), 3, 0, Qt.AlignLeft) self.grid_textcolor.addWidget(self.textColors[2].edit, 3, 2, Qt.AlignRight) self.grid_textcolor.addWidget(QLabel("Important Text 1"), 4, 0, Qt.AlignLeft) self.grid_textcolor.addWidget(self.textColors[3].edit, 4, 2, Qt.AlignRight) self.grid_textcolor.addWidget(QLabel("Important Text 2"), 5, 0, Qt.AlignLeft) self.grid_textcolor.addWidget(self.textColors[4].edit, 5, 2, Qt.AlignRight) self.grid_textcolor.addWidget(QLabel("Highlight Color"), 6, 0, Qt.AlignLeft) self.grid_textcolor.addWidget(self.textColors[5].edit, 6, 2, Qt.AlignRight) self.grid_textcolor.addWidget(QLabel("Highlight Invalid"), 7, 0, Qt.AlignLeft) self.grid_textcolor.addWidget(self.textColors[6].edit, 7, 2, Qt.AlignRight) self.grid_textcolor.addWidget(QLabel("Highlight Special 1"), 8, 0, Qt.AlignLeft) self.grid_textcolor.addWidget(self.textColors[7].edit, 8, 2, Qt.AlignRight) self.grid_textcolor.addWidget(QLabel("Highlight Special 2"), 9, 0, Qt.AlignLeft) self.grid_textcolor.addWidget(self.textColors[8].edit, 9, 2, Qt.AlignRight) self.gbox_style2.setLayout(self.grid_textcolor) self.style_page.addWidget(self.gbox_style1) self.style_page.addWidget(self.gbox_style2) self.scroll_tstyle.setWidget(self.style_page) self.scroll_tstyle.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) #-------------------------------- #self.test = [] #self.test.append(ColorEdit(self)) #self.test.append(ColorEdit(self)) #self.test.append(ColorEdit(self)) #self.test.append(ColorEdit(self)) #h = QHBoxLayout() #h.addWidget(self.test[0].edit) #h.addWidget(self.test[1].edit) #h.addWidget(self.test[2].edit) #h.addWidget(self.test[3].edit) #self.tab_style.addLayout(h) #-------------------------------- self.tab_style.addWidget(self.cbox_theme) h = QHBoxLayout() h.addWidget(self.btn_theme_reset) h.addWidget(self.btn_theme) self.tab_style.addLayout(h) self.tab_style.addWidget(self.scroll_tstyle) self.btn_theme.clicked.connect(self.getData_style) self.btn_theme_reset.clicked.connect(self.button_theme_setDefault) self.cbox_theme.currentIndexChanged.connect(self.themeChanged)