예제 #1
0
    def __init__(self):
        self._current_note = None
        self._heard_note = None
        self._listening = Settings.START_LISTENING_AT_STARTUP
        self._autonext = Settings.START_AUTONEXT_AT_STARTUP
        #-- self._start_octave = Settings.DEFAULT_BASE_NOTE_OCTAVE

        # MAIN WINDOW
        self._main_window = MainWindow(flute_teacher=self)

        # SCALE MANAGER AND ARPEGGIATOR
        self._scale_manager = ScaleManager(
            scale_name=Settings.DEFAULT_SCALE_NAME,
            base_note=Note(letter=Settings.DEFAULT_BASE_NOTE_LETTER,
                           alteration=Settings.DEFAULT_BASE_NOTE_ALTERATION,
                           octave=Settings.DEFAULT_BASE_NOTE_OCTAVE),
            mode=Settings.DEFAULT_SCALE_MODE)

        self._arpeggiator = Arpeggiator(
            self._scale_manager,
            kind=Settings.DEFAULT_ARPEGGIATOR_KIND,
            n_octaves=Settings.DEFAULT_ARP_N_OCTAVES)
        self.next_note()

        # NOTE RECOGNITION
        self._hear_ai = HearAI()
        if self._autonext:
            self.set_autonext(True)
        if self._listening:
            self.start_listening()
예제 #2
0
def main( argv, file=None, pdf=None, verbose=None, debug=0, develop=None, fallback=None ):
	"""
	Entry Point.
	"""

	GlobalState.is_verbose = verbose
	GlobalState.is_develop = develop
	GlobalState.is_fallback = fallback
	# Debug-Level soll immer als Zahl gespeichert werden. Der Zugehörige Name kann über das Tupel Config.DEBUG_LEVELS herausgefunden werden.
	if debug in Config.DEBUG_LEVELS:
		GlobalState.debug_level = Config.DEBUG_LEVELS.index( debug )
	else:
		GlobalState.debug_level = int( debug )

	if GlobalState.debug_level and GlobalState.debug_level > Config.DEBUG_LEVEL_NONE:
		print("{name} runs in debug mode (debug-level: {level_index} \"{level_name}\").".format(
			name=Config.PROGRAM_NAME,
			level_index=GlobalState.debug_level,
			level_name=Config.DEBUG_LEVELS[GlobalState.debug_level],
		))
		if GlobalState.debug_level >= Config.DEBUG_LEVEL_MODIFIES_EXPORTS:
			print("WARNING! Exporting and printing character sheets is not recommended.")

	if GlobalState.is_develop:
		print( "{name} runs in development mode.".format(
			name=Config.PROGRAM_NAME,
		))
		print( "WARNING! You may encounter unexpected behaviour. Data loss is possible. Proceed only, if you know, what you are doing." )

	app = QApplication( argv )
	w = MainWindow( file, exportPath=pdf )
	w.show()
	retcode = app.exec_()
예제 #3
0
class Root():
    Margins = 5

    def __init__(self):
        global message
        self.rootwindow = QMainWindow()
        self.rootwindow.setWindowFlags(Qt.FramelessWindowHint)

        self.mainwindow = MainWindow(self.rootwindow)
        # # 预留边界用于实现无边框窗口调整大小
        self.mainwindow.gridLayout_3.setContentsMargins(
            self.Margins, self.Margins, self.Margins, self.Margins)
        self.titleBar = TitleBar(self.rootwindow)
        self.titleBar.SetIcon(QPixmap(WINDOW_ICON))
        self.mainwindow.gridLayout_16.addWidget(self.titleBar)
        self.mainwindow.gridLayout_16.setSpacing(0)
        self.mainwindow.gridLayout_16.addWidget(self.mainwindow.groupBox_2)
        self.mainwindow.gridLayout_16.setContentsMargins(
            self.Margins, self.Margins, self.Margins, self.Margins)
        self.rootwindow.showNormal()
        styleFile = './Uis/style.qss'
        qssStyle = readQss(styleFile)
        self.rootwindow.setStyleSheet(qssStyle)
        self.mainwindow.init_solt()

    def show(self):
        self.rootwindow.show()
