QEvent-Eigene Events

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Treter_Peter
User
Beiträge: 11
Registriert: Montag 16. November 2020, 07:00

Donnerstag 19. November 2020, 14:51

__deets__ hat geschrieben:
Donnerstag 19. November 2020, 14:10
Die Frage ist, wie deine Kollegen die Oberflächen definieren. Und auch dazu musst du eine Lösung finden.
Die sollen den QtDesigner selbst nutzen. Nur eben mit erweiterten StandartObjekten.
Z.B. der QPushButton wird durch eine eigene Version erweitert, in dem z.B. das ändern der Form/Farbe wenn Betriebsart nicht freigegen schon enthalten sind. Die Variablenanbindung will ich dann über Symbolfiles o.ä. umsetzen, die wiederum in einen eigenen, kleinen Dialog-Program erstellt werden.
Ob das so funktioniert, muss ich aber zugegebenermaßen erst noch testen.
__deets__
User
Beiträge: 8816
Registriert: Mittwoch 14. Oktober 2015, 14:29

Donnerstag 19. November 2020, 15:03

Ich halte das für zu ambitioniert und frickelig. Der Qt-Designer erlaubt viel zu viel, und ist gleichzeitig nicht einfach genug, um zB deinen custom Widgets ohne leicht Fehler machen zu können einzubinden. Da muss dann ein passender Klassennname an das Widget geschrieben werden, und an der Darstellung ändert sich nichts. Das ist IMHO Murks.

Vor allem ist code zu schreiben ohne mal konkret getestet zu haben, wie denn das zu handhaben ist, mit einfach einem gemockten setup (unsere User Researcher nutzen dazu Papier-Prototypen oder Framer oder LEGO und Knetgummi), eine ziemliche Garantie, viel für die Tonne zu schreiben. Denn dann ist irgendwas halbgares fertig, und keiner mag es benutzen.
Treter_Peter
User
Beiträge: 11
Registriert: Montag 16. November 2020, 07:00

Donnerstag 19. November 2020, 15:12

__deets__ hat geschrieben:
Donnerstag 19. November 2020, 14:10
Die Frage ist, wie deine Kollegen die Oberflächen definieren. Und auch dazu musst du eine Lösung finden.
Die sollen den QtDesigner selbst nutzen. Nur eben mit erweiterten StandartObjekten.
Z.B. der QPushButton wird durch eine eigene Version erweitert, in dem z.B. das ändern der Form/Farbe wenn Betriebsart nicht freigegen schon enthalten sind. Die Variablenanbindung will ich dann über Symbolfiles o.ä. umsetzen, die wiederum in einen eigenen, kleinen Dialog-Program erstellt werden.
Ob das so funktioniert, muss ich aber zugegebenermaßen erst noch testen.
__deets__
User
Beiträge: 8816
Registriert: Mittwoch 14. Oktober 2015, 14:29

Donnerstag 19. November 2020, 15:18

Warum auch immer das zweimal aufgetaucht ist - ich schrieb ja schon, wie ich darüber denke.
Treter_Peter
User
Beiträge: 11
Registriert: Montag 16. November 2020, 07:00

Donnerstag 19. November 2020, 15:32

Ok, dann werde mal Konkret. Welchen Designer/Tool für die Kollegen sollte ich denn nehmen? Wie soll die Anbindung an Hardwarekomponenten erfolgen?
Ist mit dem Tool/Designer die Anforderung erfüllt, das die Kollegen nur die gewünschten Elemente auf die Öberfläche ziehen brauchen und die Verbindungsvariable auswählen bzw. anlegen müssen, ohne noch irgendwelchen Code tippen zu müssen?
2te Anforderung können z.B. Button's effekte im Designer zugeordnet werden wie z.B. "Image-Button", Schlagschatten, eigene Konturen etc., oder müssen die auch erst wieder mit evt. einer anderen Sprache Programmiert werden.
Wie sieht es mit Lizenz-Kosten für das/die Tool's aus? Brauchen die so erstellten GUI's eigene Runtimes?
__deets__
User
Beiträge: 8816
Registriert: Mittwoch 14. Oktober 2015, 14:29

