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 _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org https://mail.python.org/mailman/listinfo/tkinter-discuss