因此,我制作了一个文本编辑器,并通过在我的代码中键入tag\u add()
来修复我以前的问题
#Importing modules
from tkinter import *
#Main Window
Window = Tk()
Window.geometry("400x550")
Window.minsize(400, 550)
##Main Script
#Defs
def check_syntax(event=None):
#Tag adds
#Import syntax
text.tag_add("import", "1.0", "1.6")
#Tag configures
text.tag_configure("import", foreground="yellow")
"""
def check_syntax(event=None):
offset = '+%dc' % len("import")
pos_start = text.search("import", 1.0, END)
pos_end = pos_start + offset
text.tag_add('import', pos_start, pos_end)
#text.tag_remove("import", 1.0, END)
def del_for_check_syntax(event=None):
text.tag_remove("import", 1.0, END)"""
#Main frame
main = Frame(Window)
#Main text widget
text = Text(main, bd=0, highlightthickness=0, borderwidth=0, bg="#323232", fg="white", font=("Hack Italic", 20), undo=True)
#Menu bar
#Mainmenu
mainmenu = Menu(Window)
#Filemenu
filemenu = Menu(mainmenu, tearoff=0)
#Commands
#Filemenu commands
filemenu.add_command(label="New")
#Configs
text.config(width=55, height=35)
main.config(width=55, height=35)
#Tag config for coloring syntax
#text.tag_configure("import", foreground="yellow")
#Highlighting syntax
text.bind("<Return>", check_syntax)
#text.search()
Window.update()
#Binds
#text.bind("<Return>", check_syntax)
text.bind("<Key>", lambda: print("Unsaved"))
#Packs and places
#main.place(anchor="c", rely=.5, relx=.5)
main.pack(expand=True, fill=BOTH, side="right")
text.pack(expand=True, fill=BOTH)
#Update window
Window.update()
#Window.mainloop()
Window.mainloop()
问题
tkinter仅突出显示第1行中的导入
,而不突出显示下一行
问题
是否有办法对空格进行结束索引,我的意思是结束索引在空格上,因此每次用户在文本小部件中键入import
时,下一行也会高亮显示,而不仅仅是一行,然后在文本小部件中使用import
在新空格中开始索引
编辑
谢谢@AST,它起作用了,但是为什么其他语法也突出显示了呢?,我指的是“进口”以外的词
所以,根据我对你问题的理解,我已经临时编写了代码,请检查并告诉我这是否是你的要求。
#Importing modules
from tkinter import *
#Main Window
Window = Tk()
Window.geometry("400x550")
Window.minsize(400, 550)
##Main Script
#Defs
def check_syntax(event=None):
#Tag adds
#Import syntax
current_line = text.index(INSERT).split(".")[0]
text.tag_add("import", f'{current_line}.0', f'{current_line}.6')
#Tag configures
text.tag_configure("import", foreground="yellow")
"""
def check_syntax(event=None):
offset = '+%dc' % len("import")
pos_start = text.search("import", 1.0, END)
pos_end = pos_start + offset
text.tag_add('import', pos_start, pos_end)
#text.tag_remove("import", 1.0, END)
def del_for_check_syntax(event=None):
text.tag_remove("import", 1.0, END)"""
#Main frame
main = Frame(Window)
#Main text widget
text = Text(main, bd=0, highlightthickness=0, borderwidth=0, bg="#323232", fg="white", font=("Hack Italic", 20), undo=True)
#Menu bar
#Mainmenu
mainmenu = Menu(Window)
#Filemenu
filemenu = Menu(mainmenu, tearoff=0)
#Commands
#Filemenu commands
filemenu.add_command(label="New")
#Configs
text.config(width=55, height=35)
main.config(width=55, height=35)
#Tag config for coloring syntax
#text.tag_configure("import", foreground="yellow")
#Highlighting syntax
text.bind("<space>", check_syntax)
#text.search()
Window.update()
#Binds
#text.bind("<Return>", check_syntax)
text.bind("<Key>", lambda out = "Unsaved": print(out))
#Packs and places
#main.place(anchor="c", rely=.5, relx=.5)
main.pack(expand=True, fill=BOTH, side="right")
text.pack(expand=True, fill=BOTH)
#Update window
Window.update()
#Window.mainloop()
Window.mainloop()
这里我使用了文本。索引(插入)
以获取插入光标在文本小部件中的位置。你可以参考这个http://effbot.org/tkinterbook/text.htm#:~:text=索引用于点、线/列(“线”。了解更多信息。然后使用f“”
将当前\u行
变量插入字符串,因此,现在索引会根据您所在的行进行动态更改。此外,您错误地使用了lambda
函数,语法为lambda arguments:expression
。
问题内容: 我想将表列更改为可为空。我用过了: 这会导致出现错误。正确的语法是什么? 问题答案: 假设(基于您之前的问题): 用您的实际数据类型替换。
问题内容: 我需要状态从改变到的,当一些事件发生。 这是我的按钮的当前状态,当前已禁用: Anyonne可以帮助我该怎么做吗? 问题答案: 您只需将您按钮的设置为: 要么 此代码将在事件的回调中使用,该事件将导致Button启用。 另外,正确的代码应为: 该方法的回报,且将其分配给。您实际上想要将返回值分配给,然后在下面的行中使用。
问题内容: 我正在使用来更新旧的应用,并且当没有广告时,它会滑出屏幕。出现广告时,它会在屏幕上滑动。基本的东西。 旧样式,我将帧设置在动画块中。新样式,我对自动布局约束有一个确定Y位置,在这种情况下,它是距父视图底部的距离,并修改常量: 横幅完全按预期移动,但没有动画。 更新:我重新观看了WWDC 12讲的“掌握自动布局的最佳实践” ,其中涵盖了动画。它讨论了如何使用CoreAnimation更新
问题内容: 自几个月前以来,我的集群每天都有一个索引,每个索引有5个分片(默认),并且由于分片太多(超过1000个),我无法在整个集群上运行查询。 文档ID是自动生成的。 如何将索引合并为一个索引,处理有冲突的ID(甚至可能发生冲突)并更改类型? 我正在使用ES版本5.2.1 问题答案: 仅在使用ELK堆栈几个月并逐日创建索引后才可见的常见问题。这里有一些选项可以解决性能问题。 首先,您可以用来限
问题内容: 如何使用T-SQL更改表中的一个属性以允许为null(不为null-> null)?也许更改表? 问题答案:
问题内容: 根据以下我用于常规mysql的代码,如何将其转换为使用mysqli? 像更改为一样简单吗? 问题答案: 首先要做的可能是将每个函数调用都替换为等效函数,至少在您愿意使用过程式API的情况下-考虑到您已经有一些基于MySQL API的代码,这将是更简单的方法是一种程序性的。 为了解决这个问题,“ MySQLi扩展功能摘要” 绝对是有用的。 例如: 将被替换 将被替换为和/或,具体取决于上