Je veux que mon widget ressemble exactement à ce qu'il est maintenant, sauf pour être plus petit. Il comprend des boutons, des étiquettes, du texte, des images, etc. Existe-t-il un moyen de dire «mettre à l'échelle la moitié de la taille», et GTK doit-il faire tout le traitement d'image, le redimensionnement du widget, etc. Si non, quelle est la manière la plus facile d'accomplir ceci?Dans GTK, existe-t-il un moyen facile de mettre à l'échelle tous les widgets d'une quantité arbitraire?
Répondre
L'indépendance de la résolution a été travaillée par certains dev gtk, et voici une mise à jour avec un très gros patch pour l'introduire dans GTK. Le patch est cependant un an maintenant et il ne sait pas encore comment/quand/si elle va être inclus: (captures d'écran à la fin)
http://mail.gnome.org/archives/gtk-devel-list/2008-August/msg00044.html
Il n'existe pas de méthode intégrée pour ce faire. Pour ce faire, vous devrez prendre en compte ce qui «occupe de l'espace» dans votre interface utilisateur et comment le réduire.
Si votre interface utilisateur est principalement constituée de texte et d'images, vous pouvez utiliser une taille de police plus petite, puis réduire toutes les images d'un pourcentage approprié. Le dimensionnement du widget rétrécit automatiquement une fois que le texte et les images qu'ils affichent se rétrécissent (sauf si vous avez fait de mauvaises choses comme des hauteurs/largeurs de code, utilisez GtkFixed, etc.).
La partie délicate sera de déterminer la relation entre la taille du point de police et l'échelle de l'image.
EDIT:
Here's a post about the pygtk syntax to change the font size.
Merci pour le conseil. Je n'ai pas fait de mauvaises choses avec reconnaissance =). Comment puis-je réduire la taille de la police? – Claudiu
Changement du thème de l'interface utilisateur n'est pas quelque chose que je recommande, mais vous pouvez le faire si vous le souhaitez, en utilisant un gtkrc personnalisé peut vous aider à changer la police et la façon dont les boutons sont dessinés, principalement à cause de le xthickness et l'ythickness.
import gtk
file = "/path/to/the/gtkrc"
gtk.rc_parse(file)
gtk.rc_add_default_file(file)
gtk.rc_reparse_all()
Et le gtkrc personnalisé peut ressembler à ceci:
gtk_color_scheme = "fg_color:#ECE9E9;bg_color:#ECE9E9;base_color:#FFFFFF;text_color:#000000;selected_bg_color:#008DD7;selected_fg_color:#FFFFFF;tooltip_bg_color:#000000;tooltip_fg_color:#F5F5B5"
style "theme-fixes" {
fg[NORMAL] = @fg_color
fg[PRELIGHT] = @fg_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @fg_color
fg[INSENSITIVE] = darker (@bg_color)
bg[NORMAL] = @bg_color
bg[PRELIGHT] = shade (1.02, @bg_color)
bg[SELECTED] = @selected_bg_color
bg[INSENSITIVE] = @bg_color
bg[ACTIVE] = shade (0.9, @bg_color)
base[NORMAL] = @base_color
base[PRELIGHT] = shade (0.95, @bg_color)
base[ACTIVE] = shade (0.9, @selected_bg_color)
base[SELECTED] = @selected_bg_color
base[INSENSITIVE] = @bg_color
text[NORMAL] = @text_color
text[PRELIGHT] = @text_color
text[ACTIVE] = @selected_fg_color
text[SELECTED] = @selected_fg_color
text[INSENSITIVE] = darker (@bg_color)
GtkTreeView::odd_row_color = shade (0.929458256, @base_color)
GtkTreeView::even_row_color = @base_color
GtkTreeView::horizontal-separator = 12
font_name = "Helvetica World 7"
}
class "*" style "theme-fixes"
J'ai essayé de le faire et j'ai changé la couleur du texte en "FF0000" pour voir si cela avait un effet, mais ce n'est pas le cas. dois-je définir le thème d'une manière ou d'une autre à partir de mon application? – Claudiu
note que faire set_default_files a causé l'apparence de changer – Claudiu
nm, je ne donnais pas de chemins absolus. il semble fonctionner (bien que ce schéma particulier semble moche maintenant ... et il semble que la couleur du texte n'est pas noir .. mais mal le comprendre) – Claudiu
Après avoir écrit une application GTK évolutive 100%, ce que je faisais moi-même était de limiter à gdk_draw_line et gdk_draw_rectangle, qui étaient faciles à alors échelle moi même. Le texte a été "fait" via gdk_draw_line. (pour certaines valeurs basses de "fait.") Voir: http://wordwarvi.sourceforge.net
Pas que cela vous aide, je devine.
nah J'ai une application graphique, pas un jeu. Quelque chose comme SDL ne serait pas mieux pour un jeu, d'ailleurs? (ou peut-être que j'ai mal compris ce que votre programme est exactement) – Claudiu
Pour ce jeu probablement pas mieux, juste différent. Je connaissais gtk, mais pas SDL, et tout ce dont j'avais besoin pour obtenir le jeu était la capacité de tracer des lignes. Je serais surpris si l'implémentation du dessin au trait de SDL était meilleure que celle de gtk - ils font probablement tous les deux juste des appels xlib - et je m'excuse. Je ne voulais pas que le x-windows spécifique au matériel contourne les trucs que SDL pourrait fournir (IDK si c'est le cas ou pas) Je voulais que ça fonctionne avec X comme un programme "normal", et je savais que gtk fais-moi ça.L'interface de Blender est évolutive et adopte une approche similaire - interface utilisateur personnalisée. – smcameron
- 1. Empilement de widgets GTK +
- 2. Empiler des widgets dans Gtk +
- 3. Comment changer les couleurs d'un widget arbitraire dans GTK +?
- 4. Puis-je définir un UILabel à développer pour s'adapter à une quantité arbitraire de texte?
- 5. Existe-t-il un moyen facile de répertorier par programme tous les ID de message dans un fichier .MO?
- 6. Visual Studio 2008, un moyen facile de gérer les paramètres?
- 7. ASP.NET - Un moyen facile d'échanger un booléen?
- 8. Un moyen facile de rechercher une chaîne pour les chaînes
- 9. Besoin d'un moyen facile de forcer tous les noms de propriété DynaBean en minuscules
- 10. Un moyen facile d'exécuter une application ASP.Net à la maison?
- 11. Un moyen facile d'ajouter une action de contexte à Eclipse
- 12. Un moyen facile de simuler Viewstate invalide?
- 13. Un moyen facile d'archiver des objets liés
- 14. Existe-t-il un moyen facile d'effacer un formulaire ASP.NET?
- 15. Mise à l'échelle d'une image dans GTK
- 16. Un moyen facile de pdf un rapport Web
- 17. Qu'est-ce qu'un moyen facile de mettre un élément au milieu d'un tableau PHP?
- 18. Multiprocessing Python moyen facile de mettre en œuvre un compteur simple?
- 19. moyen facile de créer un fichier imbriqué dans les répertoires indisponibles
- 20. moyen le plus facile de centrer une image dans Silverlight?
- 21. Visual Studio 2005: Existe-t-il un moyen facile de mettre en retrait correctement dans un fichier ASPX?
- 22. Existe-t-il un moyen facile d'afficher les cartes à jouer dans une application WinForms?
- 23. POSTER un nombre arbitraire d'enregistrements à partir d'un formulaire HTML
- 24. Comme il est facile de mettre à jour les applications Symfony de 1.1 à 1.2
- 25. Dans Rails, existe-t-il un moyen facile de vérifier les attributs d'un ActiveRecord?
- 26. Attraper l'événement de défilement dans gtk #
- 27. Existe-t-il un moyen facile de personnaliser un QProgressBar?
- 28. Un moyen facile de nourrir dans un nombre décimal sous forme de chaîne dans un NSDecimalNumber?
- 29. Ajout de widgets dynamiques à un panneau (GWT)
- 30. Un moyen facile de retrive timestamp de SQL Server db
ce serait génial si je pouvais le faire fonctionner - merci pour le plomb! – Claudiu