2016-05-14 357 views
0
[Person: Ahmet] is very handsome . He is working at [Organization: Zara] , their family live in [Location: Istanbul] 


Person: 1 
Location: 1 
Organization: 1 

我有这样的文本输出,我显示在tkinter文本中。 我想改变我的背景颜色这样的:Tkinter - Python:改变背景颜色

[Person: anyword] # yellow 
[Organization: anyword] #green 
[Location: anyword] #orange 

我怎样才能创建一个标签的配置?

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
import os 
import sys 
import os.path 
import io 
import subprocess as sub 

import Tkinter 
from Tkinter import * 
import csv 
import subprocess 

from tkFileDialog import * 


class App(object): 
    def __init__(self, master): 
     frame = Frame(master) 
     frame.pack() 
     self.text = Text() 
    self.text1 = Text() 
    self.text.pack() 
    self.text1.pack() 

     menu = Menu(master) 
     root.config(menu=menu) 
     # file menu 
     filemenu = Menu(menu, tearoff=0) 
     menu.add_cascade(label="Browse Text File", menu=filemenu) 
     filemenu.add_command(label="New") 
     filemenu.add_command(label="Open", command=self.file_open) 
     filemenu.add_command(label="Save", command=self.file_save)   
     filemenu.add_separator() 
     filemenu.add_command(label="Exit", command=self.do_exit) 

    def file_open(self): 
     """open a file to read""" 
     # optional initial directory (default is current directory) 
     initial_dir = "C:\Temp" 
     # the filetype mask (default is all files) 
     mask = \ 
     [("Text and Python files","*.txt"), 
     ("HTML files","*.htm"), 
     ("All files","*.*")]   
     fin = askopenfile(initialdir=initial_dir, filetypes=mask, mode='r') 
     text = fin.read() 
    proc = subprocess.Popen(['python', 'ner.py', str(askopenfilename())], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 
     if text != None: 
      self.text.delete(0.0, END) 
      self.text.insert(END,text) 
     self.text1.delete(0.0, END) 
     self.text1.insert(END,proc.communicate()[0]) 



    def file_save(self): 
     """get a filename and save the text in the editor widget""" 
     # default extension is optional, here will add .txt if missing 
     fout = asksaveasfile(mode='w', defaultextension=".txt") 
     text2save = str(self.text.get(0.0,END)) 
     fout.write(text2save) 
     fout.close() 

    def do_exit(self): 
     root.destroy() 



root = Tk() 
root.title("Named Entity Recognizer (TR)") 
app = App(root) 
root.mainloop() 

首先我显示原始文本,然后显示找到的类型的编辑文本。我知道它适用于标签配置,但我如何添加括号内的单词。感谢您的帮助。

text.tag_config( “[人:??]”,背景= “黄色”,前景= “红”)

回答

0

从interwebs复制这个地方

def color_text(edit, tag, word, fg_color='black', bg_color='white'): 
    # add a space to the end of the word 
    word = word + " " 
    edit.insert('end', word) 
    end_index = edit.index('end') 
    begin_index = "%s-%sc" % (end_index, len(word) + 1) 
    edit.tag_add(tag, begin_index, end_index) 
    edit.tag_config(tag, foreground=fg_color, background=bg_color) 


# pick word to be colored 
myword1 = 'Jack' 
myword2 = 'Jill' 
# create a list of unique tags 
tags = ["tg" + str(k) for k in range(len(word_list))] 
for ix, word in enumerate(word_list): 
    # word[:len(myword)] for word ending with a punctuation mark 
    if word[:len(myword1)] == myword1: 
     color_text(edit, tags[ix], word, 'blue') 
    elif word[:len(myword2)] == myword2: 
     color_text(edit, tags[ix], word, 'red', 'yellow') 
    else: 
     color_text(edit, tags[ix], word) 
0

你做什么在这里是创建一个Tkinter帆布。我不知道在Python 2,因为我用3确切的语法,但只会造成轻微的变化:

from Tkinter import * 
root = Tk() 

c = Canvas(root, width=500, height=500, bg='red') #change the color at bg 
c.pack() 
c.mainloop() 

您可以根据自己的输出,更改变了画布颜色。它说bg='red',这就是你改变颜色的地方。 请告诉我,如果我有python 2不正确的语法,希望这有助于!