Donnerstag 19. November 2020, 17:03

Ich finde es ja ein bisschen amuesant, dass ich hier derjenige sein soll, der konkret wird und dir irgendwelche Summen und Details liefern soll. Obwohl du ausser mit "ich will irgendwas mit Qt und dem Designer machen" nicht wirklich aus dem Knick gekommen bist.

*Du* bist derjenige, der hier die ganze Zeit den Qt Designer ins Spiel bringt. Hast du damit schon mal gearbeitet, jenseits von ein bisschen rumspielen? Der kennt - zumindest mit Python nicht - keine solch detaillierten Custom Widgets mit eigener Oberflaeche zur Gestaltung. Da kannst du in einem eigenthlich fuer C++ gedachten Dialog eine Custom-Class als Text angeben, und wehe du hast dich dabei verschrieben. Dann klappt nichts mehr. Zur Parametrisierung zB von Animationen oder anderen Meta-Eigenschaften kann der genau nix. Und wenn du damit ein Layout erstellen willst, respektive deine lieben Kollegen, dann musst da auch ein Verstaendnis des Qt-Layout-Systems zugrunde liegen. Vertiakal, Horziontal, oder doch lieber ein Grid? Mit oder ohne Spacer, Size-Policies, individuelle Streckungs-Faktoren, Alignments, min/max/preferred Sizes etc pp.

Und das ist alles nur auf der Ebene von Layouts gewesen, und noch kein Stueck in irgendeine Richtung von eurer spezifischen Semantik, welche Datenquellen, Ereignisse, Aktionen und Bedingungen die dann da eingebunden werden sollen.

Darum war mein Vorschlag auch nicht, ein solches Monstertool zu schaffen (was unzweifelhaft toll waere, *wenn* es denn existiert), sondern zB sowas:

https://kivy.org/doc/stable/guide/lang. ... ic-classes

Eine Beschreibungssprache, in der man ggf. auch noch Code-Snippets oder Ausdrueck angeben kann, welche die Oberflaeche definieren. Und daraus wird die dann eben generiert, ob mit Qt oder HTML ist erstmal zweitrangig.

Und natuerlich werden die Hardwarekomponenten genauso angebunden wie jetzt auch schon: mit Code. Oder hast du im Qt-Designer ein Tab gefunden, dass heisst "My first SPS Steuerung"? Das waere mir zumindest recht neu.

Es hat einen Grund, warum es Hersteller fuer solche Systeme gibt, die einen gewissen Preis dafuer aufrufen. Zu glauben, du schaffst etwas aehnlich gutes und flexibles System selbst, und das ist dann auch noch preiswerter - da bin ich eben mehr als skeptisch.

Aber du musst das natuerlich nicht glauben.
Treter_Peter
User
Beiträge: 11
Registriert: Montag 16. November 2020, 07:00

Donnerstag 19. November 2020, 20:01

__deets__ hat geschrieben:
Donnerstag 19. November 2020, 17:03
Ich finde es ja ein bisschen amuesant, dass ich hier derjenige sein soll, der konkret wird und dir irgendwelche Summen und Details liefern soll. Obwohl du ausser mit "ich will irgendwas mit Qt und dem Designer machen" nicht wirklich aus dem Knick gekommen bist.

Es hat einen Grund, warum es Hersteller fuer solche Systeme gibt, die einen gewissen Preis dafuer aufrufen. Zu glauben, du schaffst etwas aehnlich gutes und flexibles System selbst, und das ist dann auch noch preiswerter - da bin ich eben mehr als skeptisch.

Aber du musst das natuerlich nicht glauben.
Also, ich bin eigentlich am Anfang des Beitrags schon sehr konkret geworden, was ich erreichen will.
Warum ich bei den PyQt-Designer gelandet bin, ganz einfach weil ich in vielen Beiträgen des WWW darauf gestoßen bin, mit der Meinung das, der zum schnellen GUI erstellen geeignet sein soll.

