我已经准备好了,只是不知道如何在Tkinter文本小部件中交换两行。它被禁用并由其他小部件填充,所以我给了禁用/未聚焦文本小部件一些功能,有3个按钮:上移、下移和删除。我已经删除了工作,但不知道如何让另外两个工作。现在我正在处理两个引用要修改的文本行的开始和结尾的值:self.line_start
和{
到目前为止我得到的是:
def Move_Up(self):
self.TextWidg.config(state='normal')
#swap this line with the line above it
self.TextWidg.config(state='disabled')
def Move_Down(self):
self.TextWidg.config(state='normal')
#swap this line with the line below it
self.TextWidg.config(state='disabled')
def Delete(self):
self.TextWidg.config(state='normal')
#delete the line
self.TextWidg.delete(self.line_start,self.line_end)
#delete the carriage return
self.TextWidg.delete(self.line_start)
self.TextWidg.config(state='disabled')
基本上,我如何实现self.line_start
和self.line_end
的值来交换行与它前面的行或后面的行。在
根据Bryan的建议,我能够解决Move_Up()和Move_Down()方法,如下所示。它可以在macosx上使用python3.1.3或2.6.6
编辑:请注意,如果只有一行文本,
Move_Up()
会将该文本附加到该行。如果只有一行,Move_Down()
什么也不做。在您可以使用
index
方法获得小部件中任何位置的索引。您可以给它一个包含修饰符的参数,比如linestart
和lineend
。您也可以使用类似+1c
的方法获取相对位置的索引,以获得下一个字符的索引,或者使用+1l
来获取下一行。您还可以使用wordstart
和wordend
。您可以组合它们,例如:index("insert lineend +1c")
例如,要获取具有插入光标的行的起点和终点(其中“insert”是表示插入光标的标记的名称):
有关详细信息,请参阅text widget page on effbot.org上标题为“表达式”的部分。在
相关问题 更多 >
编程相关推荐