Ich schreibe eine wxWidgets (3.1.0) -App, die unter Windows und Mac funktionieren soll. Bei Windows, wenn ich die Skalierung des Textes auf mehr als 100% setze, werden die Größen meiner Steuerelemente durcheinander gebracht. Ich habe ein DPI-Manifest, das besagt, dass meine App dpi-bewusst ist. Ich habe auch die Schriftpixelgröße auf meinen Dialogen eingestellt, und das funktioniert in gewissem Maße. Wenn ich die Größe einiger Elemente aus dem Code festlege, wird die Größe auf die Pixelgröße angepasst, die ich brauche, aber jede Größe, die in der XRC-Datei festgelegt ist, wird vergrößert. Auch wenn ich versuche, die Größe von wxSpinCtrl zu reduzieren, kann es normalerweise auf einen Punkt reduziert werden, aber dann wird nur das Textfeld kleiner und die Schaltflächen bleiben unverhältnismäßig groß. Gibt es also eine Möglichkeit, meiner App zu sagen, dass sie keine Größen skalieren soll und dass alles genau die gleiche Pixelgröße haben soll wie bei einer normalen dpi (trotz der Tatsache, dass meine App bei höheren Auflösungen klein aussieht)?Verhindern, dass die wxWidgets-App Größen mit höherer Auflösung skaliert
Antwort
Es gibt keine Möglichkeit zu verhindern, dass die richtige Skalierung mithilfe der wxWidgets-API angewendet wird, und ich denke nicht, dass sich dies ändern wird, weil es einfach keinen Sinn ergibt.
Allerdings sollte das erneute Erstellen von wxWidgets mit wxHAVE_DPI_INDEPENDENT_PIXELS
die Bibliothek dazu verleiten, zu denken, dass das zugrunde liegende grafische Toolkit die Pixelwerte bereits skaliert und sie so daran hindert, es selbst zu tun. Ich habe das nie getestet, aber, AFAICS, sollte dies ergeben, was Sie wollen.
Trotzdem möchte ich wiederholen, dass das, was Sie wollen, völlig falsch ist, und die wirkliche Lösung für dieses Problem ist, es jedem zu erklären, der sich dafür entschieden hat.
Danke, das hat die meisten meiner Probleme gelöst – Milan
- 1. Verhindern, dass JList automatisch skaliert wird
- 2. iPhone - Bild mit höherer Auflösung speichern, ohne es zu pixeln
- 3. Verhindern, dass ein SWT-Fenster horizontal skaliert wird
- 4. Bild wird nicht kleiner skaliert, wenn die Auflösung abnimmt
- 5. Verhindern, dass libpcap die mit pcap_inject()
- 6. Verhindern, dass die Registerkarte die Adressleiste durchläuft
- 7. Verhindern, dass eine Zelle die Tabellenhöhe vergrößert
- 8. verhindern, dass die Unterfenster mehrmals geöffnet werden
- 9. Verhindern, dass Inhalt die Schaltfläche überlappt
- 10. Schienen verhindern, dass die Säule bricht
- 11. Verhindern, dass Java die SimpleDateFormat-Ausgabe lokalisiert
- 12. Verhindern, dass UISearchController die Navigationsleiste versteckt
- 13. verhindern, dass die Seite angezeigt wird
- 14. Verhindern, dass die Soft-Tastatur verworfen wird
- 15. Verhindern, dass GCC LTO die Funktion
- 16. verhindern, dass die Lösung vereinfacht wird
- 17. Verhindern, dass MKMapView die Auswahl ändert (sauber)
- 18. Verhindern, dass Mouseout die Klickfunktion deaktiviert
- 19. rgl plot3d und snapshot3d: Wie speichere ich mit höherer Auflösung als mein Monitor?
- 20. libgdx - Umgang mit verschiedenen Bildschirmauflösungen und -größen?
- 21. Die folgenden verhindern, dass ich sos, help
- 22. Verhindern, dass cl.exe die kompilierte Quelldatei druckt
- 23. Verhindern, dass Sympy die Gleichung neu anordnet
- 24. Verhindern, dass die HTML-Seite zwischengespeichert wird
- 25. Verhindern, dass die leere Eingabe nicht funktioniert
- 26. Webprogrammierung mit Funktionen höherer Ordnung
- 27. Verhindern, dass in MATLAB
- 28. Verhindern, dass Web Packs aggregiert werden
- 29. Verhindern, dass Federstapel abstürzt
- 30. Responsive Bilder mit srcset und Größen
Haben Sie versucht, die dpi-Erkennung aus der Manifestdatei zu entfernen? – Igor
@Igor Wenn ich das Manifest dann entferne, verwendet Windows seinen Standardzoom, der alles verschwommen sieht – Milan
Das ist eine sehr merkwürdige Frage, warum genau Sie möchten, dass Ihr Programm * schlecht * auf hohen DPI-Bildschirmen aussieht? Die wirkliche Lösung ist, das Problem zu lösen, was auch immer es ist. Leider ist "alles durcheinander" nicht präzise genug, um zu verstehen, was genau es ist. –