Seite 1 von 1

Re: Funktion nach Button connect funktioniert nicht...

Verfasst: Montag 6. November 2017, 11:15
von Sirius3
@tt-web: `Tauch` hat kein __init__. `show` sollte nur von außen aufgerufen werden und dann auch nicht auf der ui-Komponente. Wie sieht denn Dein komplettes Programm aus?

Re: Funktion nach Button connect funktioniert nicht...

Verfasst: Montag 6. November 2017, 11:28
von tt-web
Hauptfenster:

Code: Alles auswählen

import sys
from PyQt5.QtWidgets import *
from PyQt5.uic import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from modulTauch import *
   
class test(QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.lm = loadUi('ui/test.ui')
        self.lm.show()
        self.lm.actionTauch.triggered.connect(self.tauch)
        

    def tauch(self):
        Tauchapp.tauchapp(self)

 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    myapp=test()
    sys.exit(app.exec_())
Aufzurufender Dialog aus modulTauch:

Code: Alles auswählen

import sys
from PyQt5.QtWidgets import *
from PyQt5.uic import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from berechnungTauch import *
   


class Tauchapp(QDialog):
    
    def tauchapp(self):
        print("tauchapp")
        self.ui = loadUi('ui/lm_tauch.ui')
        self.ui.show()
        self.ui.btnCalc.clicked.connect(self.berechnung)
       
        
    def berechnung(self):
        print("enter berechnung")
  

Re: Funktion nach Button connect funktioniert nicht...

Verfasst: Montag 6. November 2017, 11:53
von Sirius3
@tt-web: bevor Du hier anfängst, Module kreuz und quer zu importieren, schreib fürs erste alles in eine Datei. Sollte das irgendwann einmal zu viel für eine Datei werden, trenne Dinge ab, die für sich stehen können. Vermeide *-Importe, da Du nicht kontrollieren kannst, was da alles in den Namensraum geladen wird. `show` sollte nicht in __init__ aufgerufen werden. Du erzeugst keine Tauchapp-Instanz sondern versuchst direkt Methoden aufzurufen. Das sollte Dir eigentlich mit einem TypeError um die Ohren fliegen.

Code: Alles auswählen

import sys
import os
from PyQt5.QtGui import QApplication, QDialog, QMainWindow
from PyQt5.uic import loadUi

BASEPATH = os.path.dirname(__file__)

class Tauchapp(QDialog):
    def __init__(self):
        super().__init__()
        print("tauchapp")
        loadUi(os.path.join(BASEPATH, 'ui/lm_tauch.ui'), self)
        self.btnCalc.clicked.connect(self.berechnung)
       
    def berechnung(self):
        print("enter berechnung")   

class Test(QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        loadUi(os.path.join(BASEPATH, 'ui/test.ui'), self)
        self.actionTauch.triggered.connect(self.tauch)
 
    def tauch(self):
        Tauchapp().show()
 
def main():
    app = QApplication(sys.argv)
    myapp = Test()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()