TKINTER文本自动填充
我正在尝试使用TKINTER为PYTHON做一个简单的个人IDE。我以前已经看过它,并有所有形式的语法突出显示到内置终端,但没有自动填充的问题。我知道您可以使用许多方法在入口中使用自动填充,但是在使用文本条目搜索自动填充后,我找不到任何东西。如果我能得到一些帮助,那就太好了!我正在寻找类似于这里看到的东西。
类似想法的代码:
from ttkwidgets.autocomplete import AutocompleteEntry
from tkinter import *
countries = [
'Antigua and Barbuda', 'Bahamas','Barbados','Belize', 'Canada',
'Costa Rica ', 'Cuba', 'Dominica', 'Dominican Republic', 'El Salvador ',
'Grenada', 'Guatemala ', 'Haiti', 'Honduras ', 'Jamaica', 'Mexico',
'Nicaragua', 'Saint Kitts and Nevis', 'Panama ', 'Saint Lucia',
'Saint Vincent and the Grenadines', 'Trinidad and Tobago', 'United States of America'
]
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#f25252')
frame = Frame(ws, bg='#f25252')
frame.pack(expand=True)
Label(
frame,
bg='#f25252',
font = ('Times',21),
text='Countries in North America '
).pack()
entry = AutocompleteEntry(
frame,
width=30,
font=('Times', 18),
completevalues=countries
)
entry.pack()
ws.mainloop()
I am trying to make a simple and personal IDE for python using tkinter. I have seen it done before and have everything form syntax highlighting to a built in terminal but have the problem of no autofill. I know that you can have autofill in entry's with many methods out there but after searching for autofill with Text entries I couldn't find anything. If I could get some help that would be fantastic! I am looking for something similar to what is seen here.
Code of similar idea:
from ttkwidgets.autocomplete import AutocompleteEntry
from tkinter import *
countries = [
'Antigua and Barbuda', 'Bahamas','Barbados','Belize', 'Canada',
'Costa Rica ', 'Cuba', 'Dominica', 'Dominican Republic', 'El Salvador ',
'Grenada', 'Guatemala ', 'Haiti', 'Honduras ', 'Jamaica', 'Mexico',
'Nicaragua', 'Saint Kitts and Nevis', 'Panama ', 'Saint Lucia',
'Saint Vincent and the Grenadines', 'Trinidad and Tobago', 'United States of America'
]
ws = Tk()
ws.title('PythonGuides')
ws.geometry('400x300')
ws.config(bg='#f25252')
frame = Frame(ws, bg='#f25252')
frame.pack(expand=True)
Label(
frame,
bg='#f25252',
font = ('Times',21),
text='Countries in North America '
).pack()
entry = AutocompleteEntry(
frame,
width=30,
font=('Times', 18),
completevalues=countries
)
entry.pack()
ws.mainloop()
Link to source code of AutocompleteEntry
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
基本算法非常简单:
您还可以为选项卡键添加一个绑定,该键可以查看是否有可见的自动完整文本,并将光标移至末端。
这是一个非常有黑客的示例来说明该原理,尽管它缺乏任何防弹,优化或处理边缘案例,例如回头架时,在单词中间打字,选择替代替换等等
。这不是实现自动完成的最佳方法,它仅说明了这些概念。
For a rudimentary autocomplete feature the basic algorithm is fairly simple:
You can also add a binding for the tab key that will see if there is autocomplete text that is visible, and move the cursor to the end.
This is a very hacked-together example to illustrate the principle, though it lacks any bulletproofing, optimizations, or handling of edge cases such as when backspacing, typing in the middle of a word, choosing alternate replacements, etc.
Just to be clear: this isn't the best way to implement autocomplete, it merely illustrates the concepts.
今天,我告诉您如何使用ListBox创建AutoCompeAtion输入框,而无需OOP。
如果您不知道OOP可能会为您提供帮助。
您可以创建自动完成输入框和搜索框,只有一条线差。
这是搜索栏。如果您将自动完成使用
代替IF(re.Search(值,项目,re.ignorecase))):
仅在searchbar&自动完成。
Today i tell you How you create Autocompeletion Entry box with Listbox without OOP.
If you not know about OOP that this Code may help you.
You can create autocompletion Entry box and Search box one code only one line Difference.
This is Search bar. If you Make AutoCompletion Use
in place of if (re.search(value, items, re.IGNORECASE)):
only re.match and re.search Defferane between searchbar & autocompletion.