コード例 #1
0
ファイル: Main.py プロジェクト: JPaehr/VokabelTrainer
    def __init__(self):
        #self.r
        QtGui.QMainWindow.__init__(self)
        self.setupUi(self)
        #self.connect(self.btnNeueSprache, QtCore.SIGNAL("clicked()"), self.neue_sprache)
        self.btnNeueSprache.clicked.connect(self.neue_sprache)
        self.connect(self.btnNeuesBuch, QtCore.SIGNAL("clicked()"), self.neues_buch)
        self.connect(self.btnNeueLektion, QtCore.SIGNAL("clicked()"), self.neue_lektion)
        self.connect(self.btnWoerterbuch, QtCore.SIGNAL("clicked()"), self.woerterbuch)
        self.connect(self.btnNeueVok, QtCore.SIGNAL("clicked()"), self.neue_vokabel)
        self.connect(self.btnAbfrageStarten, QtCore.SIGNAL("clicked()"), self.abfrage_einstellungen)
        self.connect(self.btnSpracheBeareiten, QtCore.SIGNAL("clicked()"), self.sprache_aendern)
        self.connect(self.btnBuecherBearbeiten, QtCore.SIGNAL("clicked()"), self.buch_aendern)
        self.connect(self.btnLektionbearbeiten, QtCore.SIGNAL("clicked()"), self.lektioen_aendern)
        self.connect(self.btnStatistik, QtCore.SIGNAL("clicked()"), self.statistik_oeffnen)
        self.connect(self.btnFortsetzen, QtCore.SIGNAL("clicked()"), self.AbfrageFortsetzen)
        self.connect(self.btnZuruecksetzen, QtCore.SIGNAL("clicked()"), self.databaseReseet)
        self.connect(self.pbSonderlektion, QtCore.SIGNAL("clicked()"), self.woerterbuechSonderlektion)
        self.connect(self.pBEditGrammarHints, QtCore.SIGNAL("clicked()"), self.grammar_edit)
        self.infothread = InfoThreadMainWindow(self)

        self.actionMindestuebereinstimmung.triggered.connect(self.MinFit)
        self.actionSchliessen.triggered.connect(self.closeProgram)
        self.datenbank = Datenbank.base("VokabelDatenbank.sqlite")

        # Fehlerbekaempfung in Sonderlektion
        statement = "update vokabeln set status=0 where status > 6"
        self.datenbank.setData(statement)

        # add datacol for variabletime in query
        try:
            statement = "select warteZeitRichtig from Einstellungen"
            self.datenbank.getDataAsList(statement)

        except:
            statement = "ALTER TABLE Einstellungen ADD COLUMN warteZeitRichtig INTEGER;"
            self.datenbank.setData(statement)
            statement = "update Einstellungen set warteZeitRichtig=1000 where id like 1"
            self.datenbank.setData(statement)
            print("Datenbank aktualisiert")


        try:
            statement = "select richtig from vokabeln"
            self.datenbank.getDataAsList(statement)
        except:
            print("kann richtig nicht aus Vokabeln lesen, weil nicht verfügbar")
            print("spalte richtig wird erstellt")
            tableUpdateStatement = "ALTER TABLE Vokabeln ADD COLUMN richtig INTEGER DEFAULT 0;"
            self.datenbank.setData(tableUpdateStatement)
            print("Datenbank aktualisiert")

            print("spalte falsch wird erstellt")
            tableUpdateStatement = "ALTER TABLE Vokabeln ADD COLUMN falsch INTEGER DEFAULT 0"
            self.datenbank.setData(tableUpdateStatement)
            print("Datenbank aktualisiert")

            print("spalte zuletztRichtig wird erstellt")
            tableUpdateStatement = "ALTER TABLE Vokabeln ADD COLUMN zuletztRichtig INTEGER;"
            self.datenbank.setData(tableUpdateStatement)
            print("Datenbank aktualisiert")

            #set initvalues
            tableUpdateStatement = "update vokabeln set richtig=3, falsch=0, zuletztRichtig=1"
            self.datenbank.setData(tableUpdateStatement)
            print("Datenbank aktualisiert")

        try:
            statement = "select * from formhinweise"
            self.datenbank.getDataAsList(statement)
        except:
            #create table
            statement = "CREATE  TABLE formhinweise (id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , idSprache INTEGER, hint TEXT);"
            self.datenbank.setData(statement)

            updateStatement = "ALTER TABLE vokabeln ADD COLUMN idHint INTEGER;"
            self.datenbank.setData(updateStatement)

        try:
            statement = "select zuletztabgefragt from lektionen"
            self.datenbank.getDataAsList(statement)
        except:
            updateStatement = "ALTER TABLE LEKTIONEN ADD COLUMN zuletztAbgefragt DATETIME"
            self.datenbank.setData(updateStatement)

        try:
            statement = "select count(*) from vokabeln where richtig is NULL"
            data = self.datenbank.getDataAsList(statement)
            if data[0][0] > 0:
                statement = "update Vokabeln set richtig=0 where richtig is null"
                self.datenbank.setData(statement)

            statement = "select count(*) from vokabeln where falsch is NULL"
            data = self.datenbank.getDataAsList(statement)
            if data[0][0] > 0:
                statement = "update Vokabeln set falsch=0 where falsch is null"
                self.datenbank.setData(statement)

        except:
            print("Datenbankaenderung fehlgeschagen! Defaultwerte fuer richig und falsch aus vokabeln sollten"
                  " auf 0 gesetzt werden")

        self.wStatistik = None
        self.wLektionAendern = None
        self.wAbfrageForsetzen = None
        self.wVorsichtigSein = None
        self.wBuch_aendern = None
        self.wSprache_aendern = None
        self.wAbfrage_einstellungen = None
        self.wNeue_vokabel = None
        self.wNeues_buch = None
        self.wNeue_sprache = None
        self.wNeue_lektion = None
        self.wWoerterbuch = None
        self.wMinFit = None
        self.wWoerterbuchSonder = None
        self.wGrammarHints = None

        if os.stat('zwischenSpeicher.fs').st_size == 0:
            self.FortsetzenDisable()
        else:
            self.FortsetzenEnable()


        self.datenbank = Datenbank.base("VokabelDatenbank.sqlite")


        self.setInfoInvisible()
