Variablennamen und Funktionen schreibt man komplett klein, während man Klassen mit großem Anfangsbuchstaben schreibt. Benutze auch keine Abkürzungen, was soll ein fname sein?
Wie ich schon zu Anfang schrieb, darf es nur ein Exemplar von QApplication geben. Wie jetzt main1 mit dateioeffnen zusammenhängt, sehe ich an den Code-Schnippseln nicht, in main1 wird jedenfalls auswahl_kunde aufgerufen, was wiederum ein QApplication-Exemplar erzeugt. Das ist falsch.
Globale Variablen verwendet man nicht. Woher kommt dieses `seen` in auswahl_window? `x` ist ein schlechter Name, egal was in seen drin ist.
Ein Fenster zeigt sich nicht selbst an, das ist etwas, was der Aufrufer macht.
Das ist das, was ich aus den Fragmenten herauslesen konnte: ein Hauptfenster öffnet einen Dialog in dem irgendetwas in eine Combobox eingegeben wird:
Code: Alles auswählen
class AuswahlWindow(QDialog):
def __init__(self, seen):
QDialog.__init__(self)
loadUi('auswahl.ui', self)
for item in seen:
self.combo_kunde.addItem(x)
self.auswertung.clicked.connect(self.auswahl_clicked)
self.abbrechen.clicked.connect(self.reject)
self.auswahl = None
def auswahl_clicked(self):
self.auswahl = self.combo_kunde.currentIndex()
self.accept()
class MainWindow(QWidget):
def __init__(self):
QWidget.__init__(self)
loadUi('main_window.ui',self)
...
def neuer_kunde1(self):
seen = [...] # woher das auch immer kommt
dialog = AuswahlWindow(seen)
if dialog.exec_():
auswahl = dialog.auswahl
def main():
app = QApplication(sys.argv)
mainwindow = MainWindow()
app.exec_()
if __name__ == "__main__":
main()