PAGE 8.0 RELEASED Well, it’s now 2024 and with the new year, we have a new PAGE GUI designer available. On January 1st, PAGE 8.0 was uploaded to the Sourceforge repository. I’ll try to highlight some of the important changes that have been implemented in the new version. If you’ve ever run PAGE before, you will probably notice the first change immediately on the Main menu window (shown below). PAGE 8.0 now supports Tcl themes in the designer. You’ve always been able to use the ttk Widgets easily, but they always were shown from the “default” theme for your OS. If you were running Linux, that theme would be named “default”, if you were running Windows (heaven forbid!!!!) then it should be “vista” and under mac OS x, it should be “aqua”. The problem would show up when you changed to a different theme. Since you couldn’t change the theme in the Designer, any differences in widget size or anything else that was theme based, meant that you would most likely need to rework the GUI from memory or a screenshot to make the new theme work. A major problem to say the least.
PUBLICATION DE PAGE 8.0
Nous sommes en 2024 et, avec la nouvelle année, un nouveau concepteur d'interface graphique PAGE est disponible. Le 1er janvier, PAGE 8.0 a été téléversé sur le dépôt Sourceforge.
Je vais essayer de mettre en évidence certains des changements importants qui ont été implémentés dans la nouvelle version.
Si vous avez déjà utilisé PAGE, il est probable que vous remarquerez immédiatement le premier changement dans la fenêtre du menu principal (illustrée ci-dessous).
PAGE 8.0 supporte maintenant les thèmes Tcl dans le concepteur. Vous avez toujours pu utiliser les widgets ttk facilement, mais ils étaient toujours affichés à partir du thème « par défaut » de votre système d'exploitation. Si vous étiez sous Linux, ce thème s'appelait « default », si vous étiez sous Windows (le ciel nous en préserve !!!!), il s'appelait « vista » et sous mac OS x, il s'appelait « aqua ».
Le problème apparaissait lorsque vous changiez de thème. Comme vous ne pouviez pas changer le thème dans le Concepteur, toute différence dans la taille des widgets ou toute autre chose basée sur le thème signifiait que vous auriez probablement dû retravailler l'interface graphique à partir de votre mémoire ou d'une capture d'écran pour faire fonctionner le nouveau thème. Un problème majeur, c'est le moins qu'on puisse dire.
Now with PAGE 8, you can select any of the themes that PAGE supports (the OS theme set plus the 12 included themes) simply by clicking on the dropdown combo box pick a theme and (pardon the expression) BAM! You now can see what everything will look like when using the theme (shown left). As you can see, in the PAGE 8.0 Test #5 image, you see exactly what the theme does to the ttk widgets. Most third party themes (like the cornsilk-dark theme) use images to modify some of the look and feel of various ttk widgets. Remember, Themes only modify the ttk widgets, not the Tk widgets. PAGE 8.0 also provides a theme chooser, a quick demo of most of the ttk widgets with a combo box to switch between all the different themes that PAGE knows about, including the various OS based themes as well. As you change themes in the theme chooser, the theme switches for the main design form as well. One of the nice things about PAGE using the actual theme in the design process is the ability to see how different built in styles for different widgets affect the widgets on the Toplevel form.
Maintenant, avec PAGE 8, vous pouvez sélectionner n'importe lequel des thèmes supportés par PAGE (le jeu de thèmes de l'OS plus les 12 thèmes inclus). En cliquant simplement sur la liste déroulante, choisissez un thème et (pardonnez l'expression) BAM ! Vous pouvez maintenant voir à quoi tout ressemblera lorsque vous utiliserez le thème (illustré à gauche).
Comme vous pouvez le voir, dans l'image PAGE 8.0 Test #5, vous voyez exactement ce que le thème fait aux widgets ttk. La plupart des thèmes tiers (comme le thème cornsilk-dark) utilisent des images pour modifier l'aspect et la convivialité des différents widgets ttk. N'oubliez pas que les thèmes ne modifient que les widgets ttk, pas les widgets Tk.
PAGE 8.0 fournit également un sélecteur de thème, une démo rapide de la plupart des widgets ttk avec une liste déroulante pour basculer entre tous les thèmes différents connus par PAGE, y compris les différents thèmes basés sur le système d'exploitation. Lorsque vous changez de thème dans le sélecteur de thème, le thème change aussi dans le cadre de conception principal.
L'un des avantages de l'utilisation par PAGE du thème actuel dans le processus de conception est la possibilité de voir comment les différents styles intégrés pour les différents widgets affectent les widgets dans le cadre de niveau supérieur.
For example, all ttk::button widgets (this includes the TButton, TCheckbutton and the TRadiobutton) have a built in style called “Toolbutton”. This gives the widget a “flat” appearance which really looks nice in a Button bar type menu. This shows the TButton in “normal” style. This, however, is how the same button looks when the “Toolbutton” style is applied. Notice there is no border around the button widget. Not all ttk widgets have special styles and some themes have styles for some widgets that other themes don’t have. Take for example the TNotebook widget. Most of the themes that I designed for PAGE 8.0 (notsodark, page-notsodark, page-dark, page-light, page-wheat, cornsilk-dark and cornsilk-light) have a special set of styles that allow the Tabs to be positioned around the border of the TNotebook. Only the themes above have this. But PAGE will take advantage of this in the Attribute Editor. Unfortunately, PAGE doesn’t take into consideration that the current theme might not support the positioning. So if you use, let’s say, the “alt” theme (which doesn’t have the style settings for the TNotebook tab positioning), you won’t see any changes, but it won’t cause an error.
Par exemple, tous les widgets ttk::button (y compris TButton, TCheckbutton et TRadiobutton) ont un style intégré appelé « Toolbutton ». Cela donne au widget un aspect « plat » qui est très joli dans un menu de type barre de boutons.
Voici le style “normal” de TBouton (ci-dessus).
Voici cependant à quoi ressemble le même bouton lorsque le style « Toolbutton » est appliqué. Remarquez qu'il n'y a pas de bordure autour du widget du bouton (à gauche, en bas).
Tous les widgets ttk n'ont pas de style spécial et certains thèmes ont des styles pour certains widgets que d'autres thèmes n'ont pas. Prenons l'exemple du widget TNotebook. La plupart des thèmes que j'ai conçus pour PAGE 8.0 (notsodark, page-notsodark, page-dark, page-light, page-wheat, cornsilk-dark et cornsilk-light) ont un ensemble spécial de styles qui permettent aux onglets d'être positionnés autour de la bordure du TNotebook. Seuls les thèmes ci-dessus offrent cette possibilité. Mais PAGE en tirera parti dans l'éditeur d'attributs.
Malheureusement, PAGE ne prend pas en compte le fait que le thème actuel peut ne pas supporter le positionnement. Ainsi, si vous utilisez, disons, le thème « alt » (qui n'a pas les paramètres de style pour le positionnement de l'onglet TNotebook), vous ne verrez aucun changement, mais cela ne provoquera pas d'erreur.
Another big change in PAGE 8.0 is that you can now borrow existing menus from an existing project and paste them into your current project. This has been a problem for a long time and it really makes a big improvement. Once you have a “good” menubar and/or popup menu set that works for you, you can reuse them in a new project by borrowing from the project that has the nice working menu set into your current project. One more thing I will mention about new features for PAGE is what I like to call the “Norwegian Lift”. This was a request from my friend Halvard who lives in Norway. While it is somewhat difficult to show here, I’ll try to explain the process. Halvard was trying to create a project that has multiple frames that are stacked on top of each other, all exactly the same size and at the same x/y position. He was using, programmatically, the Tkinter widget.lift() method, which causes a widget to move on top of another widget. So in Halvard’s case, he had multiple populated frames that he could bring to the top depending on which option that the user picked from the menu (which was also a frame that was hidden by another frame).
Un autre grand changement dans PAGE 8.0 est que vous pouvez maintenant emprunter des menus existants d'un projet existant et les coller dans votre projet actuel. C'était un problème depuis longtemps et cette nouveauté apporte une grande amélioration. Une fois que vous avez une « bonne » barre de menus et/ou un ensemble de menus contextuels qui vous conviennent, vous pouvez les réutiliser dans un nouveau projet en les empruntant au projet qui dispose d'un ensemble de menus qui fonctionne bien dans votre projet actuel.
Une dernière chose que je mentionnerai à propos des nouvelles fonctionnalités de PAGE est ce que j'aime appeler le « Norwegian Lift » (l'ascenseur norvégien). Il s'agit d'une demande de mon ami Halvard qui vit en Norvège. Bien qu'il soit difficile de le montrer ici, je vais essayer d'expliquer le processus.
Halvard essayait de créer un projet comportant plusieurs cadres empilés les uns sur les autres, tous exactement de la même taille et à la même position x/y. Il utilisait, par programmation, la méthode Tkinter widget.lift(), qui permet à un widget de se déplacer au-dessus d'un autre widget. Ainsi, dans le cas de Halvard, il disposait de plusieurs cadres peuplés qu'il pouvait faire apparaître au sommet en fonction de l'option choisie par l'utilisateur dans le menu (qui était également un cadre caché par un autre cadre).
It is a neat way to do things that need configuration or things that you want to show without having to have a separate Toplevel form and deal with all the code to hide and show things. I’ll try to put up a blog post and provide a demo on my homepage before this article makes it into Full Circle for January (https://thedesignatedgeek.xyz ). Until next time, as always; stay safe, healthy, positive and creative!
C'est une façon intéressante de faire des choses qui ont besoin d'être configurées ou des choses que vous voulez montrer sans dévoir avoir un formulaire Toplevel séparé et à gérer tout le code pour cacher et montrer des choses.
J'essaierai de publier un billet de blog et de fournir une démonstration sur ma page d'accueil avant que cet article ne soit publié dans le Full Circle du mois de janvier (https://thedesignatedgeek.xyz).
Jusqu'à la prochaine fois, comme toujours, restez en sécurité, en bonne santé, positifs et créatifs !