2. Fenster mit PyQt5

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Ernie1412
User
Beiträge: 11
Registriert: Freitag 10. Januar 2020, 20:38

Mittwoch 15. Januar 2020, 00:36

Hallo !

ich will von einem Hauptfenster ein 2. Fenster öffnen
Infos hab ich aus einem Youtube Video
Exit Button geht auch wie im YOutube Video
aber mehr wurde da nicht beschrieben wie ich ein FileDIalog öffne usw.
Ich hab ein Hauptfenster:
class Haupt_Fenster(QtWidgets.QMainWindow):

def __init__(self):
super(Haupt_Fenster, self).__init__()
PATHS = str(os.path.dirname(os.path.abspath(__file__)))
uic.loadUi(os.path.join(PATHS,"Fenster.ui"),self)
...
self.chan.clicked.connect(self.Aendern)
...
def Aendern(self):
self.Aendern_W = QtWidgets.QWidget()
self.ui = Ui_Aendern()
self.ui.setupUi(self.Aendern_W)
self.Aendern_W.show()

Im 2. *.py Script:
class Ui_Aendern(object):
def setupUi(self, Aendern):
Aendern.setObjectName("Aendern")
....
self.ZurueckBtn.clicked.connect(lambda:self.closeFenster(Aendern))
def closeFenster(self,Aendern):
# hide the Screen on Exit
Aendern.hide()

wie geh ich vor für ein 2. Button wo ich ein FileDialog öffnen will ?
im HauptFenster geht das ja so: dialog = QtWidgets.QFileDialog(self,"Ordner öffnen")
im "Aendern" fenster nicht
was muss ich da machen ?
self.OrdnerBtn.clicked.connect(lambda:self.Ordner_Scan(Aendern))

und dann:
def Ordner_Scan(self,Aendern):
dialog = QtWidgets.QFileDialog(self,"Ordner öffnen")
print(dialog)

gehts nicht
File "c:\Users\wkuh\Documents\Python\MeinProgramm\Aendern_Win1.py", line 95, in <lambda>
self.OrdnerBtn.clicked.connect(lambda:self.Ordner_Scan(Aendern))
File "c:\Users\wkuh\Documents\Python\MeinProgramm\Aendern_Win1.py", line 115, in Ordner_Scan
dialog = QtWidgets.QFileDialog(self,"Ordner ÷ffnen")
TypeError: arguments did not match any overloaded call:
QFileDialog(QWidget, Union[Qt.WindowFlags, Qt.WindowType]): argument 1 has unexpected type 'Ui_Aendern'
QFileDialog(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = ''): argument 1 has unexpected type 'Ui_Aendern'

Bitte keine kommentare ala "mach dich mal schlau". Damit ist mir nicht geholfen.
bisher habe ich durch ausprobieren alles hinbekommen und halt Youtube
aber zu dem Problem habe ich nichts gefunden

das ist mein Schluss Cod, falls jemand fragt woher das Ui_Andern kommt :D

if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Aendern = QtWidgets.QWidget()
ui = Ui_Aendern()
ui.setupUi(Aendern)
Aendern.show()
sys.exit(app.exec_())

Danke für eure Hilfe
evtl auch Links zum nachlesen am besten in deutsch, so gut englisch kann ich nämlich nicht :)
Benutzeravatar
JakobDev
User
Beiträge: 42
Registriert: Mittwoch 17. Juli 2019, 17:20

Freitag 17. Januar 2020, 09:36

Um den von dir geposteten Fehler zu beheben, ersetze

Code: Alles auswählen

dialog = QtWidgets.QFileDialog(self,"Ordner öffnen")
durch

Code: Alles auswählen

dialog = QtWidgets.QFileDialog.getExistingDirectory(self,"Ordner öffnen")
Du solltest auch mal einen Blick auf die Dokumentation von QFileDialog werfen.

Und bitte zeige Code das nächste mal im Codeblock.
Antworten