Verknüpfung von zwei Listeneinträgen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
mushroom
User
Beiträge: 58
Registriert: Sonntag 21. November 2010, 12:32

Hallo,

ich würde gerne in meinem Programm dem user die Möglichkeit geben zwei Einträge in einer listWidget zu "verknüpfen", also ähnlich wie man beispielsweise in Gimp Ebenen verknüpft (über das Kettensymbol)

Beispiel: es liegen zu verschiedenen Jobtypen Rechnungen vor, die entweder in einer Datei oder in mehreren Dateien gespeichert sind. Ziel ist es eine Ausgabe aus diesen Dateien zu extrahieren und dem user die Möglichkeit zu geben im unten angegeben Beispiel zum Jobtyp2 die Rechnung1 und Rechnung2 die extrahierten und aufgearbeiteten Daten in einer Datei zusammenzufassen.

Jobtyp1 Rechnung1 Rechnung2
Jobtyp2 Rechnung1
Jobtyp2 Rechnung2
Jobtyp3 Rechnung1

Hatte zunächst an Checkboxen neben den Einträgen im listWidget geacht, jedoch soll nur die Möglichkeit bestehen zwei Einträge zu verknüpfen - deswegen die Überlegung an eine geteilte Kette.
Arbeite für das GUI-Design mit dem QT-Designer. Gibt es da eine Möglichkeit meine Wünsche so umzusetzen?
lunar

@mushroom: Mir ist ehrlich gesagt nicht ganz klar, was Du erreichen möchtest. Kannst Du vielleicht mal anhand eines Screenshots zeigen, was der Benutzer sieht, was er dann im Steuerelement tun können soll, und was dabei rauskommen soll?
mushroom
User
Beiträge: 58
Registriert: Sonntag 21. November 2010, 12:32

Also, konkret geht es um Berechnungen aus der Quantenchemie. Dazu werden beispielsweise für ein Molekül Geometrieoptimierungen und Frequenzberechnungen durchgeführt. Beide Rechungen können in einem Job vorgenommen werden oder auch getrennt. Dies äußert sich dann entsprechend:

Molekül1 Optimierung Frequenz
Molekül2 Optimierung
Molekül2 Frequenz

alle drei Zeilen liefern jeweils einen Output zurück, den ich analysiere. Unter anderem soll in ein PDF (über LaTeX) die Gemetrie und die Frequenzen explizit dargestellt werden.
Das Programm, welches ich bisher geschrieben habe, bietet dem Nutzer die Möglichkeit mehrere Moleküloutputs einzulesen und zu vergleichen. Deswegen soll dem Nutzer auch die Möglichkeit gegeben werden aus den outputs eine Datei zu erzeugen für alle Molekülrechnungen oder für jedes Molekül eine eigene PDF-Datei.
nun ist aber das Problem, daß die Rechnungen für Optimierung und Frequenz in verschiedenen outputs vorligen können. Daher soll es dem Nutzer möglich sein durch Markieren (im obigen Beispiel Molekül2 Opt und Molekül2 Freq) zwei Rechnungen zu einem Molekül in einer PDF zusammenzufügen.
Eine Automatisierung käme nicht in Frage weil auch die Möglichkeit besteht für Molekül3 nur eine Optimierung durchgeführt zu haben ohne Frequenzberechnung.
Nun wäre es möglich die zusammenzufügenden Dateien jeweils in eine Liste zu schieben, das wollte ich aber vermeiden, da dies unter Umständen zu eine Klickorgie werden kann, welche ich dem Nutzer ersparen wollte. Um dann zum Punkt zu kommen, möchte ich dies mit einem Symbol möglich machen, welche zwei Einträge (Rechungen) zusammengefügt werden sollen. Dabei müssen die Einträge zwingend unmittelbar untereinander in der Liste stehen. Visualisieren wollte ich dies über eine Kette die zunächst für alle Einträge nach oben und unten offen ist und durch Markierung eines zweiten Eintrages dann geschlossen wird. Denkbar wäre auch einfach statt einer Kette auch eine Anordnung von Strichen.

Hmm, jetzt wo ich drüber nachdenke, müsste es auch mit Checkboxen gehen (Hatte diese Idee zuerst verworfen) und dürfte einfacher umzusetzen sein. Muß ich nur mal schauen, wie ich die Checkboxen in eine Liste bekomme.

Hoffe die Beschreibung hat etwas weiter geholfen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Da Du ja offensichtlich nach einem speziellen UI-Element suchst, hätte ich ein grafisches Mockup (zusätzlich zum Text) nützlich gefunden. Da ich die Ebenenverwaltung von Gimp kenne, ahne ich, was Du vorhast. Dennoch solltest Du mal einen Screenshot der bestehenden Lösung der des Prototypen hier posten, welches das Problem aufzeigt und dann zusätzlich ein Mockup, wie Du Dir ein UI-Element vorstellst, welches das Problem löst.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten