Window mit mehreren gleichartigen Frames

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
niederrheiner
User
Beiträge: 26
Registriert: Montag 7. Januar 2013, 11:52

Mittwoch 26. Dezember 2018, 12:14

Ein frohes Weihnachtsfest an Alle,
ich möchte eine Anwendung mit Python und PyQt5 schreiben. Das Problem bei mir liegt in dem Fenster, das ich erstellen möchte. Es sollen mehrere Frames parallel nebeneinander stehen. Diese Frames haben alle den gleichen konstanten Inhalt, unterscheiden sich aber in den variablen Inhalte. Genaugenommen handelt es sich um eine Wettervorhersage.

Mein Problem:
Wie erstelle ich nun das Design?

QtDesigner: wie spreche ich die einzelnen Felder (label_1, label_2, ...) in Python an?
Python: in einer Schleife, wie positioniere ich die einzelnen Elemente richtig?

Könnt Ihr mir ein wenig auf die Sprünge helfen?

Danke für Eure Hilfe und Tipps.

Bis dann ...

MfG
Günter
__deets__
User
Beiträge: 6178
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mittwoch 26. Dezember 2018, 13:18

Mir ist durch diese Beschreibung nicht wirklich klar geworden, was du willst.

Generell kannst du das mit dem Designer machen & durch die Vergabe von sinnvollen Namen zb „montag_temperatur“ ansprechen via findChild auf dem obersten Widget.
Benutzeravatar
__blackjack__
User
Beiträge: 4004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Mittwoch 26. Dezember 2018, 13:44

@niederrheiner: Das ist so ein Fall wo ich wahrscheinlich Designer und dynamisch durch Code erstellte Widgets mischen würde. Also beispielsweise die GUI in der die Frames für die Tage platziert werden sollen mit einem Frame als Platzhalter für die Stelle wo die Tage hin sollen im Designer erstellen und das Widget für einen Tag auch im Designer erstellen, um im Code das letztere dann sieben mal erstellen und in den Platzhalter einbauen. Für das Tageswidget dann `uic.loadUiType()` verwenden, denn das soll beim Laden ja nicht schon ein Exemplar von dem Widget werden, sondern eine Klasse die man beliebig oft aufrufen kann um weitere Widgets von diesem Typ zu erstellen.
“Programmieren ist ein Hobby, bei dem es einen riesigen Baumarkt mit quasi jedem Bauteil und Werkzeug und fast immer kostenlos gibt. Ob man deswegen in der Lage ist einen Kölner Dom zu bauen ist eine andere Frage. Arbeit steckt auf jeden Fall drin ;).” — Greebo, forum.ubuntuusers.de
niederrheiner
User
Beiträge: 26
Registriert: Montag 7. Januar 2013, 11:52

Sonntag 30. Dezember 2018, 14:12

@__blackjack__: Danke für Deine Antwort. Wenn ich Dich richtig verstanden habe, erstelle ich im QT-Designer eine Form (Window) in der nur die n-Frames als Platzhalter stehen(qframe.tag_1, qframe.tag_2, ...) und diese Form wird dann per Import in das Pythonprogramm geladen. Desweiteren erstelle ich eine Form mit allen erforderlichen Elementen eines Tages(Temperatur, Luftfeuchtigkeit, ...) und lade dies nur als Type ins Pythonprogram).

Kann ich dann die einzelnen Frames(Tage) so füllen(Pseudocode)?:

Code: Alles auswählen

for (i=1;i<=n;i++)
  qframe.tag_(i).temp = 16°
  ...
  ...
Ist das in etwa das was Du geschrieben hast?

Ein frohes Neues Jahr wünscht
Günter
Benutzeravatar
__blackjack__
User
Beiträge: 4004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Sonntag 30. Dezember 2018, 14:36

@niederrheiner: Keine Platzhalter für die einzelnen Tage sondern nur ein Platzhalter für alle Tage. Die Frames für die Tage steckst Du im Programm dann einfach in eine Liste wenn Du sie erstellst.
“Programmieren ist ein Hobby, bei dem es einen riesigen Baumarkt mit quasi jedem Bauteil und Werkzeug und fast immer kostenlos gibt. Ob man deswegen in der Lage ist einen Kölner Dom zu bauen ist eine andere Frage. Arbeit steckt auf jeden Fall drin ;).” — Greebo, forum.ubuntuusers.de
Antworten