Exemplo n.º 1
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.parent = parent
        # Create an instance of the GUI
        self.ui = Ui_config.Ui_configDialog()
        # Run the .setupUi() method to show the GUI
        self.ui.setupUi(self)

        self.ui.buttonBox.accepted.connect(self.saveConf)
        self.ui.buttonBox.rejected.connect(self.resetConf)

        self.conf = getConf()

        if self.conf['update_on_init']:
            self.ui.cbUpdateInit.setChecked(True)
        else:
            self.ui.cbUpdateInit.setChecked(False)

        self.ui.downFolderEdit.setText(self.conf['download_folder'])

        for theme in ['default'] + list_themes():
            self.ui.themeSelector.addItem(theme)

        self.ui.themeSelector.setCurrentText(self.conf['theme'])
        self.ui.themeSelector.currentIndexChanged.connect(self.changeTheme)
Exemplo n.º 2
0
    def add_menu_theme(self, parent, menu: QMenu):
        for theme in ['default'] + list_themes():
            action = QAction(parent)
            action.setText(theme.split(".")[0])

            action.triggered.connect(
                self._wrapper(parent, theme, self.extra_colors,
                              self.update_buttons))
            menu.addAction(action)
    def __init__(self, user, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)
        self.setGeometry(100, 100, 800, 600)

        self.setWindowTitle('Biblioteka')
        self.setWindowIcon(QtGui.QIcon('resources/library_icon.png'))
        bar = self.menuBar()
        style = bar.addMenu("Motyw")
        for item in list_themes():
            style.addAction(item.replace('_', ' ').split('.')[0].capitalize())
        style.triggered[QAction].connect(self.processtrigger)
        widget = MainWidget(user)
        self.setCentralWidget(widget)
Exemplo n.º 4
0
import os

from qt_material import list_themes

themes = list_themes()
themes = [t.replace('.xml', '') for t in themes]

for theme in themes:
    os.system(f'python main.py --pyside6 {theme}')

os.chdir('screenshots')

commands = (
    'convert -delay 100 light_* light.gif',
    'convert -delay 100 dark_* dark.gif',
    # 'rm ../../../docs/source/images/light.gif',
    # 'rm ../../../docs/source/images/dark.gif',
    # 'cp light.gif ../../../docs/source/images/light.gif',
    # 'cp dark.gif ../../../docs/source/images/dark.gif',
    # 'cp theme.png ../../../docs/source/images/theme.png',
)

for command in commands:
    os.system(command)
