IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Probleme d'affichage des QDial


Sujet :

PyQt Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2021
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Probleme d'affichage des QDial
    Bonjour la communauté,

    J'ai un problème d'affichage avec la classe QDial de Pyqt5

    voici ma source, toute simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    import	sys
    from	PyQt5.QtWidgets	import	*
    from	PyQt5.QtCore	import	*
     
    TailleEcranLargeurPix = 0
    TailleEcranHauteurPix = 0
     
    class MyQDial(QWidget):
    	def __init__(self):
    		super().__init__()
    		layout = QGridLayout()
    		self.setLayout(layout)
    		self.dial = QDial()
    		self.dial.setMinimum(0)
    		self.dial.setMaximum(100)
    		self.dial.setValue(50)
    		self.dial.setNotchesVisible(True)
    		layout.addWidget(self.dial)
     
    app	=	QApplication(sys.argv)
    screen = QApplication.screens()[0]
    TailleEcranLargeurPix = screen.size().width()
    TailleEcranHauteurPix = screen.size().height()
     
    mess = "La résolution de l'écran est : %s x %s"%(TailleEcranLargeurPix, TailleEcranHauteurPix)
    print(mess)
     
    window = MyQDial()
     
    window.show()
    app.exec_()
    Sur Windows 10 et Linux Mint 20.3 Cinnamon l'affichage est parfait, la classe QDial est affichée sans aucun défaut graphique



    Sur Linux Kubuntu 20.4 KDE PLASMA impossible d'afficher correctement la classe QDial, les graduations disparaissent, le graphique prend une forme bizarre de fer à cheval, le bouton central disparait, c'est pourtant le même code, je n'arrive pas à comprendre d'ou ça vient !



    Avez vous une idée d'ou cela peut provenir ?

    (J'utilise Geany, python 3.8.10 et Qt 5.12.8)

    J'ai aussi tenté de créer un programme sous Qt Creator en C++ avec juste la classe QDial insérée en graphisme sous Qt Creator, cela me donne exactement le même résultat sous Kubuntu 20.4 Kde plasma

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2021
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Je pense avoir trouvé un semblant de solution
    Je m'excuse pour ce message, mais je pense avoir trouvé un semblant de solution à mon problème

    En fait, il suffit de définir un style de base en insérant le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    app	=	QApplication(sys.argv)
    app.setStyle('Fusion')
    screen = QApplication.screens()[0]
    Cela permet de définir un style de base et d'avoir à nouveau la même roue que sous Windows 10, sous Linux Kubuntu 20.04 plasma

    Les essais sur les autres systèmes fonctionnent parfaitement, sous Windows 10 et Linux Mint 20.03 Cinnamon

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Salut

    Sur un Linux Debian, ton code initial donne une image correcte
    Nom : VirtualBox_Debian10_64b_23_04_2022_13_57_43.png
Affichages : 143
Taille : 554,1 Ko

    Sur un Xubuntu (X=Xfce) c'est pareil, image nickel
    Nom : VirtualBox_Xubuntu64_23_04_2022_14_02_39.png
Affichages : 153
Taille : 171,8 Ko

    Sur un Mint, là encore c'est ok
    Nom : VirtualBox_Mint_23_04_2022_14_29_49.png
Affichages : 148
Taille : 278,0 Ko

    N'aimant pas trop les autres environnements de bureau (tous plus lourds ou (de mon point de vue) plus horribles les uns que les autres) je peux pas tester mais peut-être effectivement que le plasma (célèbre pour ses effets de fondus-enchainés) se trouve en défaut dans ce cas là. La solution setStyle effectivement permet de positionner un style de référence. Qt5 n'en possède plus que 2 (Windows et Fusion) tandis que Qt4 en possédait 6 (Windows, Motif, CDE, Plastique, GTK+ et Cleanlooks) (liste disponible dans la classe QStyleFactory)

    Accessoirement le Grid est inutile quand on n'a qu'un widget. Et pourquoi créer un QWidget qui crée un QDial alors qu'on peut créer le QDial direct?

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class MyQDial(QDial):
    	def __init__(self):
    		super().__init__()
    		self.setMinimum(0)
    		self.setMaximum(100)
    		self.setValue(50)
    		self.setNotchesVisible(True)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/02/2008, 16h17
  2. Réponses: 4
    Dernier message: 31/07/2006, 20h06
  3. [SWT][IHM]Probleme d'affichage des icones
    Par barbu0055 dans le forum SWT/JFace
    Réponses: 6
    Dernier message: 03/03/2006, 12h05
  4. Réponses: 15
    Dernier message: 15/11/2005, 17h33
  5. []Problème d'affichage des enregistrements dans un DataReport
    Par GeniuZ dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 05/01/2005, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo