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_())