Seite 1 von 2

Grundsätzliche Frage zu Qt

Verfasst: Dienstag 17. Februar 2026, 15:09
von StMan
Hallo zusammen,
ich habe meine ersten Anfänger Versuche mit pyside6-designer gemacht, und habe ein Fenster mit Buttons, Entrys usw. erstellt. Dann die .ui in .py convertiert. Soweit OK. Nun habe ich gelesen man sollte in der convertierten nichts ändern, also habe ich sie in mein main importiert.
Nun die Fragen:
Muß ich die ganzen Classen die in der convertierten .py stehen auch in meinem main importieren?
Wie kann ich z.B. in meinem main die FontFarbe FrameFarbe ändern ?

Re: Grundsätzliche Frage zu Qt

Verfasst: Dienstag 17. Februar 2026, 16:01
von __blackjack__
@StMan: Ich würde da nichts in Quelltext umwandeln, sondern die *.ui-Datei zur Laufzeit in das Programm laden. Bei PySide nimmt man dafür einen `QUiLoader`.

Man kann keine Klassen importieren, nur Module. Wenn Du ein Modul importierst wird der komplette Inhalt des Moduls ausgeführt. Man kann nicht selektiv nur Teile von dem Code auf Modulebene ausführen lassen.

Um was an den GUI-Objekten zu ändern, musst Du das entsprechende Objekt in die Finger bekommen, und dann die entsprechenden Methoden verwenden. Wenn es nicht das Widget ist was die anderen Widgets enthält, denn das bekommt man ja problemlos in die Finger, kann man beispielsweise die `findChild()` oder `findChildren()` Methoden von `QObject` verwenden um Widgets über den Namen zu finden, den man im Designer vergeben hat.

Re: Grundsätzliche Frage zu Qt

Verfasst: Mittwoch 18. Februar 2026, 10:43
von StMan
ich habe nun die .ui in mein main nach vielen Fehlversuchen eingebunden, und es funktioniert soweit auch.
Nun habe ich ein Problem das ich nicht lösen kann. Wenn ich Daten in eine QListWidget einlese, habe ich nach jedem Eintrag eine Leerzeile die ich nicht weg bekomme.
Die gleichen Daten bei tk.listbox machten keine Probleme.

Re: Grundsätzliche Frage zu Qt

Verfasst: Mittwoch 18. Februar 2026, 13:57
von __blackjack__
Wohl eher _in_ jedem Eintrag, weil da ziemlich wahrscheinlich ein Zeilenende-Zeichen am Ende jeder Zeile ist. Wobei das auch bei Tk ”probleme” macht, denn dort führt das zwar nicht zu einer neuen Zeile, aber es wird als schwarzes Kästchen nach dem Text im Eintrag angezeigt.

Re: Grundsätzliche Frage zu Qt

Verfasst: Mittwoch 18. Februar 2026, 14:38
von snafu
@StMan:
Beim zeilenweisen Einlesen bleiben die Newline-Zeichen erhalten. Du kannst das lösen, indem du für jede Zeile die Methode strip() aufrufst. Normalerweise hätte ich rstrip() empfohlen, um möglicherweise gewollten Whitespace am Zeilenanfang zu beizubehalten. Aber da es Listeneinträge sind, dürfte strip() hier besser passen.

Re: Grundsätzliche Frage zu Qt

Verfasst: Mittwoch 18. Februar 2026, 15:15
von StMan
@snafu strip() habe ich probiert, nützt aber nichts.

Re: Grundsätzliche Frage zu Qt

Verfasst: Mittwoch 18. Februar 2026, 15:48
von snafu
Ein "funktioniert nicht" trägt leider nur sehr bedingt zur Lösungsfindung bei. Könntest du den Vorgang des Einlesens und Hinzufügen zum Widget auf ein Minimum herunterbrechen (also so damit das Problem dort tatsächlich noch auftritt) und diesen dann zur Ursachenforschung bitte hier reinstellen? Hilfreich wäre auch ein eingefügtes ``print(eintrag)``, damit man sieht, ob die Leerzeilen auch bei der Ausgabe auf der Kommandozeile mit angezeigt werden. ``print(repr(eintrag))`` ginge auch, damit man sozusagen die Rohform des Strings sehen kann ("repr" = "representation", quasi eine Ausgabe zum Debuggen).

Re: Grundsätzliche Frage zu Qt

Verfasst: Mittwoch 18. Februar 2026, 20:43
von StMan
damit erscheint pro Eintrag eine Leerzeile.

Code: Alles auswählen

 if self.connection.is_connected():
                self.update_status(f"Verbunden mit Localhost", col=1)
                cursor = self.connection.cursor()
                cursor.execute("SHOW DATABASES")               
                self.ui.DBView.clear()                 
                # 1.Checkbox überprüfen
                if self.ui.checkBox.isChecked():
                    system_dbs = set() # Leere Menge -> alle DBs werden angezeigt
                    self.update_status(f"Alle Datenbanken werden angezeigt", col=1)  
                else:
                    system_dbs = self.system_db_list 
                    self.update_status(f"Nur eigene Datenbanken werden angezeigt", col=1)  
                for (db_name,) in cursor:
                    db_name = db_name.strip()  # Entfernt \n, \r und Leerzeichen am Ende
                    if db_name not in system_dbs:   # Filter greift nur, wenn system_dbs nicht leer ist
                        self.ui.DBView.addItem(db_name) 