コード例 #2
0
ファイル: Main.py プロジェクト: JPaehr/VokabelTrainer
class Programm(MainWindow, QtGui.QMainWindow):
    """MainKlasse"""
    def __init__(self):
        #self.r
        QtGui.QMainWindow.__init__(self)
        self.setupUi(self)
        #self.connect(self.btnNeueSprache, QtCore.SIGNAL("clicked()"), self.neue_sprache)
        self.btnNeueSprache.clicked.connect(self.neue_sprache)
        self.connect(self.btnNeuesBuch, QtCore.SIGNAL("clicked()"), self.neues_buch)
        self.connect(self.btnNeueLektion, QtCore.SIGNAL("clicked()"), self.neue_lektion)
        self.connect(self.btnWoerterbuch, QtCore.SIGNAL("clicked()"), self.woerterbuch)
        self.connect(self.btnNeueVok, QtCore.SIGNAL("clicked()"), self.neue_vokabel)
        self.connect(self.btnAbfrageStarten, QtCore.SIGNAL("clicked()"), self.abfrage_einstellungen)
        self.connect(self.btnSpracheBeareiten, QtCore.SIGNAL("clicked()"), self.sprache_aendern)
        self.connect(self.btnBuecherBearbeiten, QtCore.SIGNAL("clicked()"), self.buch_aendern)
        self.connect(self.btnLektionbearbeiten, QtCore.SIGNAL("clicked()"), self.lektioen_aendern)
        self.connect(self.btnStatistik, QtCore.SIGNAL("clicked()"), self.statistik_oeffnen)
        self.connect(self.btnFortsetzen, QtCore.SIGNAL("clicked()"), self.AbfrageFortsetzen)
        self.connect(self.btnZuruecksetzen, QtCore.SIGNAL("clicked()"), self.databaseReseet)
        self.connect(self.pbSonderlektion, QtCore.SIGNAL("clicked()"), self.woerterbuechSonderlektion)
        self.connect(self.pBEditGrammarHints, QtCore.SIGNAL("clicked()"), self.grammar_edit)
        self.infothread = InfoThreadMainWindow(self)

        self.actionMindestuebereinstimmung.triggered.connect(self.MinFit)
        self.actionSchliessen.triggered.connect(self.closeProgram)
        self.datenbank = Datenbank.base("VokabelDatenbank.sqlite")

        # Fehlerbekaempfung in Sonderlektion
        statement = "update vokabeln set status=0 where status > 6"
        self.datenbank.setData(statement)

        # add datacol for variabletime in query
        try:
            statement = "select warteZeitRichtig from Einstellungen"
            self.datenbank.getDataAsList(statement)

        except:
            statement = "ALTER TABLE Einstellungen ADD COLUMN warteZeitRichtig INTEGER;"
            self.datenbank.setData(statement)
            statement = "update Einstellungen set warteZeitRichtig=1000 where id like 1"
            self.datenbank.setData(statement)
            print("Datenbank aktualisiert")


        try:
            statement = "select richtig from vokabeln"
            self.datenbank.getDataAsList(statement)
        except:
            print("kann richtig nicht aus Vokabeln lesen, weil nicht verfügbar")
            print("spalte richtig wird erstellt")
            tableUpdateStatement = "ALTER TABLE Vokabeln ADD COLUMN richtig INTEGER DEFAULT 0;"
            self.datenbank.setData(tableUpdateStatement)
            print("Datenbank aktualisiert")

            print("spalte falsch wird erstellt")
            tableUpdateStatement = "ALTER TABLE Vokabeln ADD COLUMN falsch INTEGER DEFAULT 0"
            self.datenbank.setData(tableUpdateStatement)
            print("Datenbank aktualisiert")

            print("spalte zuletztRichtig wird erstellt")
            tableUpdateStatement = "ALTER TABLE Vokabeln ADD COLUMN zuletztRichtig INTEGER;"
            self.datenbank.setData(tableUpdateStatement)
            print("Datenbank aktualisiert")

            #set initvalues
            tableUpdateStatement = "update vokabeln set richtig=3, falsch=0, zuletztRichtig=1"
            self.datenbank.setData(tableUpdateStatement)
            print("Datenbank aktualisiert")

        try:
            statement = "select * from formhinweise"
            self.datenbank.getDataAsList(statement)
        except:
            #create table
            statement = "CREATE  TABLE formhinweise (id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , idSprache INTEGER, hint TEXT);"
            self.datenbank.setData(statement)

            updateStatement = "ALTER TABLE vokabeln ADD COLUMN idHint INTEGER;"
            self.datenbank.setData(updateStatement)

        try:
            statement = "select zuletztabgefragt from lektionen"
            self.datenbank.getDataAsList(statement)
        except:
            updateStatement = "ALTER TABLE LEKTIONEN ADD COLUMN zuletztAbgefragt DATETIME"
            self.datenbank.setData(updateStatement)

        try:
            statement = "select count(*) from vokabeln where richtig is NULL"
            data = self.datenbank.getDataAsList(statement)
            if data[0][0] > 0:
                statement = "update Vokabeln set richtig=0 where richtig is null"
                self.datenbank.setData(statement)

            statement = "select count(*) from vokabeln where falsch is NULL"
            data = self.datenbank.getDataAsList(statement)
            if data[0][0] > 0:
                statement = "update Vokabeln set falsch=0 where falsch is null"
                self.datenbank.setData(statement)

        except:
            print("Datenbankaenderung fehlgeschagen! Defaultwerte fuer richig und falsch aus vokabeln sollten"
                  " auf 0 gesetzt werden")

        self.wStatistik = None
        self.wLektionAendern = None
        self.wAbfrageForsetzen = None
        self.wVorsichtigSein = None
        self.wBuch_aendern = None
        self.wSprache_aendern = None
        self.wAbfrage_einstellungen = None
        self.wNeue_vokabel = None
        self.wNeues_buch = None
        self.wNeue_sprache = None
        self.wNeue_lektion = None
        self.wWoerterbuch = None
        self.wMinFit = None
        self.wWoerterbuchSonder = None
        self.wGrammarHints = None

        if os.stat('zwischenSpeicher.fs').st_size == 0:
            self.FortsetzenDisable()
        else:
            self.FortsetzenEnable()


        self.datenbank = Datenbank.base("VokabelDatenbank.sqlite")


        self.setInfoInvisible()
    def closeProgram(self):
        self.close()
    def setInfoVisible(self, text):
        self.labInfotext.setText(text)
        self.labInfotext.setVisible(True)
        self.hw1InfoText.setVisible(True)
        self.hw2InfoText.setVisible(True)
        self.hwInfotext.hide()

    def setInfoInvisible(self):
        self.labInfotext.hide()
        self.hw1InfoText.hide()
        self.hw2InfoText.hide()
        self.hwInfotext.setVisible(True)

    def databaseReseet(self):


        box = QtGui.QMessageBox()

        boxText = u"Wollen Sie die Datenbank wirklich zurücksetzen? <br> Es werden alle Daten gelöscht!"

        box.setText(boxText)

        btnJa = box.addButton(QtCore.QString(u"Ja"), QtGui.QMessageBox.AcceptRole)
        btnNein = box.addButton(QtCore.QString(u"Abbrechen"), QtGui.QMessageBox.RejectRole)
        box.exec_()

        if box.clickedButton() == btnJa:
            statement = "delete from Buecher"
            self.datenbank.delData(statement)

            statement = "delete from Lektionen"
            self.datenbank.delData(statement)
            statement = "delete from sprache"
            self.datenbank.delData(statement)
            statement = "delete from statistik"
            self.datenbank.delData(statement)
            statement = "delete from Vokabeln"
            self.datenbank.delData(statement)
            statement = "delete from sondervokabeln"
            self.datenbank.delData(statement)
            self.infothread.start()
            self.setInfoVisible(u"Datenbank wurde gelöscht")


        elif box.clickedButton() == btnNein:
            print(u"nein geklickt")


    def statistik_oeffnen(self):
        """
        öffnet die Statistik
        """
        self.wStatistik = Statistik.Statistik(self)
        self.wStatistik.show()

    def lektioen_aendern(self):
        """soll Fenster für Lektion ändern anzeigen
        """
        self.wLektionAendern = LektionAendern.LektionAendern(self)
        self.wLektionAendern.show()

    def grammar_edit(self):
        self.wGrammarHints = Grammar.FormhinweiseAendern(self)
        self.wGrammarHints.show()
    def AbfrageFortsetzen(self):

        self.wAbfrageForsetzen = Abfrage.Abfrage(self, '', '', '', '', '', '', '', '', '',  '1')
        self.wAbfrageForsetzen.show()
        
    def vorsichtig_sein(self):
        """Fenster für Vorsichtig sein"""
        self.wVorsichtigSein = Vorsichtig.VorsichtigSein(self)
        self.wVorsichtigSein.show()

    def buch_aendern(self):
        """Fenster für Buch ändern"""
        self.wBuch_aendern = BuchAendern.BuchAendern(self)
        self.wBuch_aendern.show()

    def sprache_aendern(self):
        """Fenster für Sprache ändern"""
        self.wSprache_aendern = SpracheAendern.SpracheAendern(self)
        self.wSprache_aendern.show()

    def abfrage_einstellungen(self):
        """Fenster für Abfrage Einstellungen"""
        self.wAbfrage_einstellungen = AbfrageEinstellungen.AbfrageEinstellungen(self)
        self.wAbfrage_einstellungen.show()

    def neue_vokabel(self):
        """Fenster für neue Vokabel"""
        self.wNeue_vokabel = NeueVokabel.NeueVokabelAnlegen(self)
        self.wNeue_vokabel.show()

    def neues_buch(self):
        """Fenster für neue Buch"""
        self.wNeues_buch = NeuesBuch.NeuesBuch(self)
        self.wNeues_buch.show()
        
    def neue_sprache(self):
        """Fenster für neue Sprache"""

        self.wNeue_sprache = NeueSprache.NeueSprache()
        self.wNeue_sprache.show()

    def woerterbuechSonderlektion(self):
        """Fenster für Sonderwoerterbuch"""
        self.wWoerterbuchSonder = Sonderwoerterbuch.SonderWoerterbuch(self)
        self.wWoerterbuchSonder.show()

    def neue_lektion(self):
        """"Fenster für neue Lektion"""
        self.wNeue_lektion = NeueLektion.NeueLektion(self)
        self.wNeue_lektion.show()

    def woerterbuch(self):
        """fenster für Wörterbuch"""
        self.wWoerterbuch = Woerterbuch.Woerterbuch(self)
        self.wWoerterbuch.show()

    def FortsetzenDisable(self):
        self.btnFortsetzen.setEnabled(False)
        self.btnFortsetzen.setToolTip('')

    def FortsetzenEnable(self):
        self.btnFortsetzen.setEnabled(True)
        text = self.datenbank.getDataAsList('select datum from AbfrageFortsetzen where id like 1')
        self.btnFortsetzen.setToolTip(str(text[0][0]))

    def MinFit(self):
        self.wMinFit = EinstellungenMindestTreffer.MindestTreffer(self)
        self.wMinFit.show()