Deiner Ausdrucksweise entnehme ich, das du wahrscheinlich schon lange in der Anwendungsentwicklung oder ähnliches Tätig bist. Deswegen geh ich mal davon aus, das du auch sehr kompetent bist.
Ich hingegen komme aus der SPS Welt wir (die meisten meiner Kollegen (auch aus anderen Firmen)) sind da sehr viel einfacher gestrickt. :lol:
Für die meisten ist OO arbeiten ein rotes Tuch, wenn ich denen damit komme. Bei unsere Branche (Sondermaschinenbau) wird leider noch sehr viel Spagetti-Code produziert.

Für dich sind meine Ansätze lächerlich, aber ich weiß es halt nicht besser. Du hast mich bis zu deinem letzten Post nur kritisiert, ohne einen konkreten Gegenvorschlag gemacht zu haben.

Ich bilde mir mit Sicherheit auch nicht ein, etwas besser als andere Hersteller machen zu können.
Es ist wie mit Word oder Excel: Im ernst 90% der Anwender nutzen wenn es hochkommt 10% von dem, was die Anwendungen können.
Genauso verhält sich mit "professionellen" Visualisierungs-Anwendungen für SPS - Syteme. Das meiste was die können brauchen wir gar nicht. Dafür sind sie in der Regel aber meist auf irgendeine Plattform gebunden.

Bei einen ersten Blick auf kivvy hab ich jetzt keinen wirklichen Unterschied bzw. Vorteil gesehen. Aber ich werde deinem Vorschlag folgen und mich damit befassen.

Zum Abschluss noch was witziges:
Ein Kunde (Namenhafter Automobilzulieferer) hat weltweit ein paar Hundert, spezielle Dauerlaufprüfstände am laufen. Die Software für das Prüfverfahren hat ein Mann über die letzten 30 Jahre entwickelt.
Nun will der aber in Rente gehen. Sein Gegenpart beim Kunden, genau das gleiche. Nun versucht der Kunde seit geraumer Zeit, bei alle Möglichen Software-Firmen eine Lösung zu finden. Sprich das System neu entwickeln zu lassen. Problem ist, es ist ein über Jahre gewachsenes System. Nur 2 Leute überblicken das überhaupt. Die stehen kurz vor der Rente. Alle Firmen verlangen nach präzisen Lastenheft, genau das kann der Kunde aber nicht bieten, weil er selber nicht genau weiss, was er hat bzw. braucht und brauchen wird.
Das ist unsere Realität. Spärliche Vorgaben, ständige Anpassungen ala versuch und Irrtum. Deshalb kann ich es auch nicht so genau "definieren" :wink:
Benutzeravatar
__blackjack__
User
Beiträge: 7356
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Donnerstag 19. November 2020, 20:24

Der Qt-Designer ist zum schnellen erstellen von GUIs geeignet, allerdings für die Elemente die Qt halt so bietet, und nur für die GUI — nicht für Verbindung mit Funktionalität, und *nicht* für die Zielgruppe die Du beschreibst.

Die Zielgruppe, so wie Du sie beschreibst, braucht gleichzeitig weniger *und* mehr als der Designer bietet. Weniger weil der ziemlich umfangreich ist und nichts von der Komplexität von Qt versteckt. Mehr weil Du ja auch willst, dass die GUI dann mit irgendeiner Funktionalität verknüpft werden soll, die von den Geräten/Systemen geliefert wird für die Oberflächen erstellt werden sollen.
tryx: XML is like violence, if it is not solving your problem, you are obviously not using enough.
Z80: So, this is why I read it as Jason X, expecting a guy with a chainsaw!
— Discussion at Reddit about IBM's JSONx (JSON as XML) proposal.
__deets__
User
Beiträge: 8816
Registriert: Mittwoch 14. Oktober 2015, 14:29

Freitag 20. November 2020, 17:53

Durch ein anderes Forum habe ich zufällig das hier gefunden: https://www.openplcproject.com/runtime/linux/

Das zeigt, wieviel Aufwand es ist, etwas zu erstellen, dass den Bequemlichkeitsgrad hat, den du dir wünschst. Darum gehen meine Vorschläge in eine Richtung, die Vorstellungsvermögen & einen Texteditor voraussetzt.
Antworten