id_666i
@id_666i

Как сделать toolbar под полем text в tkinter?

Привет, делаю небольшой текстовый редактор, мне надо прикрепить после текстового поля тулбар для вывода статистики текста(кол-во букв, слов и тд)
Но показывается верхний первый тулбар, а нижний нет
Вот мой код
import os
import tkinter as tk
from tkinter import *
from tkinter import messagebox
from tkinter import simpledialog
from tkinter import filedialog
from tkinter import scrolledtext

#coding: utf8
#for name in os.listdir("C://"):
#    print (name)
class Main(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
        self.toolbar()

    def toolbar(self): # Добавляю в тулбар кнопки
        toolbarTop = tk.Frame(bg='#d7d8e0', bd=4) # Создаём тулбар
        toolbarTop.pack(side=tk.TOP, fill=tk.X)

        scrollbar = Scrollbar(root)                 # Cоздаём полосу прокрутки
        scrollbar.pack( side = RIGHT, fill = Y )    # пакаем её, ставит параметры

        toolbarBottom = tk.Frame(bg='#d7d8e0', bd=4) # Создаём тулбар
        toolbarBottom.pack(side=tk.BOTTOM, fill=tk.X)

        self.text = Text(width=200, height=100, fg='black', wrap=WORD, yscrollcommand=scrollbar.set)
        self.text.pack()

        scrollbar.config(command = self.text.yview,)   # хз для чего, но и без этого работает ( но оставим )

        btn_new = tk.Button(toolbarTop, text='Новый файл', bd = 4, command=self.newFile)
        btn_new.pack(side=tk.LEFT)
        
        btn_open = tk.Button(toolbarTop, text='Открыть файл', bd = 4, command=self.openFile)
        btn_open.pack(side=tk.LEFT)
        
        btn_save = tk.Button(toolbarTop, text='Сохранить файл', bd = 4, command=self.saveTextField)
        btn_save.pack(side=tk.LEFT)


    def newFile(self):
        self.text.pack()
        self.text.delete(1.0, END)
        self.text.insert(1.0, "# Notepad v0.01", END)
        

    def saveTextField(self):
        file = filedialog.asksaveasfilename()
        with open(file, "w") as file:
            file.write(self.text.get(1.0, END))
    def openFile(self):
        file_selection = filedialog.askopenfilename()
        with open(file_selection, "r") as file:
            script = file.read()
        self.text.pack()
        self.text.insert(1.0, script, END)

if __name__ == "__main__": # Если окно запущенно, то создает наше главное окно
    root = tk.Tk()
    app = Main(root)
    app.pack()
    root.title("Text 0.01v")
    root.geometry("800x600+450+100")
    root.resizable(True, True)
    root.mainloop()
  • Вопрос задан
  • 597 просмотров
Пригласить эксперта
Ответы на вопрос 1
@yeedab
Ну у вас нижний тулбар пустой. Если туда что-нибудь добавить, будет показывать.
Например

 
        label = tk.Label(toolbarBottom, text='yo')
        label.pack(side=tk.LEFT)


5bed41dbcdf9e180869135.png

Но, на самом деле, конечно, лучше сразу смотреть в сторону grid и ttk — первый позволяет нормально располагать виджеты, а второй придаёт им приличный внешний вид. А ещё есть ScrolledText — это, вообще, космос.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект