Как определить разные стили/темы с помощью tkinterPython

Программы на Python
Ответить
Anonymous
 Как определить разные стили/темы с помощью tkinter

Сообщение Anonymous »

Я изучаю tkinter и заметил кое-что при использовании стилей при попытке создать разные окна или фреймы со стилями.
В приведенном мной примере кода, если я изменю атрибуты стиля на кадр2, они также отображаются в кадре1. Если я изменю порядок выполнения, произойдет обратный процесс.
Как определить стили, специфичные для каждого фрейма или окна?
СпасибоДэн
from tkinter import *
import tkinter as tk
from tkinter import ttk

def showframe1():
f1_columns = ('#1', '#2')
f1_tree = ttk.Treeview(frame1, columns=f1_columns, show='headings')

f1_style = ttk.Style()
f1_style.theme_use("default")
f1_style.configure("Treeview",
background="white",
foreground="black",
rowheight=25 # Height of each row in tree
)

f1_tree.heading('#1', text='First Name')
f1_tree.heading('#2', text='Last Name')
f1_tree.column("#1", width=150)
f1_tree.column("#2", width=150)

# generate sample data
contacts = []
for n in range(1, 100):
contacts.append((f'first {n}', f'last {n}'))

# adding data to the frame1 tree
for contact in contacts:
f1_tree.insert('', tk.END, values=contact)

f1_tree.grid(row=0, column=0, sticky='nsew')

def showframe2():
f2_columns = ('#1', '#2', '#3')
f2_tree = ttk.Treeview(frame2, columns=f2_columns, show='headings')

f2_style = ttk.Style()
f2_style.theme_use("default")
f2_style.configure("Treeview",
background="lightblue",
foreground="black",
rowheight=25 # Height of each row in tree
)

f2_tree.heading('#1', text='First Name')
f2_tree.heading('#2', text='Last Name')
f2_tree.heading('#3', text='Email')
f2_tree.column("#1", width=150)
f2_tree.column("#2", width=150)
f2_tree.column("#3", width=250)

# generate sample data
contacts = []
for n in range(1, 100):
contacts.append((f'first {n}', f'last {n}', f'email{n}@example.com', f'email{n}@example.com'))

# adding data to the frame2 tree
for contact in contacts:
f2_tree.insert('', tk.END, values=contact)

f2_tree.grid(row=0, column=0, sticky='nsew')

def exit_root(event):
root.destroy()

root = tk.Tk()
root.title('Frame Styles Example')
root.geometry('600x800')

frame1 = Frame(root, bd=5, relief='sunken')
frame1.grid(row=0, column=0, padx=20, pady=10, sticky=N + W)

frame2 = Frame(root, bd=5, relief='sunken')
frame2.grid(row=1, column=0, padx=20, pady=10, sticky=N + W)

showframe1()
showframe2()

root.bind('', exit_root)

# run the app
root.mainloop()


Подробнее здесь: https://stackoverflow.com/questions/657 ... th-tkinter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»