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 :

Qt Designer et bases de données


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Par défaut Qt Designer et bases de données
    Voilà, j’ai décidé de sauter le pas et de commencer à faire des « vrais » développements en Python !

    La première étape fut de me construire un environnement de travail dans la jungle des différents releases & frameworks qu’on trouve sur le net. Après quelques tâtonnements, je me suis arrêté au trio Python 2.6, Qt 4.4 & Eric 4.4 sous Windows XP. Le tout semble fonctionner correctement et les seuls bugs rencontrés jusqu’à présent sont le fait de mon inexpérience.

    Qui dit « vrai développement » dit « base de donnée ». Je comptais naturellement sur QtSql pour me connecter à une base MSAccess via ODBC (c'est pas un choix, c'est une obligation!) ; et c’est là que je cale. Pas moyen de trouver un exemple de code exploitable pour Access et toutes mes tentatives pour adapter le code que j’ai pu glaner sur internet sont restées vaines !

    Donc, première demande : y-a-t-il une âme charitable pour me donner un embryon de code pour ouvrir la connexion vers une DB Access(ODBC) avec QtSql ?

    En fouinant sur le net à la recherche d’info sur QtSql, j’ai cru comprendre qu’il existe justement des outils d’aide à la connexion avec une DB dans Qt Designer. J’ai vu quelques screenshots sur lesquels des « Data Aware Widgets » dans la toolbar widget et une suite d’écrans genre « Wizard » guidant la configuration d’une connexion.

    Donc, deuxième question : quid de ce complément « database » à QtDesigner ; est-ce un module standard ou un plugin ou une ressource disponible uniquement en version payante.

    Merci d’avance

    Gérard

  2. #2
    Membre chevronné
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 290
    Par défaut
    Bonjour,
    Avec QtDesigner, je ne sais pas, mais voici un exemple tout 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    # -*- coding: ISO-8859-1 -*-
    import sys
    from PyQt4 import QtCore, QtGui, QtSql
     
    class Table:
        def __init__(self):
     
            self.createConnection()
            self.model=QtSql.QSqlTableModel()
            self.initialiseModel(self.model)
     
        def initialiseModel(self,model):
     
            self.model.setTable("Table1")
            self.model.setEditStrategy(QtSql.QSqlTableModel.OnRowChange)
            self.model.setSort(0,QtCore.Qt.SortOrder(0))
            self.model.select()
            return self.model
     
        def createConnection(self):
            self.db = QtSql.QSqlDatabase.addDatabase("QODBC3")
            self.db.setDatabaseName("test")
            self.db.setUserName("")
            self.db.setPassword("")
            self.db.open()
            return self.db
     
        def onQuit(self):
            self.db.close()
     
    def main():
        app = QtGui.QApplication(sys.argv) 
        tableView = QtGui.QTableView()
        table=Table()
        QtCore.QObject.connect(app, QtCore.SIGNAL("lastWindowClosed()"), table.onQuit)
        tableView.setModel(table.model)
        tableView.show()
        sys.exit(app.exec_())
     
    if __name__=='__main__':
        main()
    Avec une table ODBC "test" qui contient une table "Table1".
    Il y a des exemples dans la doc pyQt.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Par défaut Merci,
    Merci Pierjean pour ta réponse.

    C'est en effet assez trivial et ça fonctionne. Je crois que j'ai été un peu "pollué" par tous les autres frameworks que j'ai explorés ces dernier temps; pourquoi faire simple quand on peut faire compliqué?

    Par contre, je m'étonne du peu de réactivité sur le thème du "wizard" QSql dans Qt Designer. Si d'aventure quelqu'un avait des infos sur la question, je suis toujours preneur!

    Encore merci,

    Gérard

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

Discussions similaires

  1. Vijeo designer et base de données recettes
    Par quentin22breizh dans le forum Automation
    Réponses: 0
    Dernier message: 18/12/2012, 14h00
  2. [PerformancePoint] Dashboard Designer Base de données externes
    Par cyril74 dans le forum Microsoft BI
    Réponses: 0
    Dernier message: 22/02/2011, 14h28
  3. Qt Designer et les bases de données
    Par bobymaw dans le forum Débuter
    Réponses: 2
    Dernier message: 30/12/2010, 23h44
  4. Réponses: 0
    Dernier message: 21/08/2009, 19h22
  5. Réponses: 1
    Dernier message: 04/07/2008, 14h53

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