Hallo zusammen, gibt es einen Ansatz, um eine Qt App für Smartendgeräte so umzusetzten, dass sie sich an die vielen verscheidenen Displays anpasst? Damit meine ich wie im Titel beschrieben dpi und die Seitenverhältnisse. Ich weiß man kann die Pixel aus dem Displaytreiber auslesen. Die könnte man beim Start in die App füttern. Nur dann muss ja jedes einzelne Widget danach gestalltet werden. Gibt es da einen anderen Ansatz? Das Qt-Forum habe ich schon bemüht, aber da erbahmt sich keiner. Oder gibt es nur den von mir vorgeschlagenen Ansatz? viele Grüße!!
Unterstützen nicht mittlerweile alle GUI-Frameworks, inklusive Qt, dynamische Layouts? d.h. eine Möglichkeit die Widgets so anzulegen, dass das Framework sie automatisch so positioniert/vergrößert dass sie exakt auf die Fenster/Display-Größe passen. Weiß jetzt nicht wie das in Qt heißt, aber in Gtk zB. nennt sich das VBox/HBox, in Java zB BorderLayout etc.
Chefkoch schrieb: > Ich weiß man kann die Pixel aus dem Displaytreiber auslesen. Das macht QDesktopWidget schon für dich (geometry). Chefkoch schrieb: > gibt es einen Ansatz, um eine Qt App für Smartendgeräte so umzusetzten, > dass sie sich an die vielen verscheidenen Displays anpasst? Ich verstehe nicht ganz was du meinst, das Layout kannst (eher musst) du festlegen. Bei einer App bist doch sowieso im Fullscreen und durch das Layout passt sich alles an. Musst die Widgets anders anordnen ist das natürlich deine Aufgabe, woher soll Qt wissen, was du wie geändert haben willst? Theoretisch kannst du ja auch HTML in Qt darstellen, aber dann muss das HMTL anpassen oder halt vermutlich ungewünschte Scrollbalken nutzen. Dr. Sommer schrieb: > Weiß jetzt nicht wie das in Qt > heißt, aber in Gtk zB. nennt sich das VBox/HBox Das sind die genannten Layouts, das ist auch schon immer eine der Stärken von Qt.
Zugegeben. Konkretes Beispiel: Je nach DPI kann ein Button mit 100x100px ein Plakat sein oder auch so klein, dass man es nur mit nem Kugelschreiber trifft. Letztlich trifft das auf Desktopbildschirme genauso zu das Problem.
Chefkoch schrieb: > Letztlich trifft das auf Desktopbildschirme genauso zu das Problem. Ich würde sagen dass das Problem erst in der Zukunft auftreten wird. So fern ist sie allerdings nicht mehr. Da hätte man aber bei jeder Applikation ein Problem, also entweder den Desktop anpassen: https://wiki.archlinux.org/index.php/HiDPI http://www.techrepublic.com/blog/windows-and-office/get-a-better-view-in-windows-7-by-adjusting-dpi-scaling/ oder bei Qt resize und dessen Werte errechnen (QDesktopWidget bietet da heightMM und widthMM, für DPI gibt es auch was, ich weiß gerade nicht was). Wobei da auch die EDID-Daten des Monitors stimmen müssen.
mit einem einzigen Layout kann man einfach nicht alles abdecken vom 320x200 android urgestein bis zu 4k Desktop wie soll das gehen? Lösung wäre eher sowas wie als Beispiel das neue delphi XE8 https://www.embarcadero.com/de/products/rad-studio/fireui man hat ein "Master" layout, möglichst "dynamisch", dass mit 90% der Fälle funktioniert und für den "Rest" macht man davon "abgeleitete" Versionen.. (alles RAD ;-)...)
Dr. Sommer schrieb: > Unterstützen nicht mittlerweile alle GUI-Frameworks, inklusive Qt, > dynamische Layouts? d.h. eine Möglichkeit die Widgets so anzulegen, dass > das Framework sie automatisch so positioniert/vergrößert dass sie exakt > auf die Fenster/Display-Größe passen. Widgets schon, aber nicht Font- und Icon-Größen. Chefkoch schrieb: > Zugegeben. Konkretes Beispiel: > > Je nach DPI kann ein Button mit 100x100px ein Plakat sein oder auch so > klein, dass man es nur mit nem Kugelschreiber trifft. Ja, aber auch wenn du die Button-Größe in Point angibst, bringt dich das nur bedingt weiter. Ein Button, der 20x10mm groß ist, ist für ein Mobiltelefon vielleicht noch angemessen, beim 65"-Fernseher aber eher nicht. kringel schrieb: > Chefkoch schrieb: >> Letztlich trifft das auf Desktopbildschirme genauso zu das Problem. > Ich würde sagen dass das Problem erst in der Zukunft auftreten wird. Bei Desktop-Bildschirmen nicht, da die sich in den letzten Jahran auflösungstechnich praktisch nicht weiterentwickelt haben. Bei Laptops siehts dagegen anders aus. Da gibt's heutzutage 13"-Geräte mit 4k-Auflösung, aber auch noch welche mit 15" und nur 1366x768 Pixeln. Das eine sind 340 dpi, das andere 100 dpi. > oder bei Qt resize und dessen Werte errechnen (QDesktopWidget bietet da > heightMM und widthMM, für DPI gibt es auch was, ich weiß gerade nicht > was). > Wobei da auch die EDID-Daten des Monitors stimmen müssen. Spannend wird das auch, wenn man z.B. zur Laufzeit den Laptop andockt, und damit der externe Monitor aktiviert wird. Eigentlich müßte dann alles dynamisch angepasst werden. Und was macht man bei Multi-Display-Systemen, wenn man ein Fenster von einem auf das andere Display verschiebt?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.