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))