2016-05-14 356 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不正確的語法,希望這有助於!