예제 #4
0
def main():
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon(utils.find_data_file("icon.png")))
    window = MainWindow()
    window.showMaximized()
    window.hint_window.show()
    app.exec()
예제 #5
0
    def run(params: list) -> int:
        """
        Starts the application.
        :return: Error code. If no error occurred returns 0.
        """
        for item in params:
            if str(item).lower() == "--verbose":
                Config.set_executed_type(ExecutedType.Verbose)
                break

        result = -1
        try:
            exec_real_path = os.path.realpath(params[0])
            exec_dir = os.path.dirname(exec_real_path)
            Config.set_root_dir(exec_dir)

            app = QApplication(params)

            Tools.check_paths()

            window = MainWindow()
            window.show()

            result = app.exec_()
        except Exception as ex:  # wildcard for an app crash
            Tools.write_log(ex)
            result = -2
        finally:
            Tools.write_verbose("Application error code is %s" % result)

        return result
예제 #6
0
    def exec(_):
        self = Application

        from src.modules import modules
        self.modules = []
        for module in modules:
            self.modules.append(module())

        from src.MainWindow import MainWindow
        self.mainWindow = MainWindow()
        self.mainWindow.initUI()

        for module in self.modules:
            if module.id in settings.modules and settings.modules[module.id]:
                module.enable()

        return QApplication.exec()
예제 #7
0
def main(argv,
         file=None,
         pdf=None,
         verbose=None,
         debug=0,
         develop=None,
         fallback=None):
    """
	Entry Point.
	"""

    GlobalState.is_verbose = verbose
    GlobalState.is_develop = develop
    GlobalState.is_fallback = fallback
    # Debug-Level soll immer als Zahl gespeichert werden. Der Zugehörige Name kann über das Tupel Config.DEBUG_LEVELS herausgefunden werden.
    if debug in Config.DEBUG_LEVELS:
        GlobalState.debug_level = Config.DEBUG_LEVELS.index(debug)
    else:
        GlobalState.debug_level = int(debug)

    if GlobalState.debug_level and GlobalState.debug_level > Config.DEBUG_LEVEL_NONE:
        print(
            "{name} runs in debug mode (debug-level: {level_index} \"{level_name}\")."
            .format(
                name=Config.PROGRAM_NAME,
                level_index=GlobalState.debug_level,
                level_name=Config.DEBUG_LEVELS[GlobalState.debug_level],
            ))
        if GlobalState.debug_level >= Config.DEBUG_LEVEL_MODIFIES_EXPORTS:
            print(
                "WARNING! Exporting and printing character sheets is not recommended."
            )

    if GlobalState.is_develop:
        print("{name} runs in development mode.".format(
            name=Config.PROGRAM_NAME, ))
        print(
            "WARNING! You may encounter unexpected behaviour. Data loss is possible. Proceed only, if you know, what you are doing."
        )

    app = QApplication(argv)
    w = MainWindow(file, exportPath=pdf)
    w.show()
    retcode = app.exec_()
예제 #8
0
                p = Process(target=zeronet.start)
                p.start()
            except BlockingIOError as err:
                print(err)
                print("Can't open lock file, your ZeroNet client is probably already running, opening browser without starting Zeronet in the background...")
        else:
            # Create a process for Zeronet
            p = Process(target=zeronet.start)
            p.start()

    time.sleep(5)

    kwargs = {}
    if url:
        kwargs = {"url": url}

    if zeronet_path:
        kwargs["zeronet_path"] = zeronet_path

    kwargs["homepage"] = config.get('global', 'homepage', fallback='1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D')
    kwargs["zeronet_base_url"] = zeronet_base_url

    # Start the PyQt application
    app = QApplication(sys.argv)
    mainWindow = MainWindow(**kwargs)
    app.exec_()

    if p:
        # Shutdown Zeronet if runingin the background
        p.terminate()
예제 #9
0
파일: main.py 프로젝트: martinqt/Sand
# -*-coding:Utf-8 -*

