Advanced Widgets


Text

from tkinter import *
root = Tk()
text = Text(root, width = 40, height = 10)
text.pack()
text.config(wrap = 'word')

  • >>> text.get('1.0', 'end')
    'dsadads\ndassaddsadads\ndassad\ndsadads\ndassad\n\n\n\n\n\ndsfs\ndsfsf\nsdfsdfsdfsddddddddddddd\nsfsdddddddddddd\nsfsfsdf\nsdfsklkjfajdlsjfldsjfldjlfjsljj fdjsjf box test\n'
    >>> text.get('1.0', '1.end')
    'dsadads'
    >>> text.insert('1.0 + 2 lines', 'Inserted message')
    >>> text.insert('1.0 + 2 lines lineend', 'and\nmore and\nmore...')
    >>> text.delete('1.0')
    >>> text.delete('1.0', '1.0 lineend')
    >>> text.delete('1.0', '3.0 lineend + 1 chars')
    >>> text.replace('1.0', '1.0 lineend', 'This is the first line.')
    >>> text.config(state = 'disabled')
    >>> text.delete('1.0', 'end')
    >>> text.config(state = 'normal')
    

Tag & Mark

  • Tag
    text.tag_add('my_tag', '1.0', '1.0 wordend')
    text.tag_configure('my_tag', background = 'yellow')
    text.tag_remove('my_tag', '1.1', '1.3')
    
    text.tag_ranges('my_tag')
    text.tag_names()
    >>> text.tag_names('1.0')
    ('my_tag',)
    >>> text.replace('my_tag.first', 'my_tag.last', 'That')
    >>> text.tag_delete('my_tag')
    
  • Mark

Automatically Tracked Text Marks insert - current index of onsertion cursor current - index of character under mouse position

text.mark_names()
# ('insert', 'current', 'tk:anchor1')

text.insert('insert', '_')
text.mark_set('my_mark', 'end')
text.mark_gravity('my_mark', 'right')
text.mark_unset('my_mark')
  • Image & Button
>>> image = PhotoImage(file = 'C:\\Users\\~\\logo.gif')
>>> text.image_create('insert', image = image)
'pyimage1'

button = Button(text, text = 'Click Me')
text.window_create('insert', window = button)

Tree View

#!/usr/bin/python3
# template.py by Barron Stone
# This is an exercise file from Python GUI Development with Tkinter on lynda.com

from tkinter import *
from tkinter import ttk        

root = Tk()

treeview = ttk.Treeview(root)
treeview.pack()
treeview.insert('', '0', 'item1', text = 'First Item')
treeview.insert('', '1', 'item2', text = 'Second Item')
treeview.insert('', 'end', 'item3', text = 'Third Item')

logo = PhotoImage(file = 'D:\Cloud\Dropbox\Workplace\pytest\Tkinter\Ex_Files_Python_Tkinter\Ex_Files_Python_Tkinter\Exercise Files\Ch05\\python_logo.gif').subsample(10,10)
treeview.insert('item2', 'end', 'python', text = 'Python', image = logo)

treeview.config(height = 5)
treeview.move('item2', 'item1', 'end')
treeview.item('item1', open = True)
treeview.item('item2', open = True)
print(treeview.item('item1', 'open'))

treeview.detach('item3')
treeview.move('item3', 'item2', '0')
treeview.delete('item3')

treeview.configure(column = ('version'))
treeview.column('version', width = 50, anchor = 'center')
treeview.column('version', width = 50, anchor = 'center')
treeview.column('#0', width = 150)
treeview.heading('version', text = 'Version')
treeview.set('python', 'version', '3.4')
treeview.item('python', tags = ('software'))
treeview.tag_configure('software', background = 'yellow')

def callback(event):
    print(treeview.selection())

treeview.bind('<<TreeviewSelect>>', callback)

treeview.config(selectmode = 'browse')
print(treeview.selection_add('python'))
print(treeview.selection_remove('python'))
print(treeview.selection_toggle('python'))

root.mainloop()
from tkinter import *
from tkinter import ttk        

root = Tk()

root.option_add('*tearOff', False)
menubar = Menu(root)
root.config(menu = menubar)
file = Menu(menubar)
edit = Menu(menubar)
help_ = Menu(menubar)

menubar.add_cascade(menu = file, label = 'File')
menubar.add_cascade(menu = edit, label = 'Edit')
menubar.add_cascade(menu = help_, label = 'Help')

file.add_command(label = 'New', command = lambda: print('New File'))
file.add_separator()
file.add_command(label = 'Open...', command = lambda: print('Opening File...'))
file.add_command(label = 'Save', command = lambda: print('Saving File...'))

file.entryconfig('New', accelerator = 'Ctrl+N')
logo = PhotoImage(file = 'C:\\Users\\barron\\Dropbox\\Lynda Courses\\Python GUI Development with Tkinter\\Exercise Files - Current\\03 Widget Classes\\python_logo.gif').subsample(10, 10)
file.entryconfig('Open...', image = logo, compound = 'left')
file.entryconfig('Open...', state = 'disabled')

file.delete('Save')
save = Menu(file)
file.add_cascade(menu = save, label = 'Save')
save.add_command(label = 'Save As',command = lambda: print('Saving As...'))
save.add_command(label = 'Save All', command = lambda: print('Saving All...'))

choice = IntVar()
edit.add_radiobutton(label = 'One', variable = choice, value = 1)
edit.add_radiobutton(label = 'Two', variable = choice, value = 2)
edit.add_radiobutton(label = 'Three', variable = choice, value = 3)
file.post(400, 300)

root.mainloop()

results matching ""

    No results matching ""