如何在tkinter python的状态栏中显示行号和列号

Posted

技术标签:

【中文标题】如何在tkinter python的状态栏中显示行号和列号【英文标题】:How to show line number and column number in status bar in tkinter python 【发布时间】:2021-11-12 12:37:24 【问题描述】:

我想在状态栏中添加行号和列号,但我不明白如何添加。请帮助我,如何在 Python Tkinter 状态栏中显示行号和列号。

from tkinter import *

root = Tk()
root.title("Testing 6.py")
root.geometry('500x500')

StatusBar = Frame(root, width=10, borderwidth=1, relief=SUNKEN)
StatusBar.pack(side=BOTTOM, fill=X)
StatusBarlabel = Label(StatusBar, text='My Notepad')
StatusBarlabel.pack(side=LEFT)


root.mainloop()

【问题讨论】:

【参考方案1】:

据我了解,您希望显示光标当前在文本小部件中的位置(行:列),所以这里有一个关于如何做到这一点的最小示例:

from tkinter import Tk, Text, Label


def update_label():
    row, col = text.index('insert').split('.')
    label.config(text=f'row:col')
    root.after(100, update_label)


root = Tk()

text = Text(root)
text.pack(fill='both', expand=True)

label = Label(root, anchor='e')
label.pack(fill='x')
update_label()

root.mainloop()

基本上只是有一个循环,它将使用.index 方法和"insert" 的值不断获取当前索引,它返回当前光标所在位置的索引,然后循环并配置标签的文本以显示这一点给用户。

来源:

Text widget .index method (you will have to find it between the others tho) Text widget indicies

【讨论】:

感谢您帮助我,我真的很感谢您再次工作,非常感谢。 @SyedAhsan9682 请参阅What to do when someone answers my question? 和How does accepting an answer work?,这将有助于未来的读者,并允许将其他问题标记为重复。

以上是关于如何在tkinter python的状态栏中显示行号和列号的主要内容,如果未能解决你的问题,请参考以下文章

在 OS X 菜单栏中更改 Tkinter 应用程序的标题

如何在 guizero/tkinter python 3 中将图标添加回任务栏?

多行文本框:在状态栏中显示当前行/字符索引

python tkinter 如何将tk界面中标题栏中的tk红色字样去掉,或者换成其他的字

如何使用 python 3 和 tkinter 模块从右到左对齐菜单栏中的项目?

Tkinter,Windows:如何在没有标题栏的 Windows 任务栏中查看窗口?