def __init__(self): super().__init__() self.text_area = TextArea(self, bg="white", fg="black", undo=True) self.scrollbar = ttk.Scrollbar(orient="vertical", command=self.scroll_text) self.text_area.configure(yscrollcommand=self.scrollbar.set) self.scrollbar.pack(side=tk.LEFT, fill=tk.Y) self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1) self.line_numbers = LineNumbers(self, self.text_area, bg="grey", fg="white", width=1) self.highlighter = Highlighter(self.text_area, 'languages/python.yaml') # first_100_numbers = [str(n+1) for n in range(100)] # self.line_numbers.insert(1.0, "\n".join(first_100_numbers)) # self.line_numbers.configure(state="disabled", width=3) self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y) self.line_numbers.pack(side=tk.LEFT, fill=tk.Y) self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1) self.bind_events()
def __init__(self): super().__init__() self.title('Python Text Editor v3') self.geometry('800x600') self.foreground = 'black' self.background = 'lightgrey' self.text_foreground = 'black' self.text_background = 'white' self.load_scheme_file('schemes/default.yaml') self.configure_ttk_elements() self.font_size = 15 self.font_family = "Ubuntu Mono" self.load_font_file('schemes/font.yaml') self.text_area = TextArea(self, bg=self.text_background, fg=self.text_foreground, undo=True, font=(self.font_family, self.font_size)) self.scrollbar = ttk.Scrollbar(orient="vertical", command=self.scroll_text) self.text_area.configure(yscrollcommand=self.scrollbar.set) self.line_numbers = LineNumbers(self, self.text_area, bg="grey", fg="white", width=1) self.highlighter = Highlighter(self.text_area, 'languages/python.yaml') self.menu = tk.Menu(self, bg=self.background, fg=self.foreground) self.all_menus = [self.menu] sub_menu_items = ["file", "edit", "tools", "help"] self.generate_sub_menus(sub_menu_items) self.configure(menu=self.menu) self.right_click_menu = tk.Menu(self, bg=self.background, fg=self.foreground, tearoff=0) self.right_click_menu.add_command(label='Cut', command=self.edit_cut) self.right_click_menu.add_command(label='Copy', command=self.edit_copy) self.right_click_menu.add_command(label='Paste', command=self.edit_paste) self.all_menus.append(self.right_click_menu) self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y) self.line_numbers.pack(side=tk.LEFT, fill=tk.Y) self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1) self.bind_events() self.open_file = ''
def main(): window = Gtk.Window(title="Hello") widget = TextArea() window.add(widget) window.connect("destroy", Gtk.main_quit) window.show_all() Gtk.main()
def init_input(self, label, text=None): self.input_label = label self.input = TextArea( self.window, self.font, TextBuffer(text), window_border=(self.window.size[1] - self.height + self.border[0], self.border[1], self.border[2], (self.font.size[0] * len(label)) + (2 * self.border[3])), line_spacing=0)
def run(): (window_size, f) = get_args() tb = TextBuffer() if f: tb.load(f) sdl2.ext.init() window = sdl2.ext.Window(WINDOW_TITLE, size=window_size) window.show() factory = sdl2.ext.SpriteFactory(sdl2.ext.SOFTWARE) font_img = factory.from_image(FONT_IMG_PATH) sdl2.SDL_SetColorKey( font_img.surface, sdl2.SDL_TRUE, sdl2.SDL_MapRGB(font_img.surface.format, COLOR_KEY_R, COLOR_KEY_G, COLOR_KEY_B)) font = sdl2.ext.BitmapFont(font_img, FONT_SIZE, mapping=FONT_MAPPING) sb = StatusBar(window, tb, font, STATUS_BAR_COLOR, (STATUS_BAR_BORDER_TOP, STATUS_BAR_BORDER_RIGHT, STATUS_BAR_BORDER_BOTTOM, STATUS_BAR_BORDER_LEFT)) ta = TextArea(window, font, tb, (TEXT_AREA_BORDER_TOP, TEXT_AREA_BORDER_RIGHT, sb.height + TEXT_AREA_BORDER_BOTTOM, TEXT_AREA_BORDER_LEFT), TEXT_AREA_LINE_SPACING) state = EditState(Editor(None, window, ta, sb)) sdl2.SDL_StartTextInput() while True: start = sdl2.SDL_GetTicks() state = state.update(sdl2.ext.get_events()) if state is None: break ticks = sdl2.SDL_GetTicks() - start if ticks < 1000 / FRAMES_PER_SECOND: sdl2.SDL_Delay((1000 / FRAMES_PER_SECOND) - ticks) sdl2.SDL_StopTextInput() sdl2.ext.quit() return 0
def __init__(self): super().__init__() self.text_area = TextArea(self, bg="white", fg="black", undo=True) self.scrollbar = ttk.Scrollbar(orient="vertical", command=self.scroll_text) self.text_area.configure(yscrollcommand=self.scrollbar.set) self.line_numbers = LineNumbers(self, self.text_area, bg="grey", fg="white", width=1) self.highlighter = Highlighter(self.text_area, 'languages/python.yaml') self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y) self.line_numbers.pack(side=tk.LEFT, fill=tk.Y) self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1) self.bind_events()
def create_widget(self): self.text_area = TextArea(self.frame1, bg=self.text_background, fg=self.text_foreground, undo=True, relief=tk.FLAT, font=(self.text_font_family, self.text_font_size), insertbackground=self.insertbackground) self.text_area.config(highlightthickness=0) self.text_area.grid(row=0, column=1, sticky='wens') self.text_area.focus_set() self.welcome(event=None) self.status_bar1 = StatusBar(self.frame2, bg="pink", width=30, height=10) self.status_bar2 = StatusBar(self.frame2, bg="orange", width=30, height=10) self.status_bar3 = StatusBar(self.frame2, bg="blue", width=30, height=10) self.status_bar4 = StatusBar(self.frame2, bg="green", width=30, height=10) self.status_bar5 = StatusBar(self.frame2, bg="purple", width=30, height=10) self.status_bar1.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) self.status_bar2.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) self.status_bar3.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) self.status_bar4.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) self.status_bar5.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
def __init__(self): super().__init__() self.title('Python Text Editor v3') self.geometry('800x600') self.foreground = 'black' self.background = 'lightgrey' self.text_foreground = '#313131' self.text_background = '#f0f0f0' self.terminal_background = 'darkcyan' self.terminal_foreground = 'white' self.config_dir = os.path.join(str(Path.home()), '.tkedit') self.default_scheme_path = os.path.join(self.config_dir, 'schemes/default.yaml') self.python_language_path = os.path.join(self.config_dir, 'languages/python.yaml') self.font_scheme_path = os.path.join(self.config_dir, 'schemes/font.yaml') self.create_config_directory_if_needed() self.load_scheme_file(self.default_scheme_path) self.configure_ttk_elements() # Change self.font_size = 14 self.font_family = "Droid Sana Mono" self.terminal_font_size = 12 self.terminal_font_family = "Consolas" # Change self.load_font_file(self.font_scheme_path) self.text_area = TextArea(self, bg=self.text_background, fg=self.text_foreground, undo=True, font=(self.font_family, self.font_size)) self.scrollbar = ttk.Scrollbar(orient="vertical", command=self.scroll_text) self.text_area.configure(yscrollcommand=self.scrollbar.set) self.line_numbers = LineNumbers(self, self.text_area, bg="grey", fg="white", width=1, font=(self.font_family, self.font_size)) self.highlighter = Highlighter(self.text_area, self.python_language_path) self.terminal = Terminal(self, height=8, bg=self.terminal_background, fg=self.terminal_foreground, undo=True, font=(self.terminal_font_family, self.terminal_font_size)) self.menu = tk.Menu(self, bg=self.background, fg=self.foreground) self.all_menus = [self.menu] self.text_area.__setattr__("update_line", self.line_numbers.force_update) self.text_area.__setattr__("update_highlight", self.highlighter.force_highlight) sub_menu_items = ["file", "edit", "tools", "help"] self.generate_sub_menus(sub_menu_items) self.configure(menu=self.menu) self.right_click_menu = tk.Menu(self, bg=self.background, fg=self.foreground, tearoff=0) self.right_click_menu.add_command(label='Cut', command=self.edit_cut) self.right_click_menu.add_command(label='Copy', command=self.edit_copy) self.right_click_menu.add_command(label='Paste', command=self.edit_paste) # Change self.right_click_menu.add_command(label='Undo', command=self.edit_undo) self.right_click_menu.add_command(label='Redo', command=self.edit_redo) # Change self.all_menus.append(self.right_click_menu) # change self.count_area = tk.Text(self, height=1) self.count_area.pack(side=tk.BOTTOM, fill=tk.X) # change # Change self.terminal.pack(side=tk.BOTTOM, fill=tk.X) # Change self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y) self.line_numbers.pack(side=tk.LEFT, fill=tk.Y) self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1) self.bind_events() self.open_file = ''
def __init__(self): ''' @update 1.添加横向滚动条 2.修正行号与滚动条和窗口的关联 3.修正行号显示 ''' super().__init__() self.title('Python Text Editor v3') self.geometry('800x600') self.foreground = 'black' self.background = 'lightgrey' self.text_foreground = 'black' self.text_background = 'white' self.config_dir = os.path.join(str(Path.home()), '.tkedit') self.default_scheme_path = os.path.join(self.config_dir, 'schemes/default.yaml') self.python_language_path = os.path.join(self.config_dir, 'languages/python.yaml') self.none_language_path = os.path.join(self.config_dir, 'languages/None.yaml') self.font_scheme_path = os.path.join(self.config_dir, 'fonts/font.yaml') self.create_config_directory_if_needed() self.load_scheme_file(self.default_scheme_path) self.configure_ttk_elements() self.font_size = 15 self.font_family = "Ubuntu Mono" self.load_font_file(self.font_scheme_path) self.text_area = TextArea(self, bg=self.text_background, fg=self.text_foreground, undo=True, font=(self.font_family, self.font_size)) self.scrollbar = ttk.Scrollbar(orient="vertical", command=self.text_area.yview) self.scrollbar2 = ttk.Scrollbar(orient="horizontal", command=self.text_area.xview) self.line_numbers = LineNumbers(self, self.text_area, bg="grey", fg="white", width=1, font=(self.font_family, self.font_size)) self.scrollbar.config(command=self.text_area.yview) self.text_area.config(yscrollcommand=self.scrollbar.set, xscrollcommand=self.scrollbar2.set) self.highlighter = Highlighter(self.text_area, self.none_language_path) self.menu = tk.Menu(self, bg=self.background, fg=self.foreground) self.all_menus = [self.menu] sub_menu_items = ["file", "edit", "tools", "help"] self.generate_sub_menus(sub_menu_items) self.configure(menu=self.menu) self.right_click_menu = tk.Menu(self, bg=self.background, fg=self.foreground, tearoff=0) self.right_click_menu.add_command(label='Cut', command=self.edit_cut) self.right_click_menu.add_command(label='Copy', command=self.edit_copy) self.right_click_menu.add_command(label='Paste', command=self.edit_paste) self.all_menus.append(self.right_click_menu) self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y) self.scrollbar2.pack(side=tk.BOTTOM, fill=tk.X) self.line_numbers.pack(side=tk.LEFT, fill=tk.Y) self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1) self.bind_events() self.open_file = ''
"textarea", ) reoptions = [('s', 'dotall', 'Dot Match All'), ('i', 'ignorecase', 'Case Insensitive'), ('m', 'multiline', '^$ at line breaks'), ('x', 'verbose', 'Free-Spacing'), ('u', 'unicode', 'Unicode')] funcs = [ '', 'Import regex library', 'If/else branch whether the regex matches (part of) a string' ] langs = ('python', ) app = web.application(urls, globals()) flag = Option() text = TextArea() env = Environment(loader=PackageLoader('index', 'templates')) #the home page(the only page) class index: def GET(self): template = env.get_template('index.html') return template.render(reoptions=reoptions, functions=funcs, langs=langs) #when option changes in the front, class options: def POST(self):
def __init__(self): super().__init__() self.title('Text Editor') self.text_area = TextArea(self, bg="white", fg="black", undo=True) self.background = 'lightgrey' self.foreground = 'black' self.text_foreground = 'black' self.text_background = 'white' self.config_dir = os.path.join(str(Path.home()), '.tkedit') self.default_scheme_path = os.path.join(self.config_dir, 'schemes/default.yaml') self.python_language_path = os.path.join(self.config_dir, 'languages/python.yaml') self.font_scheme_path = os.path.join(self.config_dir, 'schemes/font.yaml') self.create_config_directory_if_needed() self.load_scheme_file(self.default_scheme_path) self.configure_ttk_elements() self.font_size = 15 self.font_family = "Ubuntu Mono" self.load_font_file(self.font_scheme_path) self.highlighter = Highlighter(self.text_area, self.python_language_path) self.menu = tk.Menu(self, bg=self.background, fg=self.foreground) self.all_menus = [self.menu] sub_menu_items = ['file', 'edit', 'tools', 'help'] self.generate_sub_menus(sub_menu_items) self.configure(menu=self.menu) self.right_click_menu = tk.Menu(self, bg='lightgrey', fg='black', tearoff=0) self.right_click_menu.add_command(label='Cut', command=self.edit_cut) self.right_click_menu.add_command(label='Copy', command=self.edit_copy) self.right_click_menu.add_command(label='Paste', command=self.edit_paste) self.all_menus.append(self.right_click_menu) self.open_file = None self.scrollbar = ttk.Scrollbar(orient="vertical", command=self.scroll_text) self.text_area.configure(yscrollcommand=self.scrollbar.set) self.line_numbers = LineNumbers(self, self.text_area, bg='grey', fg='white', width=1) ''' self.line_numbers = tk.Text(self, bg="grey", fg="yellow") first_100_numbers = [str(n+1) for n in range(100)] self.line_numbers.insert(1.0, "\n".join(first_100_numbers)) self.line_numbers.configure(state="disabled", width=3) ''' self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y) self.line_numbers.pack(side=tk.LEFT, fill=tk.Y) self.text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=1) self.bind_events()