在python中制作一个更简单的python版本,我希望能够在文本框中显示字符串中两个字符之间的文本
我尝试过类似shell.get("1.7", '"')
这样的代码,但收到一条错误消息,说_tkinter.TclError: bad text index """
这是我当前代码的一小段:
from tkinter import *
import datetime
def run():
print("File run " + str(datetime.datetime.now()))
line = shell.get("1.0", END)
#dont worry about ^ line for now (line 2 in run())
if 'print "' in line:
print (shell.get('1.7', '"'))
shell = ScrolledText(root, width=167, height=42)
shell.grid(column=0, row=1)
这是外壳中的内容
print "Hello World"
我只想要类似print (shell.get(1.7, "<nearest quotation mark>")
答案 0 :(得分:1)
tkinter文本小部件具有一个search
method,您可以使用它来查找从索引开始的模式的首次出现。
根据您的情况,您可能希望找到索引"
之后的第一个1.7
。为此,您可以运行:
shell.search('"', '1.7')
集成到您的代码中将是:
from tkinter import *
from tkinter.scrolledtext import ScrolledText
import datetime
def run(event=None):
print('File run ' + str(datetime.datetime.now()))
line = shell.get("1.0", END)
if 'print "' in line:
print (shell.get('1.7', shell.search('"', '1.7')))
root = Tk()
shell = ScrolledText(root, width=167, height=42)
shell.insert('1.0', 'print "print this" do not print this')
shell.grid(column=0, row=1)
shell.bind('<Button-1>', run)
root.mainloop()
请注意,出于演示目的,我将run
函数绑定到了鼠标左键。