QEdit mit QFiledialog

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Bl3nder
User
Beiträge: 139
Registriert: Freitag 3. Januar 2020, 17:07

Hallo Leute,


kann mir jemand kurz helfen Ich möchte wenn Ich in ein QLineedit doppelklicke das ein QFiledialog aufgeht... dafür muss ich wohl eine eigene Klasse schreiben ...Ich habe das auch versucht jedoch möchte Ich das der ausgewählte Pfad in dem QLineeditFenster angezeigt wird (dieses Befindet sich in einer anderen Klasse) Ich komme Leider nicht weiter da Ich nicht so viel Erfahrung mit Klassen habe.Ich danke euch

Code: Alles auswählen

import sys
import pandas as pd
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *


# noch nicht implementiert
class MyLineEdit(QLineEdit):
    def __init__(self, parent):
        super(MyLineEdit, self).__init__(parent)
        self.parentWindow = parent
        self.filename = None

    def mouseDoubleClickEvent(self, event):
        self.filename = QFileDialog.getOpenFileName(self, "Exceldatei auswählen", filter="*.xls")
        self.parentWindow.mousePressEvent(event)
        return


class Fenster(QWidget):
    def __init__(self):
        super().__init__()
        self.initMe()

    def initMe(self):
        # Label1
        self.label1 = QLabel("Excel-Datei:", self)
        # Beispiel für ein Bild: label1.setPixmap(QPixmap("Excel.png"))
        self.label1.move(50, 55)

        # Textbox 1: Hier kann den Namen der Excel-Datei eingeben
        self.textbox = MyLineEdit(self)
        self.textbox.move(150, 60)
        if self.textbox.filename != None:
            self.textbox.text = self.textbox.filename

        # Textbox 2: Hier soll man den Filter eingeben, nach dem gefiltert werden soll. Beispiel RadioButton Geräte-ID gewählt.
        # Geräte-ID eingeben: Beispiel: 12345678
        self.textbox1 = QLineEdit(self)
        self.textbox1.move(50, 240)
        self.textbox1.textChanged.connect(self.clicked1)

        # Textbox 3: Hier werden die gefilterten Ergebnisse vor der CSV-Umwandlung angezeigt zur Überprüfung
        self.textbox2 = QTextEdit(self)
        self.textbox2.move(50, 300)
        self.textbox2.setReadOnly(True)

        # Filter nach Geräte-ID
        self.radiobutton = QRadioButton("Geräte-ID", self)
        self.radiobutton.setCheckable(True)
        self.radiobutton.move(50, 100)
        self.radiobutton.toggled.connect(self.clicked2)

        # Filter nach Raum
        self.radiobutton1 = QRadioButton("Raum", self)
        self.radiobutton1.setCheckable(True)
        self.radiobutton1.move(50, 150)
        self.radiobutton1.toggled.connect(self.clicked3)

        # Filter nach Hersteller
        self.radiobutton2 = QRadioButton("Hersteller", self)
        self.radiobutton2.setCheckable(True)
        self.radiobutton2.move(50, 200)
        self.radiobutton2.toggled.connect(self.clicked4)

        # Button1: Bestätigt die Eingabe der Excel-Datei von TextBox1
        QToolTip.setFont(QFont("Arial, 14"))
        self.button = QPushButton("Bestätigen", self)
        self.button.move(450, 50)
        self.button.setToolTip("Hiermit lesen sie die angewählte Excel-Datei ein")
        self.button.clicked.connect(self.gedrueckt_einlesen)

        # Button2: Bestätigt die Eingabe des ausgewählten Radio-Buttons und der Filter die in Textbox 2. die gefilterten Ergebnisse werden
        # in Textbox 3 angezeigt/ausgegeben.
        QToolTip.setFont(QFont("Arial, 14"))
        self.button1 = QPushButton("Filtern", self)
        self.button1.move(50, 270)
        self.button1.setToolTip(
            "Durch das Drücken dieses Button filterst du die Excel Datei nach dem Ausgewählten Filter und dem Filterbegriff!")
        self.button1.clicked.connect(self.gedrueckt_filtern)

        # Button3: Die ausgewerteten Filter aus Textbox 3 werden in eine CSV Datei umgewandelt und ausgegeben. Die Datei wird den Azubis
        # für die Aufträge im Werk mitgegeben.
        QToolTip.setFont(QFont("Arial, 14"))
        self.button2 = QPushButton("Ausgabe Filter als .csv-Datei", self)
        self.button2.move(50, 500)
        self.button2.setToolTip("Mit dem Klick auf den Button wird eine csv-Datei erzeugt und abgespeichert.")
        self.button2.clicked.connect(self.gedrueckt_ausgabe)

        self.setGeometry(50, 50, 600, 550)
        self.setWindowTitle("Excel Umwandeln")
        self.setWindowIcon(QIcon("Excel.png"))
        self.show()

    def gedrueckt_einlesen(self):
        print("Button gedrueckt!")
        computer = pd.read_excel(self.textbox.text())
        print(computer[["GERAETEID", "HERSTELLER", "STANDORT", "RAUM"]])

    def gedrueckt_ausgabe(self):
        pass

    def gedrueckt_filtern(self):
        pass

    def clicked(self):
        filename = QFileDialog.getOpenFileName(self, "Choose picture", "*.xls")

    def clicked1(self):
        pass

    def clicked2(self):
        pass

    def clicked3(self):
        pass

    def clicked4(self):
        pass


app = QApplication(sys.argv)
w = Fenster()
sys.exit(app.exec_())


Eine Vision ohne Aktion bleibe eine Illusion
Antworten