帮助,插入光标每次移动一行!

时间:2010-09-02 00:45:15

标签: python tkinter pickle

每次重新打开此代码时,插入光标会向下移动一行,如何停止此操作?

import Tkinter,pickle
class Note(Tkinter.Tk):
    def __init__(self,parent):
        Tkinter.Tk.__init__(self,parent)
        self.parent = parent
        self.Main()
        self.load_data()
        self.protocol("WM_DELETE_WINDOW", self.save_data)
    def Main(self):
        self.s1 = Tkinter.Scrollbar(self)
        self.L1 = Tkinter.Text(self,borderwidth=0,font=('Arial', 10),width=25,
        height=15)
        self.s1.config(command=self.L1.yview,elementborderwidth=3)
        self.L1.config(yscrollcommand=self.s1.set)
        self.L1.grid(column=0,row=0,sticky='EW')
        self.s1.grid(column=1,row=0,sticky='NSEW')
        self.L1.focus_set()
    def save_data(self):
        data = {'saved_data': self.L1.get('1.0', 'end')}
        with file('testsave.data', 'wb') as f:
            pickle.dump(data, f)
        self.destroy()
    def load_data(self):
        try:
            with file('testsave.data', 'rb') as f:
                data = pickle.load(f)
                self.L1.insert("end", data['saved_data'])
        except IOError:
            pass
if __name__ == "__main__":
    app = Note(None)
    app.mainloop()

1 个答案:

答案 0 :(得分:1)

保证文本小部件在其内容的末尾始终具有尾随换行符。获取数据的正确方法是使用索引“end-1c”,这样就不会获得额外的换行符。如果使用“结束”,则每个保存和加载周期都会添加一个空白。

相关问题