import sys
from src.MainWindow import MainWindow
from PySide.QtGui import QApplication

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())
예제 #10
0
class Application(QApplication):

    moduleChanged = pyqtSignal(tuple)

    def __init__(self, argv):
        QApplication.__init__(self, argv)
        self.setApplicationName("aidoru music player")
        self.setWindowIcon(QIcon("./icons/icon.ico"))

    def exec(_):
        self = Application

        from src.modules import modules
        self.modules = []
        for module in modules:
            self.modules.append(module())

        from src.MainWindow import MainWindow
        self.mainWindow = MainWindow()
        self.mainWindow.initUI()

        for module in self.modules:
            if module.id in settings.modules and settings.modules[module.id]:
                module.enable()

        return QApplication.exec()

    def update():
        self = Application
        execPath = os.path.normpath(
            os.path.join(os.path.dirname(__file__), ".."))
        from .views.UpdateDialog import UpdateDialog
        if os.path.isdir(os.path.join(execPath, ".git")):
            self.updateProcess = updateProcess = QProcess()
            updateProcess.setWorkingDirectory(execPath)
            updateProcess.start("git", ["git", "pull"])

            def finished(exitCode, exitStatus):
                python = sys.executable
                if python: os.execl(python, python, *sys.argv)
                else: os.execl(sys.argv[0], sys.argv)

            updateProcess.finished.connect(finished)
        elif sys.platform == "win32":
            try:
                release = urlopen(
                    "https://raw.githubusercontent.com/ffwff/aidoru/master/release.txt"
                ).read().decode("utf-8").strip()
            except:
                return
            version, url = release.split(" ")
            if __version__ != version:
                url = urlopen(url).geturl()  # qt doesn't handle redirections
                self.updateDialog = UpdateDialog()
                self.updateDialog.show()
                self.updateRequest = QNetworkRequest(QUrl(url))

                f = open(os.path.join(execPath, "aidoru.zip"), "wb")

                def downloadRead():
                    f.write(self.updateReply.readAll())

                def finished():
                    updateProcess = QProcess()
                    updateProcess.startDetached("powershell.exe", [
                        "powershell.exe", "-Command",
                        r"""
Add-Type -AssemblyName System.IO.Compression.FileSystem
function Unzip {
    param([string]$zipfile, [string]$outpath)
    [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
}
$folder=New-TemporaryFile | %%{ rm $_; mkdir $_ }
$path="%s"
echo "$path\aidoru.zip"
Unzip "$path\aidoru.zip" $folder
xcopy "$folder\aidoru" $path /k /q /y /c /e
Start-Process "%s"
""" % (execPath, sys.argv[0])
                    ])
                    sys.exit(0)

                self.networkManager = QNetworkAccessManager()
                self.updateReply = reply = self.networkManager.get(
                    self.updateRequest)
                reply.downloadProgress.connect(
                    self.updateDialog.downloadProgress)
                reply.finished.connect(finished)
                reply.readyRead.connect(downloadRead)
#! /usr/bin/env python3
# -*- coding: utf-8 -*-

"""
    File name: PanZoomRotate.py
    Author: Fredrik Forsberg
    Date created: 2020-11-11
    Date last modified: 2020-11-11
    Python Version: 3.8
"""

# Main file

from src.MainWindow import MainWindow

if __name__ == '__main__':
    root = MainWindow(hotkey_repr='§')
    root.mainloop()
예제 #12
0
파일: main.py 프로젝트: xxzl0130/NGA_GF_Moe
from src.MainWindow import MainWindow
from PyQt5 import QtWidgets
import sys
from src.CheckDialog import *

if __name__ == '__main__':
    try:
        app = QtWidgets.QApplication(sys.argv)
        window = MainWindow()
        window.show()
        sys.exit(app.exec_())
    except Exception as e:
        print(e)
