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 :

PyQt4 sous Ubuntu


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    IT in outer space
    Inscrit en
    Novembre 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : IT in outer space

    Informations forums :
    Inscription : Novembre 2006
    Messages : 88
    Par défaut PyQt4 sous Ubuntu
    Bonjour,

    dans le but d'apprendre Python et en faire des applis graphiques j'ai choisi PyQt.
    En tant que premier tuto graphique j'ai voulu suivre le tuto d'introduction proposé sur developpez.com mais le souci c'est que j'en suis à l'étape où j’exécute le main et ça ne semble pas marcher.
    En fait je n'ai pas d'erreur mais rien ne semble se passer. J'ai effectivement pris la liberté de modifier quelques noms ça et là mais en adaptant en conséquence il n'y a pas de raisons pour que ça ne marche pas.
    J'utilise des applis basées sur PyQt et qui marchent très bien et j'ai installé des paquets en plus pour avoir accès aux outils mentionnés (pyuic4) dans le tuto.

    Je vous mets une liste des paquets installés qui devraient être en relation avec python et PyQt4. Ma version de python est celle des dépôts soit la 2.6.5 car j'utilise Ubuntu 10.10.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dpkg -l py* | grep -i qt | grep ^ii
    ii  pyqt4-dev-tools                      4.7.2-0ubuntu1                                  Development tools for PyQt4
    ii  python-qt4                           4.7.2-0ubuntu1                                  Python bindings for Qt4
    ii  python-qt4-dev                       4.7.2-0ubuntu1                                  Development files for PyQt4
    Est-ce qu'il me manquerait quelque chose pour mener à bien le tuto ?
    J'avais essayé le tuto une fois en ayant fait une erreur de manipulation qui m'a causé une erreur à cette étape (un form à la place d'un groupbox au moment du design de la fenêtre donc j'ai tout recommencé, c'est pas long.) mais là je me demande pourquoi ça ne se lance pas.
    Si je parle de ça c'est parce que selon moi si j'avais introduit une erreur quelconque en codant j'aurais eu un message d'avertissement ou d'erreur.
    Pouvez vous m'expliquer ce qui manquerait, ce qui se passe, ce que je ne comprendrait pas par rapport à cette application ?
    Merci.

    PS : J'ai téléchargé et essayé d'exécuter le source joint en fin de tuto et il me met une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ python main.py 
    Traceback (most recent call last):
      File "main.py", line 4, in <module>
        from PyQt4.QtSql import *
    ImportError: No module named QtSql
    Merci pour votre aide.

    PS bis : Bon j'ai installer le paquet python-qt4-sql et ça s'est lancé même si l'interaction avec la db n'a pas l'air de prendre. J'imagine que le code n'est pas complet enfin peu importe.

    Dans ce cas je colle mon code pour voir ce qui ne va pas.
    main.py
    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
    import sys
    from PyQt4.QtCore import *
    from PyQt4.QtGui import *
    from groupbox import Ui_GroupBox
     
    class NekoHolderApplication(QGroupBox):
        def __init__(self, parent = None):
            super (NekoHolderApplication, self).__init__(parent)
            self.createWidgets()
     
        def createWidgets(self):
            self.ui = Ui_GroupBox()
            self.ui.setupUi(self)
     
            # Setting up database connction for model
            self.db = QSqlDatabase.addDatabase("QSQLITE");
            self.db.setDatabaseName('base.sqlite')
            self.db.open()
     
            # defining a model for the table
            self.model = QSqlTableModel(self)
            self.model.setTable("ships");
     
            ID = 0
            NAME = 1
            self.model.setHeaderData(ID, Qt.Horizontal, "Id")
            self.model.setHeaderDate(NAME, Qt.Horizontal, "Name")
            self.model.select()
     
            self.ui.tableView.setModel(self.model)
     
    if __name__ == "__main___":
        app = QApplication(sys.argv)
        myapp = NekoHolderApplication()
        myapp.show()
        sys.exit(app.exec_())
    groupbox.py
    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
    # -*- coding: utf-8 -*-
     
    # Form implementation generated from reading ui file 'groupbox.ui'
    #
    # Created: Sun Feb 19 18:41:56 2012
    #      by: PyQt4 UI code generator 4.7.2
    #
    # WARNING! All changes made in this file will be lost!
     
    from PyQt4 import QtCore, QtGui
     
    class Ui_GroupBox(object):
        def setupUi(self, GroupBox):
            GroupBox.setObjectName("GroupBox")
            GroupBox.resize(480, 640)
            self.gridLayout = QtGui.QGridLayout(GroupBox)
            self.gridLayout.setObjectName("gridLayout")
            self.horizontalLayout = QtGui.QHBoxLayout()
            self.horizontalLayout.setObjectName("horizontalLayout")
            self.tbvNekoList = QtGui.QTableView(GroupBox)
            self.tbvNekoList.setObjectName("tbvNekoList")
            self.horizontalLayout.addWidget(self.tbvNekoList)
            self.verticalLayout = QtGui.QVBoxLayout()
            self.verticalLayout.setObjectName("verticalLayout")
            self.lblName = QtGui.QLabel(GroupBox)
            self.lblName.setObjectName("lblName")
            self.verticalLayout.addWidget(self.lblName)
            self.edtName = QtGui.QLineEdit(GroupBox)
            self.edtName.setObjectName("edtName")
            self.verticalLayout.addWidget(self.edtName)
            self.btnNew = QtGui.QPushButton(GroupBox)
            self.btnNew.setObjectName("btnNew")
            self.verticalLayout.addWidget(self.btnNew)
            self.btnSave = QtGui.QPushButton(GroupBox)
            self.btnSave.setObjectName("btnSave")
            self.verticalLayout.addWidget(self.btnSave)
            self.btnDelete = QtGui.QPushButton(GroupBox)
            self.btnDelete.setObjectName("btnDelete")
            self.verticalLayout.addWidget(self.btnDelete)
            spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
            self.verticalLayout.addItem(spacerItem)
            self.horizontalLayout.addLayout(self.verticalLayout)
            self.gridLayout.addLayout(self.horizontalLayout, 0, 1, 1, 1)
     
            self.retranslateUi(GroupBox)
            QtCore.QMetaObject.connectSlotsByName(GroupBox)
     
        def retranslateUi(self, GroupBox):
            GroupBox.setWindowTitle(QtGui.QApplication.translate("GroupBox", "Neko List Asset Management", None, QtGui.QApplication.UnicodeUTF8))
            GroupBox.setTitle(QtGui.QApplication.translate("GroupBox", "Neko List", None, QtGui.QApplication.UnicodeUTF8))
            self.lblName.setText(QtGui.QApplication.translate("GroupBox", "Neko name :", None, QtGui.QApplication.UnicodeUTF8))
            self.btnNew.setText(QtGui.QApplication.translate("GroupBox", "New", None, QtGui.QApplication.UnicodeUTF8))
            self.btnSave.setText(QtGui.QApplication.translate("GroupBox", "Save", None, QtGui.QApplication.UnicodeUTF8))
            self.btnDelete.setText(QtGui.QApplication.translate("GroupBox", "Delete", None, QtGui.QApplication.UnicodeUTF8))

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Essayes toujours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sudo apt-get install libqt4-sql
    Si ce n'est pas ça, je m'étonne.

  3. #3
    Membre confirmé
    Homme Profil pro
    IT in outer space
    Inscrit en
    Novembre 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : IT in outer space

    Informations forums :
    Inscription : Novembre 2006
    Messages : 88
    Par défaut
    Merci de la réponse. J'étais en train d'éditer mon message. J'ai trouvé qu'il manque un paquet et lequel installer. lib-qt4-sql est installé.
    Ça me surprend que mon code ne lance aucune fenêtre alors que celui du zip marche bien que j'eusse suivi les instructions du tuto. Au pire je comparerais les deux fichiers plus tard.
    Mais bon le tuto dois dater légèrement parce que le wizard de QT Creator diffère un peu chez moi. Malgré tout ça ne devrait pas gêner.

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Si tu installes par les paquets, tu as une installation sûre.

  5. #5
    Membre confirmé
    Homme Profil pro
    IT in outer space
    Inscrit en
    Novembre 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : IT in outer space

    Informations forums :
    Inscription : Novembre 2006
    Messages : 88
    Par défaut
    Oui je sais, surtout que j'ai pas l'envie ni le temps de compiler. ^^
    La question concerne surtout la raison pour laquelle mon code ne m'affiche aucune fenêtre. Ça sent le classique oublie de ligne mais bon là je vais être occupé à d'autres choses. Je reprendrais ça demain peut-être.

    EDIT: J'ai trouvé 5 minutes et j'en ai profité pour comparé. J'ai vu mes erreurs.

    un setHeaderData écrit setHeaderDate
    un underscore de trop dans __main__ écrit __main___
    et comme j'ai choisi mes propres noms de contrôles j'ai oublié d'adapté le nom du tableau.
    self.ui.tbvNekoList.setModel(self.model)
    Il s'est affiché. C'était vraiment bénin comme problème.
    Merci.

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Vous pouvez installer PyQt4 directement par les dépôts

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt-get install python-qt4
    Ensuite si vous le souhaitez vous pouvez installer sa doc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt-get install python-qt4-doc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Plusieurs questions sur Samba sous Ubuntu
    Par Niktou dans le forum Réseau
    Réponses: 12
    Dernier message: 12/02/2006, 15h45
  2. [Linux]eclipse sous ubuntu Hoary
    Par soumou dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 30/11/2005, 21h20
  3. Compilateur manqaunt sous Ubuntu 5.10
    Par olafmenji dans le forum Linux
    Réponses: 1
    Dernier message: 01/11/2005, 12h11
  4. [Linux]Lancement d'Eclipse sous Ubuntu x86_64
    Par sylbal dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 08/03/2005, 10h17
  5. PhpMyAdmin vs Mysql sous Ubuntu
    Par PiTiLeZarD dans le forum Installation
    Réponses: 11
    Dernier message: 12/01/2005, 22h02

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