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 :

Tableau a 2 dimensions


Sujet :

PyQt Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Tableau a 2 dimensions
    Bonjour à tous,

    Dans le cadre de mon apprentissage de PyqT je voudrai afficher un tableau a 2 dimensions.

    Voici mon projet :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    #!/usr/bin/env python
    #-*- coding: cp1252 -*-
     
    import sys
     
    from PyQt4 import QtCore, QtGui
     
    class part_3(QtGui.QMainWindow):
        def __init__(self):
     
            # Main Window #
            QtGui.QMainWindow.__init__(self)
            self.resize(210,110)
            self.setWindowTitle(' Projet ')
     
            self.ComboBox_0 = QtGui.QComboBox()
            self.ComboBox_0.setGeometry(QtCore.QRect(10,10,10,10))
            self.ComboBox_0.addItem("Choix_A")
            self.ComboBox_0.addItem("Choix_B")
     
            self.ComboBox_1 = QtGui.QComboBox()
            self.ComboBox_1.setGeometry(QtCore.QRect(10,10,10,10))
            self.ComboBox_1.addItem("Choix_1")
            self.ComboBox_1.addItem("Choix_2")
     
     
            VBoxLayout_1 = QtGui.QVBoxLayout()
            VBoxLayout_1.addWidget(self.ComboBox_0)
            VBoxLayout_1.addWidget(self.ComboBox_1)
            VBoxLayout_1.setSpacing(100)
     
            Widget_1 = QtGui.QWidget()
            Widget_1.setLayout(VBoxLayout_1)
     
            Dock_Gauche = QtGui.QDockWidget()
            Dock_Gauche.setWidget(Widget_1)
            self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, Dock_Gauche)
     
     
     
            self.SpinBox_1 = QtGui.QSpinBox(self)
            self.SpinBox_1.setRange(-12,12)
            self.SpinBox_1.setSingleStep(1)
            self.SpinBox_1.setValue(0)
     
            self.SpinBox_2 = QtGui.QSpinBox(self)
            self.SpinBox_2.setRange(-12,12)
            self.SpinBox_2.setSingleStep(1)
            self.SpinBox_2.setValue(0)
     
            self.SpinBox_3 = QtGui.QSpinBox(self)
            self.SpinBox_3.setRange(-12,12)
            self.SpinBox_3.setSingleStep(1)
            self.SpinBox_3.setValue(0)
     
            self.SpinBox_4 = QtGui.QSpinBox(self)
            self.SpinBox_4.setRange(-12,12)
            self.SpinBox_4.setSingleStep(1)
            self.SpinBox_4.setValue(0)        
     
            self.GridLayout_1 = QtGui.QGridLayout()  
            self.GridLayout_1.addWidget(self.SpinBox_1,      1,0,1,1)
            self.GridLayout_1.addWidget(self.SpinBox_2,      2,0,1,1)
            self.GridLayout_1.addWidget(self.SpinBox_3,      1,1,1,1)
            self.GridLayout_1.addWidget(self.SpinBox_4,      2,1,1,1)
     
     
            ''' Group Box '''
            self.GroupBox_1 = QtGui.QGroupBox()
            self.GroupBox_1.setLayout(self.GridLayout_1)
            ''' Main Window - Central Widget '''
            self.setCentralWidget(self.GroupBox_1)
    #-----------------------------
            self.connect(self.SpinBox_1, QtCore.SIGNAL('valueChanged(int)'),self.M_UpdateBloc_1)
            self.connect(self.SpinBox_2, QtCore.SIGNAL('valueChanged(int)'),self.M_UpdateBloc_1)
            self.connect(self.SpinBox_3, QtCore.SIGNAL('valueChanged(int)'),self.M_UpdateBloc_1)
            self.connect(self.SpinBox_4, QtCore.SIGNAL('valueChanged(int)'),self.M_UpdateBloc_1)
     
        def M_UpdateBloc_1(self):
     
            a = self.SpinBox_1.value()
            b = self.SpinBox_2.value()
            c = self.SpinBox_3.value()
            d = self.SpinBox_4.value()
            Tab_1 = [a, b, c, d]
            if str(self.ComboBox_0.currentText()) == "Choix_A" :
                if str(self.ComboBox_1.currentText()) == "Choix_1" :
                   Tab_1 = [a, b, c, d]
                   print "Voici le tableau de HANDSET et VOICE pour AGC : "
                   print Tab_1
     
     
    #-----------------------------
    def main():
            '''Application'''
            App = QtGui.QApplication(sys.argv)
            App.setStyle("windows")
            MainWin2 = part_3()
            MainWin2.show()
            sys.exit(App.exec_() )
     
    if __name__=='__main__':
        main()
    Donc aprés que vous l'avez executer, tout marche bien c'est nikel

    Ce que je veut faire :

    Quand je change la valeur de SpinBox_1, je voudrai fait un print de la valeur modifié dans un tableau à 2 dimensions.
    On suppose que SpinBox_1 est associe a la combinaison Choix_A et Choix_1

    Voici ce que je veut afficher, où X est la valeur présent dans la SpinBox_1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                Choix_A   Choix_B
     
    Choix_1       X  
     
    Choix_2
    Merci d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Et qu'est-ce qui ne va pas ?

    Ton tableau est simplement une liste, pour faire un tableau à deux dimensions il suffit de faire comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Tab_1 = [[a, b], [c, d]]
    Et pour le printer sous la même forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for i in Tab_1:
        print i

    En tous cas, tu as été plus loin que tes deux collègues:
    http://www.developpez.net/forums/d14...ointeur-objet/

    http://www.developpez.net/forums/d14...ent-parametre/

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Ok merci pour avoir répondu,

    Mais j'aimerai bien afficher la valeur su Spinbox modifier dans la bonne zone X, Y (comme dans mon exemple).

    Car à la fin je vais faire quelque chose de trés gros, et cela va me perturber.

    Merci d'avance

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Citation Envoyé par LowPass159 Voir le message
    Mais j'aimerai bien afficher la valeur su Spinbox modifier dans la bonne zone X, Y (comme dans mon exemple).
    S'cuse moi mais, même les traductions de Google sont plus compréhensibles.

  5. #5
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par VinsS Voir le message

    LowPass159 : tu en profiteras pour me dire en mp pourquoi ton adresse IP est la même que dhoomh et que NiceLinux123456...
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    C'est l'IP de leur école, non ?

    On gagne quoi ?

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Ouai on est dans un Studio, et on utilise le même PC.

    On se qui concerne les questions posée, c'est dans le but d'amélioré notre projet.

    Et chacun travail dans son coin, et on rassemble tout. Donc chacun son compte.

    Donc je peut encore poser des questions sur ce forum ou pas ?

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Ben évidemment.

    C'était juste de la curiosité, et aussi d'amusement de voir trois façons différentes d'aborder un même problème.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup,

    Je travail sur mon problème, et je te tien au courant

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Rebonjour, voici ce que je veut faire :

    Attribuer une fonction a SpinBox_1 qui permet d'afficher sa valeur dans un tableau a 2 dimensions.


    Quand je modifie une valeur dans SpinBox_1
    Dont le choix ComboBox_0 : choix_A
    Et le choix ComboBox_1: choix_1
    Alors j’affiche la valeur de SpinBox_1 dans le tableau a 2 dimension.


    J’aimerai ainsi afficher les noms des éléments aussi.
    Tels que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	    Choix_A   Choix_B
     
    Choix_1       X  
     
    Choix_2
    X étant la valeur de SpinBox_1

    Est-ce possible de faire cela ? Ou avez-vous une autre idée du processus ?

    Merci d'avance

  11. #11
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Tu peux utiliser des labels dans un QGridLayout comme tu as fais pour les spinBox ou utiliser un tableau.

    Un tableau ça en jette plus, et ça reste assez simple à gérer.

    En le mettant en dessous des spinBox par exemple:
    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
     
    ....
            self.GridLayout_1.addWidget(self.SpinBox_3,      0,1,1,1)
            self.GridLayout_1.addWidget(self.SpinBox_4,      1,1,1,1)
            self.table = QtGui.QTableWidget()
            self.table.setColumnCount(2)
            self.table.setRowCount(2)
            self.table.setHorizontalHeaderLabels(["Choix_A", "Choix_B"])
            self.table.setVerticalHeaderLabels(["Choix_1", "Choix_2"])
            self.GridLayout_1. addWidget(self.table, 2, 0, 3, 2)
    ...
     
        def M_UpdateBloc_1(self):
            a = self.SpinBox_1.value()
            b = self.SpinBox_2.value()
            c = self.SpinBox_3.value()
            d = self.SpinBox_4.value()
            Tab_1 = [a, b, c, d]
            if str(self.ComboBox_0.currentText()) == "Choix_A" :
                if str(self.ComboBox_1.currentText()) == "Choix_1" :
                    item = QtGui.QTableWidgetItem(str(a))
                    self.table.setItem(0, 0, item)    # ligne, colonne, item

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Salut merci pour ta réponse.

    C'est presque le résultat que je veux, mais est-ce possible d'afficher cela sur le Shell ?

    Comme par exemple, un print est afficher sur le Shell.

    Merci d'avance.

  13. #13
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Pour l'affichage dans le shell, tu peux formater ta chaîne de texte, par exemple pour conserver les alignements.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> print "\n\tChoix_A\tChoix_B\nChoix_1\t%4d\nChoix_2" % 5
     
    	Choix_A	Choix_B
    Choix_1	   5
    Choix_2
    avec, ici, \n pour une nouvelle ligne, \t pour une tabulation et %4d comme opérateur de formatage.

    D'autres exemples ici: http://python.developpez.com/cours/T...age_12#L10.1.9

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/11/2005, 19h55
  2. Réponses: 13
    Dernier message: 13/10/2005, 16h03
  3. Tableau a trois dimension!!!
    Par krfa1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/10/2005, 15h52
  4. Réponses: 1
    Dernier message: 30/09/2005, 19h17
  5. [Tableau]comment connaitre la taille d'un tableau à 2 dimensions
    Par Kyti dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 22/04/2005, 10h27

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