예제 #13
0
파일: qtscod.py 프로젝트: elemc/scod
if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setOrganizationName( "RussianFedora" )
    app.setOrganizationDomain( "www.russianfedora.ru" )
    app.setApplicationName( "Qt SCOD Client" )
    
    locale = QLocale.system()
    
    trans_path = QLibraryInfo.location(QLibraryInfo.TranslationsPath)
    translator = QTranslator(app)
    stranslator = QTranslator(app)
    lang = get_lang_code(locale.name())
    if lang is not None:
        trans_file = QString("qt_%s" % lang)
        #print trans_file
        translator.load(trans_file ,  trans_path)
        app.installTranslator(translator)

        # self translate
        strans_file = QString(":/lang/qtscod-%s" % QLocale.system().name())
        print(strans_file)
        stranslator.load(strans_file, "")
        print (app.applicationFilePath())
        app.installTranslator(stranslator)

    
    w = MainWindow()
    #w.hide()
    w.start_listen()
    sys.exit(app.exec_())
예제 #14
0
import sys

from PySide2 import QtWidgets

from src.BlackPalette import BlackPalette
from src.MainWindow import MainWindow

INFORMATION = "se_music.xlsx"
# KNOWLEDGE_BASE = "music-if-then.txt"
KNOWLEDGE_BASE = "KnowledgeBase.txt"
QA = "QA.json"

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    app.setPalette(BlackPalette())
    mainWindow = MainWindow(INFORMATION, KNOWLEDGE_BASE, QA)
    mainWindow.setPalette(BlackPalette())
    mainWindow.show()
    app.exec_()
