Re: Transferring tags from one Text() to another

ingo <[email protected]>
Newsgroups gmane.comp.python.tkinter
Message-ID <[email protected]>
Op 2016-02-11 om 00:30 schreef Bob Greschke:
> I write stuff to a Text() and some words and lines are different colors or are links (binds) using Tags. I can Text().get(0.0, END), get all of the text, then insert that in another Text() to make a copy, but how do I get/transfer the other "formatting" info? The binds aren't real important, but the different colored text would be nice.
>

Not fully fleshed out, just an idea, I Text().dump() the selection and 
change the list so it can be reinserted easily. Currently not dealing 
with marks images etc.


logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.DEBUG)
logger.addHandler(stream_handler)

def parse_dump(self, dump):
     """Parse the list, created by tkinter text dump()"""
     keystack = []
     output = []
     for section in dump:
         logger.debug("{0}".format(section))
         key, tag, index = section
         if key == 'tagon':
             keystack.insert(0, tag)
             logger.debug("Insert Tag: {}".format(tag))
         elif key == 'tagoff':
             try:
                 keystack.pop(keystack.index(tag))
                 logger.debug("Pop Tag: {}".format(tag))
             except ValueError as e:
                 pass #!!!!
         elif key in ('window', 'image', 'mark'):
             pass
         else: #== 'text'
             output.append((tag, tuple(keystack)))
         logger.debug("KeyStack: {}".format(keystack))
     return output

def insert_dump(self, pdump):
     """Insert the parsed text dump at given position"""
     for line in pdump:
         logger.debug("{} |{}".format(line[0],line[1]))
         self.insert('end', line[0], line[1])

Ingo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.