from PySide6.QtCore import Qt, QSize, QSettings, QCoreApplication, QRect, QTimer from PySide6.QtGui import QImageReader, QPixmap, QResizeEvent, QPdfWriter, \ QPainter, QImage, QPaintDevice, QPageSize from PySide6.QtWidgets import QApplication, QMainWindow, QGraphicsScene, \ QFileDialog, QGraphicsPixmapItem, QLabel, QGridLayout, QLineEdit, QGraphicsSceneMouseEvent from sliced_art.art_shuffler import ArtShuffler from sliced_art.clickable_pixmap_item import ClickablePixmapItem from sliced_art.main_window import Ui_MainWindow from sliced_art.selection_grid import SelectionGrid from sliced_art.word_shuffler import WordShuffler from sliced_art.word_stripper import WordStripper QCoreApplication.setOrganizationDomain("donkirkby.github.io") QCoreApplication.setOrganizationName("Don Kirkby") QCoreApplication.setApplicationName("Sliced Art") ClueType = Enum('ClueType', 'words symbols') class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.art_scene = QGraphicsScene(self) self.art_scene.addText('Open an image file.') self.ui.art_view.setScene(self.art_scene) self.symbols_scene = QGraphicsScene(self) self.ui.symbols_view.setScene(self.symbols_scene) self.ui.action_exit.triggered.connect(self.close)
from src.model.main_model import MainModel if __name__ == "__main__": # Registro il processo per Windows, così da avere l'icona nella taskbar if sys.platform == "win32": try: myappid = 'mercuryseven.ssd.zextrasdrivedesktop.1.0' ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID( myappid) except Exception as e: print(e) # Bisogna fare questo per poter usare QSettings QCoreApplication.setOrganizationName("MercurySeven") QCoreApplication.setApplicationName("SSD") # start main application app = QApplication(sys.argv) # utile per avere l'icona di notifica app.setQuitOnLastWindowClosed(False) # initialize logging format _format = "%(asctime)s:%(levelname)s:%(filename)s:%(name)s:%(message)s" logging.basicConfig(level=logging.INFO, format=_format) # rimuove i log spammosi di rete logging.getLogger("gql.transport.aiohttp").setLevel(logging.WARNING) logging.getLogger("gql.transport.requests").setLevel(logging.WARNING) env_settings = QSettings() # env_settings.setValue("sync_path", None)
import sys from optparse import OptionParser from single_application import SingleApplication from window import Window from PySide6.QtCore import QCoreApplication if __name__ == '__main__': QCoreApplication.setApplicationName('Balob') QCoreApplication.setApplicationName('Balobviewer') appGuid = 'baloviwer-server-125156dsfdsf' app = SingleApplication(appGuid, sys.argv) if app.get_is_running(): parser = OptionParser() parser.add_option("-f", "--file", dest="filename", help="open a file") (options, args) = parser.parse_args() parser_file = options.filename if parser_file is not None: app.send_message(parser_file) sys.exit(0) window = Window() window.showMaximized() app.set_activation_window(window) sys.exit(app.exec_()) # app = QApplication(sys.argv) # main = Window() # main.showMaximized() # app.exec_()
def main(): # if lock_file is existed , it means persepolis is still running! if lock_file_validation and (not ( (args.parent_window or unknownargs) and browser_url == False) or ((args.parent_window or unknownargs) and start_persepolis_if_browser_executed)): # set QT_AUTO_SCREEN_SCALE_FACTOR to 1 for "high DPI displays" os.environ['QT_AUTO_SCREEN_SCALE_FACTOR'] = '1' # run mainwindow # set color_scheme and style # see palettes.py and setting.py # this line is added fot fixing persepolis view in HighDpi displays # more information at: https://doc.qt.io/qt-5/highdpi.html try: QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) except: from persepolis.scripts import logger # write error_message in log file. logger.sendToLog('Qt.AA_EnableHighDpiScaling is not available!', "ERROR") # create QApplication persepolis_download_manager = PersepolisApplication(sys.argv) # setQuitOnLastWindowClosed(False) is needed to prevent persepolis exiting, # when it's minimized in system tray. persepolis_download_manager.setQuitOnLastWindowClosed(False) # Enable High DPI display try: if hasattr(QStyleFactory, 'AA_UseHighDpiPixmaps'): persepolis_download_manager.setAttribute( Qt.AA_UseHighDpiPixmaps) except: from persepolis.scripts import logger # write error_message in log file. logger.sendToLog('Qt.AA_UseHighDpiPixmaps is not available!', "ERROR") # set organization name and domain and application name QCoreApplication.setOrganizationName('persepolis_download_manager') QCoreApplication.setApplicationName('persepolis') # Persepolis setting persepolis_download_manager.setting = QSettings() # get user's desired font and style , ... from setting custom_font = persepolis_download_manager.setting.value( 'settings/custom-font') font = persepolis_download_manager.setting.value('settings/font') font_size = int( persepolis_download_manager.setting.value('settings/font-size')) style = persepolis_download_manager.setting.value('settings/style') color_scheme = persepolis_download_manager.setting.value( 'settings/color-scheme') ui_direction = persepolis_download_manager.setting.value( 'ui_direction') # set style persepolis_download_manager.setPersepolisStyle(style) # set font persepolis_download_manager.setPersepolisFont(font, font_size, custom_font) # set color_scheme persepolis_download_manager.setPersepolisColorScheme(color_scheme) # set ui direction if ui_direction == 'rtl': persepolis_download_manager.setLayoutDirection(Qt.RightToLeft) elif ui_direction in 'ltr': persepolis_download_manager.setLayoutDirection(Qt.LeftToRight) # run mainwindow try: mainwindow = MainWindow(start_in_tray, persepolis_download_manager, persepolis_download_manager.setting) if start_in_tray: mainwindow.hide() else: mainwindow.show() except Exception: from persepolis.scripts import logger error_message = str(traceback.format_exc()) # write error_message in log file. logger.sendToLog(error_message, "ERROR") # Reset persepolis error_window = ErrorWindow(error_message) error_window.show() sys.exit(persepolis_download_manager.exec_()) elif not ((args.parent_window or unknownargs)): # this section warns user that program is still running and no need to run it again # and creating a file to notify mainwindow for showing itself! # (see CheckingThread in mainwindow.py for more information) if len(plugin_list) == 0: show_window_file = os.path.join(persepolis_tmp, 'show-window') f = open(show_window_file, 'w') f.close() sys.exit(0)