Seite 1 von 1

GUI Event, Variable speichern

Verfasst: Freitag 19. März 2021, 20:50
von python_lukas25
Hi,

ich habe eine kleine GUI mit dem Designer erstellt und möchte 2 Variablen über LineEdit einlesen.
Diese zwei Werte dann außerhalb der Klasse in der Main Funktion Variablen zuweisen. Diesen Schritt bekomme ich nicht hin...
Zum Schluss sollen die Werte in eine Excel geschrieben werden. Die wichtigsten Schritte zeige ich hier mal.

Code: Alles auswählen

from openpyxl import load_workbook
import pandas as pd
import sys
from PyQt5 import QtGui, QtWidgets
from PyQt5 import QtCore

class Ui_MainWindow(object):

    def setupUi(self, push_button):
     	self.lineEdit_var1 = QtWidgets.QLineEdit(push_button)
     	self.lineEdit_var2 = QtWidgets.QLineEdit(push_button)
     	self.pushButton.clicked.connect(self.user_input)
     	
    def user_input(self):

        self.var1_neu = self.lineEdit_var1.text()
        self.var2_neu = self.lineEdit_var2.text()
        
if __name__ == '__main__':

    wb_1 = load_workbook('C:\\filename.xlsx')
    ws_1 = wb_1.active
    
    dataframe = pd.read_excel(filename, header=1)
    
     app = QtWidgets.QApplication(sys.argv)
    Main_Window = QtWidgets.QWidget()
    ui = Ui_MainWindow()
    ui.setupUi(Main_Window)
    Main_Window.show()
    
    ws_1['A1'] = ui.var1_neu
    ws_1['A2] = ui.var2_neu
    
    wb_1.save(filename2)
    sys.exit(app.exec_())    

Re: GUI Event, Variable speichern

Verfasst: Samstag 20. März 2021, 18:20
von Sirius3
So funktionieren GUIs nicht. Wie soll denn jemand etwas in die LineEdits eingeben können, wenn Du noch nicht app.exec_ aufgerufen hattest?
user_input wird zumden nie aufgerufen.
Das übliche ist es, einen Save-Button zu haben, und wenn der Gedrückt wird, schreibst Du in der entsprechenden Funktion in Deine Excel-Datei.

Re: GUI Event, Variable speichern

Verfasst: Montag 22. März 2021, 20:30
von python_lukas25
Danke für die Antwort. Ich bin mir nicht ganz sicher ob ich dich verstehe. Ich zeige hier nur ein Teilausschnitt meiner GUI, die ich mit dem gui designer erstellt habe.
An sich funktioniert alles, ich kann alles eingeben, die Funktion wird aufgerufen (über print Ausgabe geprüft).
Nur das Speichern in der Excel funktioniert nicht, wie würde so ein Save Button aussehen?
Soweit ich weiß heißt "sys.exit(app.exec_())" = Programm schließen, nachdem die GUI geschlossen wurde...

Re: GUI Event, Variable speichern

Verfasst: Montag 22. März 2021, 20:42
von Sirius3
Nein; ›sys.exit(app.exec_())‹ bedeutet, führe die GUI aus; davor werden nur die Fenster initialisiert, danach passiert nichts mehr.