StyledTextCtrl / RichTextCtrl: Markierte Zeilen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
fred.reichbier
User
Beiträge: 155
Registriert: Freitag 29. Dezember 2006, 18:27

Hallo,

wie kann ich in einem StyledTextCtrl eine Liste der Zeilennummern aller markierten Zeilen erhalten?
Ziel wäre es, die markierten Zeilen einzurücken oder auszurücken. Ich weiss, dass es dafür Tab() gibt, aber die macht nicht wirklich, was ich will.
Ich habe auch schon selber einen Ansatz mit GetSelection, der funktioniert aber nicht wirklich.
Für einen guten Ansatz oder für einen Codeschnipsel wäre ich sehr dankbar :D

MfG,

Fred
ramin
User
Beiträge: 8
Registriert: Sonntag 15. Mai 2005, 15:07

Hallo,

ich vermute

Code: Alles auswählen

(selStart,selEnd)=self.GetSelection()
hast Du schon probiert ?

Es geht also darum festzustellen, welche Zeilen zwischen selStart und selEnd liegen, oder?

Grüße
ramin
ramin
User
Beiträge: 8
Registriert: Sonntag 15. Mai 2005, 15:07

Also mal ein Versuch:

Code: Alles auswählen

#! /usr/bin/env python
# -*- coding: ISO-8859-1 -*-

s="""Hallo das ist ein Test,

wie er auch in der 
Realität vorkommen könnte.


"""

def selectionToLines(selStart,selEnd):
    ar=s.split('\n')
    if __debug__:
        print '-'*80
        n=0
        for i in ar:
            print n,'>',i
            n+=1
        print 'looking for:'
        print s[selStart:selEnd] 
    arRet=[]
    l=0
    numLine=0
    bBeginFound=False
    for i in ar:
        l+=len(i)
        if l>selStart:
            bBeginFound=True
        if bBeginFound:
            arRet.append(numLine)
        if l>selEnd:
            break
        numLine+=1
    return arRet

print selectionToLines(0,3)
print selectionToLines(0,30)
print selectionToLines(0,300)
print selectionToLines(30,300)
Alles Gute
Ramin
Antworten