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 :

TextEdit-Aller à une ligne donnée


Sujet :

PyQt Python

  1. #1
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut TextEdit-Aller à une ligne donnée
    Tout est dans le titre. Si quelqu'un connait la méthode...

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035

  3. #3
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Merci pour le lien. J'essaie et je poste ici si je trouve quelque chose de concluant.

  4. #4
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Je regarderais cela plus attentivement dans la semaine. Avec les méthodes de la doc. officielle (que j'ai vite parcourue) il semblerait qu'il faille partir du début du document, puis aller à la fin de la 1ère ligne, puis ensuite passer au caractère suivant pour changer de ligne, et ainsi de suite. Est-ce bien ça ou ai-je raté quelque chose ?

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par rambc Voir le message
    il semblerait qu'il faille partir du début du document, puis aller à la fin de la 1ère ligne, puis ensuite passer au caractère suivant pour changer de ligne, et ainsi de suite. Est-ce bien ça ou ai-je raté quelque chose ?
    caractère suivant pour changer de ligne ?? c'est a dire?

    Sinon oui il me semble que c'est le principe

  6. #6
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Citation Envoyé par yan Voir le message
    caractère suivant pour changer de ligne ?? c'est a dire?
    Je vais à la fin de la ligne (il y a une méthode pour), ensuite j'avance d'un caractère pour passer à la ligne suivante.

    C'est un peu dommage qu'on ne puisse pas faire cela directement...

  7. #7
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Voici une méthode possible.

    Fichier window_TextEdit_Plus.py créé via Qt Designer.
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    # -*- coding: utf-8 -*-
     
    # Form implementation generated from reading ui file 'C:\Documents and Settings\Christophe\Mes documents\2,pyBaNaMa\Deb_PythonEtPyQT\CodesProjets\04-Proj4_MiniEditHTML\TextEdit_GoToLine\window_TextEdit_Plus.ui     '
    #
    # Created: Sun Mar 29 17:54:10 2009
    #      by: PyQt4 UI code generator 4.4.4
    #
    # WARNING! All changes made in this file will be lost!
     
    from PyQt4 import QtCore, QtGui
     
    class Ui_window_TextEdit_Plus(object):
        def setupUi(self, window_TextEdit_Plus):
            window_TextEdit_Plus.setObjectName("window_TextEdit_Plus")
            window_TextEdit_Plus.resize(516, 397)
            self.centralwidget = QtGui.QWidget(window_TextEdit_Plus)
            self.centralwidget.setObjectName("centralwidget")
            self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
            self.verticalLayout.setObjectName("verticalLayout")
            self.gridLayout = QtGui.QGridLayout()
            self.gridLayout.setObjectName("gridLayout")
            self.label_Trouver = QtGui.QLabel(self.centralwidget)
            self.label_Trouver.setObjectName("label_Trouver")
            self.gridLayout.addWidget(self.label_Trouver, 0, 0, 1, 1)
            self.lineEdit_texteAChercher = QtGui.QLineEdit(self.centralwidget)
            self.lineEdit_texteAChercher.setObjectName("lineEdit_texteAChercher")
            self.gridLayout.addWidget(self.lineEdit_texteAChercher, 0, 1, 1, 1)
            self.verticalLayout.addLayout(self.gridLayout)
            self.textEdit_Principal = QtGui.QTextEdit(self.centralwidget)
            self.textEdit_Principal.setObjectName("textEdit_Principal")
            self.verticalLayout.addWidget(self.textEdit_Principal)
            window_TextEdit_Plus.setCentralWidget(self.centralwidget)
            self.menubar = QtGui.QMenuBar(window_TextEdit_Plus)
            self.menubar.setGeometry(QtCore.QRect(0, 0, 516, 21))
            self.menubar.setObjectName("menubar")
            self.menuFichier = QtGui.QMenu(self.menubar)
            self.menuFichier.setObjectName("menuFichier")
            window_TextEdit_Plus.setMenuBar(self.menubar)
            self.statusbar = QtGui.QStatusBar(window_TextEdit_Plus)
            self.statusbar.setObjectName("statusbar")
            window_TextEdit_Plus.setStatusBar(self.statusbar)
            self.actionOuvrir = QtGui.QAction(window_TextEdit_Plus)
            self.actionOuvrir.setObjectName("actionOuvrir")
            self.actionRechercher = QtGui.QAction(window_TextEdit_Plus)
            self.actionRechercher.setObjectName("actionRechercher")
            self.actionRemplacer = QtGui.QAction(window_TextEdit_Plus)
            self.actionRemplacer.setObjectName("actionRemplacer")
            self.menuFichier.addAction(self.actionOuvrir)
            self.menuFichier.addAction(self.actionRechercher)
            self.menubar.addAction(self.menuFichier.menuAction())
     
            self.retranslateUi(window_TextEdit_Plus)
            QtCore.QMetaObject.connectSlotsByName(window_TextEdit_Plus)
     
        def retranslateUi(self, window_TextEdit_Plus):
            window_TextEdit_Plus.setWindowTitle(QtGui.QApplication.translate("window_TextEdit_Plus", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
            self.label_Trouver.setText(QtGui.QApplication.translate("window_TextEdit_Plus", "Ligne", None, QtGui.QApplication.UnicodeUTF8))
            self.menuFichier.setTitle(QtGui.QApplication.translate("window_TextEdit_Plus", "Actions", None, QtGui.QApplication.UnicodeUTF8))
            self.actionOuvrir.setText(QtGui.QApplication.translate("window_TextEdit_Plus", "Ouvrir", None, QtGui.QApplication.UnicodeUTF8))
            self.actionOuvrir.setShortcut(QtGui.QApplication.translate("window_TextEdit_Plus", "Ctrl+O", None, QtGui.QApplication.UnicodeUTF8))
            self.actionRechercher.setText(QtGui.QApplication.translate("window_TextEdit_Plus", "Rechercher", None, QtGui.QApplication.UnicodeUTF8))
            self.actionRechercher.setShortcut(QtGui.QApplication.translate("window_TextEdit_Plus", "Ctrl+F", None, QtGui.QApplication.UnicodeUTF8))
            self.actionRemplacer.setText(QtGui.QApplication.translate("window_TextEdit_Plus", "Remplacer", None, QtGui.QApplication.UnicodeUTF8))
            self.actionRemplacer.setShortcut(QtGui.QApplication.translate("window_TextEdit_Plus", "Ctrl+R", None, QtGui.QApplication.UnicodeUTF8))
     
     
    if __name__ == "__main__":
        import sys
        app = QtGui.QApplication(sys.argv)
        window_TextEdit_Plus = QtGui.QMainWindow()
        ui = Ui_window_TextEdit_Plus()
        ui.setupUi(window_TextEdit_Plus)
        window_TextEdit_Plus.show()
        sys.exit(app.exec_())
    Fichier principal.
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    # -*- coding: utf-8 -*-
    #!/usr/bin/env python
     
    # On importe les bibliothèques que nous allons utiliser.
    import sys
    from PyQt4 import QtCore, QtGui
     
    # La biblothèque suivante sera utilisé pour récupéréer sans ecmobre le texte brut d'un fichier.
     
    # On importe notre application.
    from window_TextEdit_Plus import Ui_window_TextEdit_Plus
     
     
    # # # # # # # # # # # # # # # # # # # # # #
    # Comportement de la boîte de dialogue.   DEBUT
     
    class window_TextEdit_Plus(QtGui.QMainWindow, Ui_window_TextEdit_Plus):
        def __init__(self):
            QtGui.QMainWindow.__init__(self)
            Ui_window_TextEdit_Plus.__init__(self)
            self.setupUi(self)
     
            self.connect(self.actionOuvrir, QtCore.SIGNAL("triggered()"),self.ouvrirFichier)
            self.connect(self.actionRechercher, QtCore.SIGNAL("triggered()"),self.rechercher)
     
    # Mise en forme perso. Trouvé grâce à Qt Designer Voir pallette.
            palette = QtGui.QPalette()
            brush = QtGui.QBrush(QtGui.QColor(85, 255, 127))
            brush.setStyle(QtCore.Qt.SolidPattern)
            palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Highlight, brush)
            brush = QtGui.QBrush(QtGui.QColor(0, 0, 255))
            brush.setStyle(QtCore.Qt.SolidPattern)
            palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.HighlightedText, brush)
            self.textEdit_Principal.setPalette(palette)
     
    # =====================
    # Ouverture d'un fichier
     
        def ouvrirFichier(self) :
            self.cheminFichier = QtGui.QFileDialog.getOpenFileName(self, self.tr("Choisir le fichier"),QtCore.QDir.currentPath(),"");
     
    # Un chemin a été choisi.
            if self.cheminFichier <> '':
    # On récupère le texte brut du fichier. PB PB PB PB PB PB PB PB PB PB PB PB avec TextEdit_Plus.py
                f=open(self.cheminFichier)
                textFichier= f.read()
    # On affioche le texte brut du fichier dans le Text Edit.
                self.textEdit_Principal.setText(textFichier)
     
     
    # =====================
    # Recherche de la ligne
        def rechercher(self) :
    # Méthode donnée sur la liste de PyQt.
            try :
                numLigne = int(self.lineEdit_texteAChercher.text())
                self.textEdit_Principal.moveCursor(QtGui.QTextCursor.Start, QtGui.QTextCursor.MoveAnchor)
                for l in range(numLigne-1): 
                    self.textEdit_Principal.moveCursor(QtGui.QTextCursor.Down, QtGui.QTextCursor.MoveAnchor) 
            except :
                pass
     
    # Comportement de la boîte de dialogue.   FIN
    # # # # # # # # # # # # # # # # # # # # #
     
     
    # # # # # # # # # # # # # #
    # Lancement de l'application.
     
    if __name__ == "__main__":
        app = QtGui.QApplication(sys.argv)
        TextEdit_Plus = window_TextEdit_Plus()
        TextEdit_Plus.show()
        sys.exit(app.exec_())
    Ce n'est pas parfait mais le principe de déplacement y est.

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

Discussions similaires

  1. Macro permettant d'aller à une ligne donnée
    Par jbggg dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/03/2018, 14h28
  2. Réponses: 12
    Dernier message: 05/06/2008, 15h17
  3. lire une ligne donnée
    Par capucine1983 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 15/07/2007, 02h00
  4. [MySQL] Se placer à une ligne donnée
    Par Oberown dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/09/2006, 10h23
  5. Réponses: 2
    Dernier message: 20/04/2006, 16h03

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