예제 #15
0
class FluteTeacher:
    def __init__(self):
        self._current_note = None
        self._heard_note = None
        self._listening = Settings.START_LISTENING_AT_STARTUP
        self._autonext = Settings.START_AUTONEXT_AT_STARTUP
        #-- self._start_octave = Settings.DEFAULT_BASE_NOTE_OCTAVE

        # MAIN WINDOW
        self._main_window = MainWindow(flute_teacher=self)

        # SCALE MANAGER AND ARPEGGIATOR
        self._scale_manager = ScaleManager(
            scale_name=Settings.DEFAULT_SCALE_NAME,
            base_note=Note(letter=Settings.DEFAULT_BASE_NOTE_LETTER,
                           alteration=Settings.DEFAULT_BASE_NOTE_ALTERATION,
                           octave=Settings.DEFAULT_BASE_NOTE_OCTAVE),
            mode=Settings.DEFAULT_SCALE_MODE)

        self._arpeggiator = Arpeggiator(
            self._scale_manager,
            kind=Settings.DEFAULT_ARPEGGIATOR_KIND,
            n_octaves=Settings.DEFAULT_ARP_N_OCTAVES)
        self.next_note()

        # NOTE RECOGNITION
        self._hear_ai = HearAI()
        if self._autonext:
            self.set_autonext(True)
        if self._listening:
            self.start_listening()

    def is_autonext(self):
        return self._autonext

    def is_listening(self):
        return self._listening

    def set_autonext(self, val):
        self._autonext = val

    def hearing_loop(self):
        while self._listening:
            dec = self.hear_sample()
            if self._autonext and (dec is not None) and (dec == 0):
                self.next_note(validate=True)

    def start_listening(self):
        print('FT: start listening')
        self._listening = True
        thr = threading.Thread(target=self.hearing_loop)
        thr.start()

    def stop_listening(self):
        print('FT: stop listening')
        self._listening = False

    def validate_notes_gui(self):
        self._main_window.display_note(staff='left',
                                       note=self._current_note,
                                       ndec=0)
        self._main_window.display_note(staff='right',
                                       note=self._current_note,
                                       ndec=0)
        sleep(VALIDATE_TIME)
        self._main_window.erase_note(staff='left')
        self._main_window.erase_note(staff='right')

    def next_note(self, validate=False):
        if VALIDATE_NOTE and validate and (self._current_note is not None):
            self.validate_notes_gui()

        self._current_note = self._arpeggiator.pick_note()

        if self._current_note is None:
            print('ERROR: NEW NOTE IS NONE')
            exit(0)

        self._main_window.display_note(staff='left', note=self._current_note)
        self._main_window.fingering.set_fingering(self._current_note)

    def hear_sample(self):
        self._hear_ai.record(millis=200)
        heard_note = self._hear_ai.get_last_note(
            alteration=self._current_note.alteration)

        if heard_note is not None:
            self._heard_note = heard_note
            dec = heard_note.midi_code - self._current_note.midi_code
            print('head note: {}'.format(heard_note))
            self._main_window.display_note(staff='right',
                                           note=heard_note,
                                           ndec=dec)
            return dec

        self._main_window.erase_note(staff='right')
        return None

    # def check_playability(self):
    #     Fingering.check_notes(self._arpeggiator.get_notes())
    # is_ok = Fingering.check_notes(self._arpeggiator.get_notes())
    # if not is_ok:
    #     print('WARNING: CONTAINS UNREGISTERED FINGERINGS')
    #     self._main_window.display_fingering_warning()

    # def get_start_octave(self):
    #     return self._start_octave

    def set_scale(self, scale_name, mode):
        _scale_mgr_tmp = copy(self._scale_manager)
        _scale_mgr_tmp.set_scale(scale_name, mode)
        _arpeggiator_tmp = copy(self._arpeggiator)
        _arpeggiator_tmp.set_scale_manager(_scale_mgr_tmp)

        if Fingerings.check_notes(_arpeggiator_tmp.get_notes()):
            self._scale_manager = _scale_mgr_tmp
            self._arpeggiator = _arpeggiator_tmp
            self.next_note()
        else:
            print('FluteTeacher.set_scale() -> FingeringError')
            raise FingeringError

    def set_base_note(self, letter, alteration):
        _scale_mgr_tmp = copy(self._scale_manager)
        _scale_mgr_tmp.set_basenote(letter, alteration)
        _arpeggiator_tmp = copy(self._arpeggiator)
        _arpeggiator_tmp.set_scale_manager(_scale_mgr_tmp)

        if Fingerings.check_notes(_arpeggiator_tmp.get_notes()):
            self._scale_manager = _scale_mgr_tmp
            self._arpeggiator = _arpeggiator_tmp
            self.next_note()
        else:
            print('FluteTeacher.set_base_note() -> FingeringError')
            raise FingeringError

    def set_start_octave(self, start_octave=4):
        _scale_mgr_tmp = copy(self._scale_manager)
        _scale_mgr_tmp.set_octave(start_octave)
        _arpeggiator_tmp = copy(self._arpeggiator)
        _arpeggiator_tmp.set_scale_manager(_scale_mgr_tmp)

        if Fingerings.check_notes(_arpeggiator_tmp.get_notes()):
            self._scale_manager = _scale_mgr_tmp
            self._arpeggiator = _arpeggiator_tmp
            self.next_note()
        else:
            print('FluteTeacher.set_start_octave() -> FingeringError')
            raise FingeringError

    def set_arpeggiator(self, kind, n_octaves):
        _arpeggiator_tmp = Arpeggiator(self._scale_manager, kind, n_octaves)

        if Fingerings.check_notes(_arpeggiator_tmp.get_notes()):
            self._arpeggiator = _arpeggiator_tmp
            self.next_note()
        else:
            print('FluteTeacher.set_arpeggiator() -> FingeringError')
            raise FingeringError

    def set_fingering_display_mode(self, mode, delay):
        self._main_window.fingering.set_display_mode(mode, delay)

    def set_fingering_key_color(self, color):
        self.fingering.set_fingering_key_color(color)

    def set_fingering_delay_color(self, color):
        self.fingering.set_fingering_delay_color(color)

    def quit(self):
        print('FluteTeacher: closing MainWindow')
        self._main_window.close()
        print('FluteTeacher says babye.')
예제 #16
0
# -*- coding: utf-8 -*-

# app for database and hydrosoftware final work
# author: rainyl
# update: 2019-3-27

import sys
from PyQt5.QtWidgets import QApplication
from src.MainWindow import MainWindow

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainwindow = MainWindow()
    mainwindow.show()

    sys.exit(app.exec_())
예제 #17
0
파일: main.py 프로젝트: Enhisir/Focus-To-Do
import sys
from PyQt5.QtWidgets import QApplication
from src.MainWindow import MainWindow

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MainWindow()
    ex.show()
    sys.exit(app.exec_())