Das ist der Print(rep(db_name))
'Backup'
'information_schema'
'mysql'
'performance_schema'
'phpmyadmin'
'prgdaten'
'test'

Re: Grundsätzliche Frage zu Qt

Verfasst: Mittwoch 18. Februar 2026, 20:57
von StMan
ich kann auch nicht den Menüeintrag "Beenden" aktivieren. Habe actionBeenden triggered() eingestellt.

Re: Grundsätzliche Frage zu Qt

Verfasst: Mittwoch 18. Februar 2026, 23:41
von __blackjack__
@StMan: Da kann man sich das `strip()` sparen. Die Datenbanknamen kommen ja aus einer Datenbank und nicht aus einer Textdatei. Du hattest „einlesen“ geschrieben, da habe ich an eine Datei und nicht an eine Datenbank gedacht.

Re: Grundsätzliche Frage zu Qt

Verfasst: Donnerstag 19. Februar 2026, 20:44
von snafu
Sind die leeren Zeilen denn eigene Einträge (also Einträge ohne Text) oder ist die leere Zeile jeweils Teil des Eintrags? Vielleicht kannst du mal einen Screenshot machen, wo ein Eintrag markiert ist, damit man sieht, was du meinst...?

Re: Grundsätzliche Frage zu Qt

Verfasst: Freitag 20. Februar 2026, 09:01
von StMan
ma im QListWidget sieht es nicht so aus
'Backup'
'information_schema'
'mysql'
'performance_schema'
'phpmyadmin'
'prgdaten'
'test'

sondern so

'Backup'

'information_schema'

'mysql'

'performance_schema'

'phpmyadmin'

'prgdaten'

'test'

Re: Grundsätzliche Frage zu Qt

Verfasst: Freitag 20. Februar 2026, 09:23
von __blackjack__
@StMan: Das ist im Grunde klar, die Frage ist wie das grafisch aussieht, insbesondere mit einem ausgewählten Eintrag, damit man optisch sieht, was tatsächlich dazu gehört.

Was hast Du im Designer denn alles geändert was von den Standardeinstellungen abweicht? Das sieht man daran, dass die Eigenschaft in „bold“ dargestellt wird. Mit dem kleinen Button am Ende wenn man eine Eigenschaft angeklickt hat, kann man die Eigenschaft wieder auf den Standardwert zurück stellen.

Re: Grundsätzliche Frage zu Qt

Verfasst: Freitag 20. Februar 2026, 09:35
von snafu
Meine Empfehlung wäre ja, das Befüllen nochmal mit einem "frischen" List Widget mit Standardeinstellungen zu probieren. Dann hat man einen Vergleich, ob es durch das Layout bedingt ist.

Re: Grundsätzliche Frage zu Qt

Verfasst: Freitag 20. Februar 2026, 10:48
von StMan
außer font = bold habe ich nichts verändert.
wenn ich einen Entrag auswähle, ist vor dem Wort eine blaue senkrechte Linie, und die ganze Zeile wird grau.
Ich habe das ganze auch in Python manuel gemacht, da ist alles OK.

Re: Grundsätzliche Frage zu Qt

Verfasst: Freitag 20. Februar 2026, 11:52
von __blackjack__
Das wird ja immer merkwürdiger. In der `*.ui`-Datei ist bei dem `QListWidget` wirklich nur ein <property> mit dem Namen "font"? Sonst nichts weiter?

Re: Grundsätzliche Frage zu Qt

Verfasst: Freitag 20. Februar 2026, 14:43
von snafu
@StMan:
Gut möglich, dass du dir beim Herumprobieren im Designer etwas unbewusst verstellt hast. Also nicht zwingend direkt am Widget, sondern vielleicht an einem Layout (die können ja auch verschachtelt sein). Auch denkbar wäre eine Änderung am Stylesheet, die dir nicht bewusst ist.

Die genaue Darstellungsform des Fehlers kennen wir ja immer noch nicht, da du kein Snippet davon gezeigt hast. Ich würde an deiner Stelle einfach nochmal sauber neu anfangen mit einer neuen ui-Datei. Die alte Datei kannst du ja als Vorlage und Sicherheitskopie bestehen lassen.

Re: Grundsätzliche Frage zu Qt

Verfasst: Samstag 21. Februar 2026, 11:07
von StMan
@snafu
wie kann ich hier ein Snippet vom aussehen zeigen. Ich kann gerne ein Bildschirmfoto machen, aber wie hier zeigen?

Re: Grundsätzliche Frage zu Qt

Verfasst: Samstag 21. Februar 2026, 14:25
von __blackjack__
@StMan: Man kann im Forum keine Dateien hochladen, aber man kann externe Bilddateien mit dem img-Tag in den Beitrag einbinden. Wichtig: Das braucht die direkte URL zur Bilddatei, nicht zu einer HTML-Datei die das Bild dann ihrerseits einbindet.

Als (kostenlosen) Image-Hoster kann man beispielsweise Imgur verwenden. Da kann man sich Verweise auf die Bilddatei in verschiedenen Formaten geben lassen, unter anderem auch als PhpBBCode den man dann nur noch in den Beitrag kopieren braucht.

Re: Grundsätzliche Frage zu Qt

Verfasst: Samstag 21. Februar 2026, 22:07
von StMan
ein versuch
Bild
https://imgur.com/a/HXGsjXg#oqfeOxC war die eingabe zwischen den img's