Exemplo n.º 5
0
    def __init__(self):
        super().__init__()
        self._dataset: Optional[Dataset] = None
        self._translator: Optional[QtCore.QTranslator] = None
        self._client = QGrainClient()
        self.setWindowTitle("QGrain")
        self.ssu_setting_dialog = SSUSettings(self)
        self.emma_setting_dialog = EMMASettings(parent=self,
                                                client=self._client)
        self.udm_setting_dialog = UDMSettings(parent=self, client=self._client)
        self.parameter_editor = ParameterEditor(self)
        self.ssu_multicore_analyzer = SSUMulticoreAnalyzer(self)
        self.tab_widget = QtWidgets.QTabWidget(self)
        self.tab_widget.setTabPosition(QtWidgets.QTabWidget.West)
        self.setCentralWidget(self.tab_widget)
        self.dataset_generator = DatasetGenerator()
        self.tab_widget.addTab(self.dataset_generator, self.tr("Generator"))
        self.dataset_viewer = StatisticalAnalyzer()
        self.tab_widget.addTab(self.dataset_viewer, self.tr("Statistics"))
        self.pca_analyzer = PCAAnalyzer()
        self.tab_widget.addTab(self.pca_analyzer, self.tr("PCA"))
        self.clustering_analyzer = ClusteringAnalyzer()
        self.tab_widget.addTab(self.clustering_analyzer, self.tr("Clustering"))
        self.ssu_analyzer = SSUAnalyzer(self.ssu_setting_dialog,
                                        self.parameter_editor)
        self.tab_widget.addTab(self.ssu_analyzer, self.tr("SSU"))
        self.emma_analyzer = EMMAAnalyzer(self.emma_setting_dialog,
                                          self.parameter_editor,
                                          client=self._client)
        self.tab_widget.addTab(self.emma_analyzer, self.tr("EMMA"))
        self.udm_analyzer = UDMAnalyzer(self.udm_setting_dialog,
                                        self.parameter_editor,
                                        client=self._client)
        self.tab_widget.addTab(self.udm_analyzer, self.tr("UDM"))

        # Open
        self.open_menu = self.menuBar().addMenu(self.tr("Open"))
        self.open_dataset_action = self.open_menu.addAction(
            self.tr("Grain Size Dataset"))
        self.open_dataset_action.triggered.connect(
            lambda: self.load_dataset_dialog.show())
        self.load_ssu_result_action = self.open_menu.addAction(
            self.tr("SSU Results"))
        self.load_ssu_result_action.triggered.connect(
            self.ssu_analyzer.result_view.load_results)
        self.load_emma_result_action = self.open_menu.addAction(
            self.tr("EMMA Result"))
        self.load_emma_result_action.triggered.connect(
            self.emma_analyzer.load_result)
        self.load_udm_result_action = self.open_menu.addAction(
            self.tr("UDM Result"))
        self.load_udm_result_action.triggered.connect(
            self.udm_analyzer.load_result)

        # Save
        self.save_menu = self.menuBar().addMenu(self.tr("Save"))
        self.save_artificial_action = self.save_menu.addAction(
            self.tr("Artificial Dataset"))
        self.save_artificial_action.triggered.connect(
            self.dataset_generator.on_save_clicked)
        self.save_statistics_action = self.save_menu.addAction(
            self.tr("Statistical Result"))
        self.save_statistics_action.triggered.connect(
            self.on_save_statistics_clicked)
        self.save_pca_action = self.save_menu.addAction(self.tr("PCA Result"))
        self.save_pca_action.triggered.connect(self.on_save_pca_clicked)
        self.save_clustering_action = self.save_menu.addAction(
            self.tr("Clustering Result"))
        self.save_clustering_action.triggered.connect(
            self.clustering_analyzer.save_result)
        self.save_ssu_result_action = self.save_menu.addAction(
            self.tr("SSU Results"))
        self.save_ssu_result_action.triggered.connect(
            self.ssu_analyzer.result_view.save_results)
        self.save_emma_result_action = self.save_menu.addAction(
            self.tr("EMMA Result"))
        self.save_emma_result_action.triggered.connect(
            self.emma_analyzer.save_selected_result)
        self.save_udm_result_action = self.save_menu.addAction(
            self.tr("UDM Result"))
        self.save_udm_result_action.triggered.connect(
            self.udm_analyzer.save_selected_result)

        # Config
        self.config_menu = self.menuBar().addMenu(self.tr("Configure"))
        self.config_ssu_action = self.config_menu.addAction(
            self.tr("SSU Algorithm"))
        self.config_ssu_action.triggered.connect(self.ssu_setting_dialog.show)
        self.config_emma_action = self.config_menu.addAction(
            self.tr("EMMA Algorithm"))
        self.config_emma_action.triggered.connect(
            self.emma_setting_dialog.show)
        self.config_udm_action = self.config_menu.addAction(
            self.tr("UDM Algorithm"))
        self.config_udm_action.triggered.connect(self.udm_setting_dialog.show)

        # Experimental
        self.experimental_menu = self.menuBar().addMenu(
            self.tr("Experimental"))
        self.ssu_fit_all_action = self.experimental_menu.addAction(
            self.tr("Perform SSU For All Samples"))
        self.ssu_fit_all_action.triggered.connect(self.ssu_fit_all_samples)
        self.convert_udm_to_ssu_action = self.experimental_menu.addAction(
            self.tr("Convert Selected UDM Result To SSU Results"))
        self.convert_udm_to_ssu_action.triggered.connect(
            self.convert_udm_to_ssu)
        self.save_all_ssu_figures_action = self.experimental_menu.addAction(
            self.tr("Save Figures For All SSU Results"))
        self.save_all_ssu_figures_action.triggered.connect(
            self.save_all_ssu_figure)

        # Language
        self.language_menu = self.menuBar().addMenu(self.tr("Language"))
        self.language_group = QtGui.QActionGroup(self.language_menu)
        self.language_group.setExclusive(True)
        self.language_actions: List[QtGui.QAction] = []
        for key, name in self.supported_languages:
            action = self.language_group.addAction(name)
            action.setCheckable(True)
            action.triggered.connect(lambda checked=False, language=key: self.
                                     switch_language(language))
            self.language_menu.addAction(action)
            self.language_actions.append(action)
        self.language_actions[0].setChecked(True)

        # Theme
        self.theme_menu = self.menuBar().addMenu(self.tr("Theme"))
        self.theme_group = QtGui.QActionGroup(self.theme_menu)
        self.theme_group.setExclusive(True)
        self.theme_actions = []
        self.default_theme_action = self.theme_group.addAction(
            self.tr("Default"))
        self.default_theme_action.setCheckable(True)
        self.default_theme_action.setChecked(True)
        self.default_theme_action.triggered.connect(lambda: apply_stylesheet(
            app,
            theme=os.path.join(QGRAIN_ROOT_PATH, "assets", "default_theme.xml"
                               ),
            invert_secondary=True,
            extra=EXTRA))
        self.theme_menu.addAction(self.default_theme_action)
        self.theme_actions.append(self.default_theme_action)
        self.light_theme_menu = self.theme_menu.addMenu(self.tr("Light Theme"))
        self.dark_theme_menu = self.theme_menu.addMenu(self.tr("Dark Theme"))
        for theme in list_themes():
            theme_name = string.capwords(" ".join(theme[:-4].split("_")[1:]))
            action = self.theme_group.addAction(theme_name)
            action.setCheckable(True)
            app = QtCore.QCoreApplication.instance()
            invert = theme.startswith("light")
            action.triggered.connect(
                lambda checked=False, t=theme, i=invert: apply_stylesheet(
                    app, theme=t, invert_secondary=i, extra=EXTRA))
            self.theme_actions.append(action)
            if invert:
                self.light_theme_menu.addAction(action)
            else:
                self.dark_theme_menu.addAction(action)

        # Log
        self.log_action = QtGui.QAction(self.tr("Log"))
        self.log_action.triggered.connect(lambda: self.log_dialog.show())
        self.menuBar().addAction(self.log_action)

        # About
        self.about_action = QtGui.QAction(self.tr("About"))
        self.about_action.triggered.connect(lambda: self.about_dialog.show())
        self.menuBar().addAction(self.about_action)

        # Connect signals
        self.ssu_multicore_analyzer.result_finished.connect(
            self.ssu_analyzer.result_view.add_result)
        self.load_dataset_dialog = DatasetLoader(self)
        self.load_dataset_dialog.dataset_loaded.connect(self.on_dataset_loaded)
        self.load_dataset_dialog.dataset_loaded.connect(
            self.dataset_viewer.on_dataset_loaded)
        self.load_dataset_dialog.dataset_loaded.connect(
            self.pca_analyzer.on_dataset_loaded)
        self.load_dataset_dialog.dataset_loaded.connect(
            self.clustering_analyzer.on_dataset_loaded)
        self.load_dataset_dialog.dataset_loaded.connect(
            self.ssu_analyzer.on_dataset_loaded)
        self.load_dataset_dialog.dataset_loaded.connect(
            self.emma_analyzer.on_dataset_loaded)
        self.load_dataset_dialog.dataset_loaded.connect(
            self.udm_analyzer.on_dataset_loaded)
        self.log_dialog = RuntimeLog(self)
        self.about_dialog = About(self)
        self.file_dialog = QtWidgets.QFileDialog(parent=self)
        self.normal_msg = QtWidgets.QMessageBox(self)
        self.close_msg = QtWidgets.QMessageBox(self)
        self.close_msg.setWindowTitle(self.tr("Warning"))
        self.close_msg.setText(
            self.
            tr("Closing this window will terminate all running tasks, are you sure to close it?"
               ))
        self.close_msg.setStandardButtons(QtWidgets.QMessageBox.Yes
                                          | QtWidgets.QMessageBox.No)
        self.close_msg.setDefaultButton(QtWidgets.QMessageBox.No)
Exemplo n.º 6
0
 def theme(self) -> str:
     for i, theme_action in enumerate(self.theme_actions):
         if theme_action.isChecked():
             theme = list_themes()[i]
             return theme