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 :

QLineEdit et récupération de données [QtGui]


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 QLineEdit et récupération de données
    Bonjour, je découvre aujourd'hui PyQt4, et je dois dire que la mise en route est bien difficile.

    Finalement tout doucement je commence à comprendre, et j'ai besoin de votre expérience pour m'indiquer comment récupérer la valeur d'un QLineEdit "self.entry_1" me permettant ensuite de pouvoir l'entrer dans le QLineEdit "self.entry_2" en cliquant sur le bouton QPushButton "self.bouton_go".

    Autre question, doit-on modifier le code ci-dessous ou créer un autre fichier?

    Voici mon code :

    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 'test.ui'
    #
    # Created: Mon Aug 16 17:51:22 2010
    #      by: PyQt4 UI code generator 4.7.4
    #
    # WARNING! All changes made in this file will be lost!
     
    from PyQt4 import QtCore, QtGui
     
    class Ui_Dialog(object):
        def setupUi(self, Dialog):
            Dialog.setObjectName("Dialog")
            Dialog.resize(400, 300)
            self.frame = QtGui.QFrame(Dialog)
            self.frame.setGeometry(QtCore.QRect(30, 20, 331, 80))
            self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
            self.frame.setFrameShadow(QtGui.QFrame.Raised)
            self.frame.setObjectName("frame")
            self.entry_1 = QtGui.QLineEdit(self.frame)
            self.entry_1.setGeometry(QtCore.QRect(120, 10, 113, 20))
            self.entry_1.setObjectName("entry_1")
            self.label_nom = QtGui.QLabel(self.frame)
            self.label_nom.setGeometry(QtCore.QRect(60, 10, 61, 20))
            self.label_nom.setObjectName("label_nom")
            self.entry_2 = QtGui.QLineEdit(self.frame)
            self.entry_2.setGeometry(QtCore.QRect(120, 40, 113, 20))
            self.entry_2.setObjectName("entry_2")
            self.bouton_go = QtGui.QPushButton(self.frame)
            self.bouton_go.setGeometry(QtCore.QRect(250, 10, 75, 23))
            self.bouton_go.setObjectName("bouton_go")
            self.label = QtGui.QLabel(self.frame)
            self.label.setGeometry(QtCore.QRect(70, 40, 46, 13))
            self.label.setObjectName("label")
     
            self.retranslateUi(Dialog)
            QtCore.QMetaObject.connectSlotsByName(Dialog)
     
        def retranslateUi(self, Dialog):
            Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
            self.label_nom.setText(QtGui.QApplication.translate("Dialog", "Votre Nom :", None, QtGui.QApplication.UnicodeUTF8))
            self.bouton_go.setText(QtGui.QApplication.translate("Dialog", "GO!", None, QtGui.QApplication.UnicodeUTF8))
            self.label.setText(QtGui.QApplication.translate("Dialog", "Resultat :", None, QtGui.QApplication.UnicodeUTF8))
     
     
    if __name__ == "__main__":
        import sys
        app = QtGui.QApplication(sys.argv)
        Dialog = QtGui.QDialog()
        ui = Ui_Dialog()
        ui.setupUi(Dialog)
        Dialog.show()
        sys.exit(app.exec_())
    Merci par avance,

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Pour récupérer la valeur de self.entry_1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = self.entry_1.text()
    Et pour placer cette valeur dans self.entry_2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.entry_2.setText(x)
    Tyrtamos

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    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 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Bonjour, je découvre aujourd'hui PyQt4, et je dois dire que la mise en route est bien difficile.
    Oui, on est tous passé par là. Mais le résultat en vaut la peine...

    Citation Envoyé par fred1599 Voir le message
    Finalement tout doucement je commence à comprendre, et j'ai besoin de votre expérience pour m'indiquer comment récupérer la valeur d'un QLineEdit "self.entry_1" me permettant ensuite de pouvoir l'entrer dans le QLineEdit "self.entry_2" en cliquant sur le bouton QPushButton "self.bouton_go".

    Autre question, doit-on modifier le code ci-dessous ou créer un autre fichier?
    De mon point de vue, ta seconde question est de loin la plus importante. Car c'est elle qui dirigera ta façon de programmer et la souplesse de ton code. De mon coté, j'essaye toujours d'être le plus modulaire possible.

    Ainsi, ton essai comporte
    - une fenêtre de travail
    - 2 zones de saisies associées à un bouton sensé assurer une certaine liaison entre les 2 zones
    Ben moi, là je découpe ça en 2 modules
    - un module dédié à la gestion de la fenêtre de travail
    - un module dédié à la gestion des 2 zones et du bouton
    Ce qui permet, à mon sens, une plus grande souplesse dans l'évolutivité du code (si je veux, je peux rajouter ensuite un second module dédié à un autre truc que j'imbriquerai avec le premier dans la fenêtre de travail).

    Et donc ça me donne le code suivant
    Code Python : 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
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
     
    import sys
    from PyQt4.QtCore import *
    from PyQt4.QtGui import *
     
    # L'application Qt
    class QtAppli(QApplication):
    	"Fenêtre de l'application"
     
    	# Constructeur fenêtre
    	def __init__(
    			self,
    			argv):
     
    		# Message de contrôle
    		print "QtAppli (qt v%s, pyqt_v%s)" % (QT_VERSION_STR, PYQT_VERSION_STR)
     
    		# Appel constructeur de l'objet hértié
    		QApplication.__init__(self, argv)
     
    		# Attributs de l'application (c'est juste par habitude)
    		self.argv=argv
     
    		# Widget principale
    		self.wid=QMainWindow()
    		self.wid.setCentralWidget(QWidget(self.wid))
    		self.wid.statusBar()
     
    		# Titre
    		self.wid.setWindowTitle("Amusements avec Qt (v%s)" % QT_VERSION_STR)
     
    		# Un espace de rangement
    		layoutG=QVBoxLayout(self.wid.centralWidget())
    		layoutG.setMargin(5)
    		layoutG.setSpacing(5)
     
    		# Le module de saisie
    		myEdit=QtSaisie()
     
    		# Pour quitter
    		quit=QPushButton()
    		quit.setText("Quitter")
    		self.connect(quit, SIGNAL("clicked()"), self.wid, SLOT("close()"))
     
    		# Rangement des éléments dans le layout
    		layoutG.addWidget(myEdit)
    		layoutG.addWidget(quit)
    	# __init__()
     
    	# Affichage et lancement application
    	def run(self):
    		self.wid.show()
    		self.exec_()
    	# run()
    # class QtAppli
     
    # Mon module de saisie
    class QtSaisie(QFrame):
    	# Constructeur module
    	def __init__(self):
    		# Appel constructeur de l'objet hértié
    		QFrame.__init__(self)
     
    		# Un espace de rangement
    		layoutG=QVBoxLayout(self)
    		layoutG.setMargin(0)
    		layoutG.setSpacing(0)
     
    		# La zone saisie nom et son action
    		layoutNom=QGridLayout()
    		layoutNom.setMargin(0)
    		layoutNom.setSpacing(0)
    		labelNom=QLabel(QString.fromUtf8("Nom"))
    		self.__editNom=QLineEdit()
    		self.connect(
    			self.__editNom,
    			SIGNAL("textChanged(const QString &)"),
    			self.__slotEdited,
    		)
    		self.__action=QPushButton(QString.fromUtf8("GO !!!"))
    		self.__action.setDisabled(True)
    		self.connect(
    			self.__action,
    			SIGNAL("clicked()"),
    			self.__slotAction,
    		)
    		layoutNom.addWidget(labelNom, 0, 0, 1, 1)
    		layoutNom.addWidget(self.__editNom, 1, 0, 1, 1)
    		layoutNom.addWidget(self.__action, 1, 1, 1, 1)
     
    		# La zone saisie résultat (non modifiable de façon directe)
    		layoutResult=QVBoxLayout()
    		layoutResult.setMargin(0)
    		layoutResult.setSpacing(0)
    		labelResult=QLabel(QString.fromUtf8("Résultat"))
    		self.__editResult=QLineEdit()
    		self.__editResult.setReadOnly(True)
    		layoutResult.addWidget(labelResult)
    		layoutResult.addWidget(self.__editResult)
     
    		# Rangement des éléments dans le layout
    		layoutG.addLayout(layoutNom)
    		layoutG.addLayout(layoutResult)
    		layoutG.addItem(
    			QSpacerItem(
    				0, 0,
    				QSizePolicy.Minimum,
    				QSizePolicy.Expanding,
    			)
    		)
    	# __init__()
     
    	# Nettoyage (si besoin)
    	def clear(self):
    		# Nettoyage des zones
    		self.__nomEdit.clear()
    		self.__resultEdit.clear()
    	# clear()
     
    	# Quand la zone de saisie est modifiée
    	def __slotEdited(self, text):
    		# Le bouton n'est activé que si la zone n'est pas vide
    		self.__action.setEnabled(len(text) != 0)
    	# __slotEdited()
     
    	# Action sur le bouton
    	def __slotAction(self):
    		# La zone résultat récupère la zone nom
    		self.__editResult.setText(self.__editNom.text())
    	# __slotAction()
    # class QtSaisie
     
    # Pour tester la classe
    if __name__ == "__main__": 
    	# Application Qt qui va afficher ma petite saisie
    	Appli=QtAppli(sys.argv)
    	Appli.run()

    J'avais d'ailleurs eu une discussion à ce sujet avec un autre intervenant que tu pourras voir ici http://www.developpez.net/forums/d96...ndarditemmodel. Je l'ai conclue par un exemple de démo. Tu pourras voir une très grosse similitude entre cet exemple ci-dessus et l'exemple que j'avais proposé là-bas (en fait, j'ai simplement repris mon exemple de là-bas que j'ai adapté à ton cas)
    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]

  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
    Merci Tyrtamos

    Mais comment appeler un callback avec QPushButton (connect peut-être???).

    Merci Sve@r, on sent que tu es dans ton élément, mais j'ai pas suffisamment la maitrise de la syntaxe avec PyQt pour tout comprendre.

    J'aimerais maîtrisé en priorité la syntaxe, mais je sens qu'en POO, je vais en apprendre beaucoup avec toi

    J'ai remarqué que tu utilisais connect pour appeler une action, mais il ne reconnait pas la méthode connect chez moi.

    le callback est la fonction execute

    En rouge, ce que j'ai modifié dans le code, ça sera plus visible et compréhensible je pense

    dur, dur

    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
    # -*- coding: utf-8 -*-
    
    # Form implementation generated from reading ui file 'test.ui'
    #
    # Created: Mon Aug 16 23:07:21 2010
    #      by: PyQt4 UI code generator 4.7.4
    #
    # WARNING! All changes made in this file will be lost!
    
    from PyQt4 import QtCore, QtGui
    
    class Ui_Dialog(object):
        def setupUi(self, Dialog):
            Dialog.setObjectName("Dialog")
            Dialog.resize(400, 300)
            self.frame = QtGui.QFrame(Dialog)
            self.frame.setGeometry(QtCore.QRect(30, 20, 331, 80))
            self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
            self.frame.setFrameShadow(QtGui.QFrame.Raised)
            self.frame.setObjectName("frame")
            self.entry_1 = QtGui.QLineEdit(self.frame)
            self.entry_1.setGeometry(QtCore.QRect(120, 10, 113, 20))
            self.entry_1.setObjectName("entry_1")
            self.label_nom = QtGui.QLabel(self.frame)
            self.label_nom.setGeometry(QtCore.QRect(60, 10, 61, 20))
            self.label_nom.setObjectName("label_nom")
            self.entry_2 = QtGui.QLineEdit(self.frame)
            self.entry_2.setGeometry(QtCore.QRect(120, 40, 113, 20))
            self.entry_2.setObjectName("entry_2")
            self.bouton_go = QtGui.QPushButton(self.frame)
            self.bouton_go.setGeometry(QtCore.QRect(250, 10, 75, 23))
            self.bouton_go.setObjectName("bouton_go")
            self.connect(self.bouton_go, SIGNAL("clicked()"), self.execute)
            self.label = QtGui.QLabel(self.frame)
            self.label.setGeometry(QtCore.QRect(70, 40, 46, 13))
            self.label.setObjectName("label")
    
            self.retranslateUi(Dialog)
            QtCore.QMetaObject.connectSlotsByName(Dialog)
    
        def retranslateUi(self, Dialog):
            Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
            self.label_nom.setText(QtGui.QApplication.translate("Dialog", "Votre Nom :", None, QtGui.QApplication.UnicodeUTF8))
            self.bouton_go.setText(QtGui.QApplication.translate("Dialog", "GO!", None, QtGui.QApplication.UnicodeUTF8))
            self.label.setText(QtGui.QApplication.translate("Dialog", "Resultat :", None, QtGui.QApplication.UnicodeUTF8))
    
        def execute(self):
            nom=self.entry_1.text()
            if nom!="":
                self.entry_2.setText(nom)
    
    if __name__ == "__main__":
        import sys
        app = QtGui.QApplication(sys.argv)
        Dialog = QtGui.QDialog()
        ui = Ui_Dialog()
        ui.setupUi(Dialog)
        Dialog.show()
        sys.exit(app.exec_())

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    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 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Merci Tyrtamos

    Mais comment appeler un callback avec QPushButton (connect peut-être???).

    Merci Sve@r, on sent que tu es dans ton élément, mais j'ai pas suffisamment la maitrise de la syntaxe avec PyQt pour tout comprendre.
    Pourtant j'ai essayé de mettre un max de commentaires

    Citation Envoyé par fred1599 Voir le message
    J'ai remarqué que tu utilisais connect pour appeler une action, mais il ne reconnait pas la méthode connect chez moi.
    Oui. J'arrive pas trop bien à saisir ta façon d'écrire ton code. Le problème de ton UI_Dialog, c'est qu'il n'hérite d'aucun objet Qt. Donc il ne peut pas connaitre les méthodes de ces objets. Or la méthode connect appartient à un QObject (dont tous les objets Qt héritent).

    connect est LA fonction de base de Qt. Elle fait le lien entre signal et slot
    Un signal c'est une information envoyée par tout objet Qt. Chaque objet Qt envoie des signaux associés à son rôle quand un certain évènement se produit. Par exemple un bouton enverra un signal "pressed()" si on appuie dessus. Il enverra un signal "clicked()" si on clique dessus (me demande pas la différence entre les 2 actions). etc etc. Un QLineEdit enverra un signal "textChanged()" quand le texte change. Il enverra un signal "returnPressed()" si on appuie sur "return" quand on est dedans. etc etc.
    Ces signaux sont toujours émis lors de l'évènement même si personne ne s'en occupe. Et donc puisqu'ils sont émis, ben on peut les relier à une action grâce à connect (qui se trouve dans QtCore)
    La syntaxe de connect est
    connect(objet émetteur, signal à attraper, fonction_à_associer_au_signal)
    ou bien
    connect(objet émetteur, signal à attraper, objet récepteur, slot de l'objet)
    http://qt.developpez.com/doc/3.3/qobject.html#connect

    Un slot c'est une action déjà programmée pour certains objets. Par exemple un QPushButton possède un slot "toggle()" qui le fait changer d'état. Et donc si tu veux faire changer d'état un de tes boutons, inutile d'écrire la fonction puisqu'elle existe déjà.

    Bien entendu, les signaux émis par les objets et slots exécutés sur les objets sont associés au rôle de l'objet. Un QPushButton n'enverra jamais de signal "textChanged()". Et un QLineEdit n'a pas de slot "toggle()". Toutefois, rien ne t'empêche de programmer tes propres objets avec leur propres signaux. Cela se fait avec la fonction
    emit(SIGNAL("nom_que_tu_veux"), valeurs_a_transmettre_avec_le_signal...)

    Donc mon module "saisie" (qui hérite de QFrame lui-même héritant à l'origine de QObject et donc qui a accès à toutes les méthodes d'un QObject y compris connect) possède 2 zones d'édition et un bouton. Le bouton est désactivé au départ et la seconde zone d'édition est en lecture seule.
    Puis, j'associe le signal "textChanged" de la zone saisie nom à un slot perso que j'ai appelé "__slotEdited" mais j'aurais pu l'appeler "toto".
    Dans ce slot qui fait lui-aussi partie de mon objet et qui a donc accès à tous ses éléments (tout ce qui est associé à "self."), j'active/désactive le bouton en fonction de si la saisie nom est ou n'est pas vide. Ainsi j'évite le cas où on appuie avec une zone vide ce qui m'évite d'avoir à programmer le contrôle que toi t'as écrit (j'essaye toujours dans mes IHM de verrouiller un max les champs et boutons tant que tout n'est pas ok)
    Et ensuite j'associe le signal "clicked()" du bouton à un second slot qui recopie dans la seconde zone d'édition la valeur de la première. Rien de bien compliqué quoi. D'ailleurs tu fais pareil. Mais toi qui ne fait aucun héritage, te faut réécrire ta ligne 33 ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dialog.connect(self.bouton_go, QtCore.SIGNAL("clicked()"), self.execute)
    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]

  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
    Je garde ce post dans mes marques pages, tes explications sont parfaites, j'ai nettement mieux compris pyqt, je vais bien m'amuser.

    Merci pour tes explications

    J'arrive pas trop bien à saisir ta façon d'écrire ton code
    Peut-être parce-qu'il est créé avec Qt designer, non?

    Un slot c'est une action déjà programmée pour certains objets
    Ca je savais en lisant la doc...

    j'active/désactive le bouton en fonction de si la saisie nom est ou n'est pas vide
    Ah ba oui, je me doutais bien qu'il y avait une astuce pour éviter cela, se sont des réflexes, va falloir que je m'y habitue.

    Je pense que je devrais travailler sans Qtdesigner au départ, non?

    En tout cas je te remercie, ça m'a éclairci sur beaucoup de choses.

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    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 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Peut-être parce-qu'il est créé avec Qt designer, non?
    Je pense que je devrais travailler sans Qtdesigner au départ, non?
    Bah, chacun sa façon de voir. Il a certains avantages et beaucoup de progs ne jurent que par lui. Mais beaucoup de progs (dont moi) ne s'y sentent pas à l'aise.
    Moi j'ai toujours eu du mal avec ça alors j'ai toujours fait sans. Parfois je le lance pour faire rapidement un design et regarder comment il le code mais ensuite je refais tout à l'éditeur...
    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]

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/04/2004, 10h09
  2. Réponses: 2
    Dernier message: 20/02/2004, 08h47
  3. [ DB2] => [ORACLE] Récupération de données
    Par LeDid dans le forum DB2
    Réponses: 3
    Dernier message: 25/06/2003, 17h10
  4. Réponses: 13
    Dernier message: 20/03/2003, 08h11
  5. [XMLRAD] récupération de donnée
    Par Mitch79 dans le forum XMLRAD
    Réponses: 7
    Dernier message: 30/01/2003, 15h36

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