Как сделать красивый toolbar в tkinter?

Пользователь

от delphine_bartoletti , в категории: Python , год назад

Как сделать красивый toolbar в tkinter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ciara , год назад

@delphine_bartoletti 

Чтобы создать красивый toolbar в tkinter, можно использовать стандартные элементы управления и настроить их внешний вид с помощью стилей или изображений. Ниже приведен пример кода, который демонстрирует создание простого toolbar с использованием стандартных кнопок:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import tkinter as tk
from tkinter import ttk

def open_file():
    print("Open file")

def save_file():
    print("Save file")

def cut_text():
    print("Cut text")

def copy_text():
    print("Copy text")

def paste_text():
    print("Paste text")

root = tk.Tk()

# Создание toolbar
toolbar = ttk.Frame(root)
toolbar.pack(side="top", fill="x")

# Создание кнопок и добавление их в toolbar
btn_open = ttk.Button(toolbar, text="Open", command=open_file)
btn_open.pack(side="left", padx=5, pady=5)

btn_save = ttk.Button(toolbar, text="Save", command=save_file)
btn_save.pack(side="left", padx=5, pady=5)

btn_cut = ttk.Button(toolbar, text="Cut", command=cut_text)
btn_cut.pack(side="left", padx=5, pady=5)

btn_copy = ttk.Button(toolbar, text="Copy", command=copy_text)
btn_copy.pack(side="left", padx=5, pady=5)

btn_paste = ttk.Button(toolbar, text="Paste", command=paste_text)
btn_paste.pack(side="left", padx=5, pady=5)

root.mainloop()


В этом примере toolbar представляет собой ttk.Frame, который содержит несколько ttk.Button-ов. Каждой кнопке присваивается ко*****, которая будет выполнена при ее клике. Можно настроить внешний вид кнопок, используя аргументы ttk.Button, такие как "style" или "image". Например, можно использовать изображения кнопок вместо текста:

1
btn_open = ttk.Button(toolbar, image=open_image, command=open_file)


где open_image - это изображение кнопки "Open".

Пользователь

от hermina.hauck , 8 месяцев назад

@delphine_bartoletti 

Дополнительно к предложенному примеру, можно также настроить стиль кнопок, чтобы сделать toolbar более красивым и современным. Ниже приведен пример кода с использованием настраиваемого стиля для кнопок:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import tkinter as tk
from tkinter import ttk

def open_file():
    print("Open file")

def save_file():
    print("Save file")

def cut_text():
    print("Cut text")

def copy_text():
    print("Copy text")

def paste_text():
    print("Paste text")

root = tk.Tk()

# Создание стиля для кнопок
style = ttk.Style()
style.configure('ToolBar.TButton', font=('Helvetica', 10, 'bold'))

# Создание toolbar
toolbar = ttk.Frame(root)
toolbar.pack(side="top", fill="x")

# Создание кнопок и добавление их в toolbar с использованием настроенного стиля
btn_open = ttk.Button(toolbar, text="Open", command=open_file, style='ToolBar.TButton')
btn_open.pack(side="left", padx=5, pady=5)

btn_save = ttk.Button(toolbar, text="Save", command=save_file, style='ToolBar.TButton')
btn_save.pack(side="left", padx=5, pady=5)

btn_cut = ttk.Button(toolbar, text="Cut", command=cut_text, style='ToolBar.TButton')
btn_cut.pack(side="left", padx=5, pady=5)

btn_copy = ttk.Button(toolbar, text="Copy", command=copy_text, style='ToolBar.TButton')
btn_copy.pack(side="left", padx=5, pady=5)

btn_paste = ttk.Button(toolbar, text="Paste", command=paste_text, style='ToolBar.TButton')
btn_paste.pack(side="left", padx=5, pady=5)

root.mainloop()


В этом коде был создан новый стиль 'ToolBar.TButton' для кнопок в toolbar и настроен шрифт кнопок на жирный шрифт Helvetica размером 10. Таким образом, кнопки в toolbar будут иметь установленный стиль.


Можно дальше настраивать стиль кнопок, например, задавая цвет фона, цвет текста и т.д. Для этого можно использовать методы ttk.Style().configure().