Tkinter et Debian 10.6 Mauvaise prise en charge

Tout ce qui concerne la programmation.
Répondre
Bos-koop
Messages : 2
Inscription : 09 nov. 2020, 00:39
Status : Hors-ligne

Bonjour,

utilisant tkinter depuis peu je suis confronté à un problème de background, tout fonctionne bien mais systématiquement le fond de mes fenêtres n'est pas adapté aux widgets que je crée. Cela ne se produit que sur debian, j'ai essayé sur Lubuntu, Windows 10 et Manjaro, et le rendu est bon partout sauf sur debian.

A vrai dire c'est possible d'uniformisé les couleurs mais le rendu est dégueu. Sans parler du fait que, sur des gros utilitaires ce sera assez lourd en code à la fin.

Avec des images ce sera mieux.

Tout d'abord le code de mon exemple (c'est juste un code inutile avec plusieurs cas de figures pour montrer le problème):

Code : Tout sélectionner

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

info_importante = ttk.Label(root, text="Cheat Yourself", padding=20)
info_importante.configure(font="Courier")
info_importante.pack()

def new():
    pisse = tk.Tk()

    info_moins_importante = ttk.Label(pisse, text="Ceci est une nouvelle fenêtre", padding=40)
    info_moins_importante.pack()

    pisse.mainloop()



ouv = ttk.Button(root, text="Vas-y clique là", command=new)
ouv.pack()

bout = ttk.Button(root, text="Quitter", command=root.destroy)
bout.pack()


root.mainloop()

Rendu Debian 10.6 :
Image

Image

Si j’agrandis la fenêtre :
Image

Manjaro, avec les fenêtres agrandit :
Image

Windows avec les fenêtres agrandit :
Image


Donc il est possible de choisir un background quand on crée une fenêtre avec Tk() et pour tout les widgets, mais c'est assez contraignant, le rendu n'est pas merveilleux (je suis bien gentil) et je ne vois pas pourquoi on ne devrait faire ça qu'avec Debian. On peut aussi utiliser fill et expand partout mais là ça rajoute beaucoup de code, avec un résultat digne du loto quand on utilise de plus en plus de widgets, et encore une fois, ce serait seulement pour Debian. Avec grid le problème est le même.
J'aimerai savoir s'il existe une solution simple à ce problème, un peu comme pour la compatibilité DPI sur W10*

J'ai pas mal cherché, en anglais et français et la réponse existe peut être ailleurs en anglais et si c'est le cas je n'ai pas su trouver les bons mots pour chercher.
Sur une autre machine avec debian 10.6 j'ai le même rendu.

Est-ce que quelqu'un à une ou des solutions à proposer ?


DPI sur windows 10 :

Code : Tout sélectionner

try:
    from ctypes import windll
    windll.shcore.SetProcessDpiAwareness(1)
except:
    pass
Voilà voilà, bonne journée et merci d'avoir lu jusque là.


EDIT 09/11/20 à 15h33 : J'ai oublié de préciser, Python 3.7.3 et Tkinter 8.6
EDIT² 09/11/20 à 15h45 : J'ai pris un exemple sans Frame, mais avec Frame on résout le problème tout en créant d'autres qu'il faut régler, alors que sur n'importe quel autre système c'est naturel
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 4905
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Bonjour, parler de debian pour des fenêtres, c'est très vague.
De plus, je pense que tu parles de debian stable . Avec les backports installés ?
et surtout, quel gestionnaire de bureau et quel gestionnaire de fenêtres as tu testé ? Il y en a tellement!
Bos-koop
Messages : 2
Inscription : 09 nov. 2020, 00:39
Status : Hors-ligne

Effectivement j'ai oublié de préciser alors que c'était peut-être l'information la plus importante, il s'agit de Mate sur debian stable. J'ai deux ordinateurs avec Mate dont un qui sert juste au multimedia (donc aucun modif/install/bidouille) et c'est pareil sur les deux.
Pas de backports installés.

Pour le gestionnaire de fenêtre je n'ai rien touché. il doit donc s'agir de marco si je ne me trompe pas.
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 4905
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Je ne pourrais pas t'aider, je n'ai que du kde, plama et kwin.
Et je viens d'ailleurs d'avoir une grosse galère, mais c'est réglé;
Je pense que c'est lié au theme utilisé. Les fenêtres adoptent le thème par défaut.
Répondre