Weiß jemand, wie man am besten so eine Paint-mäßige Zeichenfläche in Qt implementiert? Graphics View Framework oder doch besser ein eigenes Widget mit QPainter und QImage als Buffer?
Kolourpaint hatte ich zuvor schon kurz überflogen und es sah so aus als wäre es die QImage -> QPainter Sache. Aber sicher war ich mir nicht, weils über verschiedene Dateien verteilt war und zu KIrgendwas umdefiniert worden war.
QtQuick ist eine Methode um eher mobile, touchgesteuerte Geräte zu bedienen.
Möchte man eine Desktop-Applikation schreiben, sind die Widget-Klassen (m.M.n.) immer noch eine besser Alternative.
Allerdings werden in jeder neuen Qt-Version auch neue Elemente in QML nachgebildet. Ab Qt5.5 kann man schon ganz ordentliche Desktop-Apps schreiben, mit all den bekannten Steuerelementen.
Quick selbst enthält nur die Grafikprimitiven. Für eine Desktopapplikation willst du noch Quick.Controls, dort sind alle Standardsteuerelemente. QtQuick ist im Gegensatz zu den Widgets modular aufgebaut.
Die QML Implementierung der Quick Controls haben gezeigt, was man mit QML machen kann - aber auch wofür QML nicht gut geeignet ist. Daher gibt es ja jetzt die Quick Controls 2, bei denen man versucht die horrenden Kosten von QML ( ein einfacher Button besteht aus > 30 QObjects ! ) durch etwas mehr C++ und weniger Funktionalität zu verbessern.
D.h. man kann da wohl die Schlussfolgerung ziehen, dass man für klassiche Desktop Anwenderungen wohl besser bei QWidget bleibt.
Von HierKönnteIhreWerbungStehen am So, 6. November 2016 um 14:08 #
D.h. man kann da wohl die Schlussfolgerung ziehen, dass man für klassiche Desktop Anwenderungen wohl besser bei QWidget bleibt.
Leider beschleicht mich ein wenig das Gefühl, dass sich die Entwickler die klassischen Widgets ein bisschen Vernachlässigen... Beispielsweise gibt es scheinbar dieses MapView Widget nicht für die klassischen Widgets. Auch mangelt es an vernünftigen horizontalen Containern, also so etwas wie Akkordeon oder so.
Schön, dann haben wir dann zukünftig Programme, die quasi keinen Speicherplatz und RAM mehr benötigen.
Die können dann zwar auch nichts aber das zumindest sehr effizient.
Weiß jemand, wie man am besten so eine Paint-mäßige Zeichenfläche in Qt implementiert?
Graphics View Framework oder doch besser ein eigenes Widget mit QPainter und QImage als Buffer?
schau dir z.B. Kolorpaint an.
Ansonsten rate ich von GraphicsView ab und würde eigentlich sagen: OpenGL.
Kolourpaint hatte ich zuvor schon kurz überflogen und es sah so aus als wäre es die QImage -> QPainter Sache.
Aber sicher war ich mir nicht, weils über verschiedene Dateien verteilt war und zu KIrgendwas umdefiniert worden war.
Ach ja: Und danke schonmal für den Hinweis wegen GraphicsView.
Ich hab mal gehört, dass Qt Quick zu wenig primitive Widgettypen hat...
Was ist damit gemeint und wenn es stimmt, wird sich das ändern?
Wieviel ist "zu wenig"?
QtQuick ist eine Methode um eher mobile, touchgesteuerte Geräte zu bedienen.
Möchte man eine Desktop-Applikation schreiben, sind die Widget-Klassen (m.M.n.) immer noch eine besser Alternative.
Allerdings werden in jeder neuen Qt-Version auch neue Elemente in QML nachgebildet.
Ab Qt5.5 kann man schon ganz ordentliche Desktop-Apps schreiben, mit all den bekannten Steuerelementen.
Quick selbst enthält nur die Grafikprimitiven. Für eine Desktopapplikation willst du noch Quick.Controls, dort sind alle Standardsteuerelemente. QtQuick ist im Gegensatz zu den Widgets modular aufgebaut.
Die QML Implementierung der Quick Controls haben gezeigt, was man mit QML machen kann - aber auch wofür QML nicht gut geeignet ist. Daher gibt es ja jetzt die Quick Controls 2, bei denen man versucht die horrenden Kosten von QML ( ein einfacher Button besteht aus > 30 QObjects ! ) durch etwas mehr C++ und weniger Funktionalität zu verbessern.
D.h. man kann da wohl die Schlussfolgerung ziehen, dass man für klassiche Desktop Anwenderungen wohl besser bei QWidget bleibt.
Leider beschleicht mich ein wenig das Gefühl, dass sich die Entwickler die klassischen Widgets ein bisschen Vernachlässigen...
Beispielsweise gibt es scheinbar dieses MapView Widget nicht für die klassischen Widgets. Auch mangelt es an vernünftigen horizontalen Containern, also so etwas wie Akkordeon oder so.