Partage
  • Partager sur Facebook
  • Partager sur Twitter

QlineEdit / Recupérer la valeur après un clic bout

Sujet résolu
    6 février 2013 à 11:44:12

    Bonjour,

    Je suis un grand débutant en codage, mais je ne manque pas de volonté (surtout après la lecture du tuto python du site du zero. tout semble facile qd on lit un tuto...). J'ai essayé de faire des recherches sur le forum, mais la fameuse erreur 404 apparait à chaque fois que je clique sur un lien de recherche. Du coup, je m'adresse directement a vous :)

    Voilà mon soucis. J'aimerai faire un petit logiciel de gestion de tournoi pour joueurs d'échecs. Concernant toute la théorie d'organisation, j'ai tout. Ce qui m'embete, c'est le passage de l'interface graphique vers mes fonctions.

    Donc voici un problème qui me parrait "évident" mais impossible de trouver la réponse sur les forums (je n'ai ss doute pas encore les mots clés) :

    Je me suis fait une fenetre avec PyQt, et dans cette fenetre, il y a une zone de texte. Quand je clic sur le bouton d'à côté, j'aimerai récupérer la valeur inscrite par l'utilisateur dans la case associée au QLineEdit pour pouvoir l'utiliser dans mes sous programmes. Mon problème, c'est que j'ai essayé pelin de manières différentes pour récupérer l'infos, mais je ne trouve pas :( Help

    Le code :

    # -*- coding: utf-8 -*-
    
    from PyQt4 import QtCore, QtGui
    
    try:
        _fromUtf8 = QtCore.QString.fromUtf8
    except AttributeError:
        _fromUtf8 = lambda s: s
    
    class Ui_Form(object):
        def setupUi(self, Form):
            Form.setObjectName(_fromUtf8("Form"))
            Form.resize(303, 166)
            self.gridLayout_2 = QtGui.QGridLayout(Form)
            self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
            self.gridLayout = QtGui.QGridLayout()
            self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
            self.label = QtGui.QLabel(Form)
            self.label.setObjectName(_fromUtf8("label"))
            self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
            self.lineEdit = QtGui.QLineEdit(Form)
            self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
            self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1)
            self.pushButton = QtGui.QPushButton(Form)
            self.pushButton.setObjectName(_fromUtf8("pushButton"))
            self.gridLayout.addWidget(self.pushButton, 1, 1, 1, 1)
            self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
    
            self.retranslateUi(Form)
            QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")),self.lineEdit.copy)
            QtCore.QMetaObject.connectSlotsByName(Form)
    
        def retranslateUi(self, Form):
            Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))
            self.label.setText(QtGui.QApplication.translate("Form", "TextLabel", None, QtGui.QApplication.UnicodeUTF8))
            self.lineEdit.setText(QtGui.QApplication.translate("Form", "test", None, QtGui.QApplication.UnicodeUTF8))
            self.pushButton.setText(QtGui.QApplication.translate("Form", "PushButton", None, QtGui.QApplication.UnicodeUTF8))
    
        
    
    
    
    
    if __name__ == "__main__":
        import sys
        app = QtGui.QApplication(sys.argv)
        Form = QtGui.QWidget()
        ui = Ui_Form()
        ui.setupUi(Form)
        Form.show()
        sys.exit(app.exec_())
    
    



    -
    Edité par lelorrain7 6 février 2013 à 12:36:12

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      6 février 2013 à 14:10:15

      Il est pas conseillé d'utiliser qtdesigner quand on débute avec pyqt.

      Il est pas conseillé d'utiliser pyqt avant d'être certains d'avoir le maximum de bases en python.

      Bref comprends-tu seulement le code ressorti par pyuic4?

      Tu as toutes les informations ici, lis bien, c'est un gros pavé, mais tout y est.

      Si tu ne sais pas :

      • Où le placer
      • Comment exécuter la méthode d'une classe
      • Lire ce genre de code
      • Lire la doc pyqt

      C'est que t'as pas les bases suffisantes, aller trop vite n'est pas toujours bénéfique (d'ailleurs jamais).

      Bon courage pour la suite.

      • Partager sur Facebook
      • Partager sur Twitter
        6 février 2013 à 15:10:16

        Pas très encourageant comme message :(

        Si j'utilise pyqt, c'est parce que c'est ce qui est utilisé par d'autre dans l'asso, et du coup je préfaire homogénéiser.

        Concernant ton lien http://doc.trolltech.com/3.3/qlineedit.html le wiki fonctionne, mais pas la suite, j'ai déjà essayé d'y aller :s

        Je comprends à peu près le code. j'arrive à me débrouiller avec les boutons pour executer mes programmes, etc. Ce qu'il me faut juste c'est le mot / bout de code qui me permette d'extraire l'info. Dans les autres langages de prog que j'utilisais, je savais faire. Là je commence le python... il faudrait juste que je vois comment faire pour comprendre certaines subtilités, c'est tout.

        MAis bon, merci qd meme pour tes conseils

        -
        Edité par lelorrain7 6 février 2013 à 15:11:01

        • Partager sur Facebook
        • Partager sur Twitter
          6 février 2013 à 16:44:50

          Bon, ça y est, ça marche !! In ne fallait pas grand chose finalement, pas besoin d'être défétiste :p

          Il suffit de remplacer les lignes de codes suivantes sur la fin. Bon alors en fait, il suffit de comprendre qu'il y a deux étapes :

          1) on crée la géométrie

          2) on crée des fonctions qui permettent d'aspirer les infos de cette interface.

          Mon problème c'est que j'essayais d'extraire directement dans la création. On pouvait le faire dans les anciens lagages que j'utilisais. Mais voilà, c'est résolu !

          ...
                 self.retranslateUi(Form)
                  QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")),self.ExtractValueOfMyText)
                  QtCore.QMetaObject.connectSlotsByName(Form)
          
              def retranslateUi(self, Form):
                  Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))
                  self.label.setText(QtGui.QApplication.translate("Form", "TextLabel", None, QtGui.QApplication.UnicodeUTF8))
                  self.lineEdit.setText(QtGui.QApplication.translate("Form", "test", None, QtGui.QApplication.UnicodeUTF8))
                  self.pushButton.setText(QtGui.QApplication.translate("Form", "PushButton", None, QtGui.QApplication.UnicodeUTF8))
          
              def ExtractValueOfMyText(self):
                  ExtractedText = self.lineEdit.text()
                  print ExtractedText    
          
          
          
          
          if __name__ == "__main__":
              import sys
              app = QtGui.QApplication(sys.argv)
              Form = QtGui.QWidget()
              ui = Ui_Form()
              ui.setupUi(Form)
              Form.show()
              sys.exit(app.exec_())


          • Partager sur Facebook
          • Partager sur Twitter

          QlineEdit / Recupérer la valeur après un clic bout

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown