| import os |
| import sys |
| from Tkinter import * |
| |
| |
| class HelpWindow: |
| |
| helpfile = "help.txt" |
| helptitle = "Help Window" |
| |
| def __init__(self, root=None): |
| if not root: |
| import Tkinter |
| root = Tkinter._default_root |
| if root: |
| self.top = top = Toplevel(root) |
| else: |
| self.top = top = root = Tk() |
| |
| helpfile = self.helpfile |
| if not os.path.exists(helpfile): |
| base = os.path.basename(self.helpfile) |
| for dir in sys.path: |
| fullname = os.path.join(dir, base) |
| if os.path.exists(fullname): |
| helpfile = fullname |
| break |
| try: |
| f = open(helpfile) |
| data = f.read() |
| f.close() |
| except IOError, msg: |
| data = "Can't open the help file (%s)" % `helpfile` |
| |
| top.protocol("WM_DELETE_WINDOW", self.close_command) |
| top.wm_title(self.helptitle) |
| |
| self.close_button = Button(top, text="close", |
| command=self.close_command) |
| self.close_button.pack(side="bottom") |
| |
| self.vbar = vbar = Scrollbar(top, name="vbar") |
| self.text = text = Text(top) |
| |
| vbar["command"] = text.yview |
| text["yscrollcommand"] = vbar.set |
| |
| vbar.pack(side="right", fill="y") |
| text.pack(side="left", fill="both", expand=1) |
| |
| text.insert("1.0", data) |
| |
| text.config(state="disabled") |
| text.see("1.0") |
| |
| def close_command(self): |
| self.top.destroy() |
| |
| |
| def main(): |
| h = HelpWindow() |
| h.top.mainloop() |
| |
| if __name__ == "__main__": |
| main() |