как удалить пунктирную линию на tabMenu в tkinter python

как вы видите изображение, каждое tabMenu имеет пунктирную линию после щелчка tabMenu, как удалить эту пунктирную линию? внизу исходный код спасибо.

          from tkinter import *
    from tkinter import ttk

    tabposition = ttk.Style()
    tabposition.configure('TNotebook', sticky='w', tabposition='sw')
    
    style = ttk.Style()
    
    tabposition.configure("Tab", focuscolor=style.configure(".")["background"])
    
    notebook = ttk.Notebook(root, width=1450, height=910)
    notebook.pack(fill="y",expand=False)
    notebook.place(x=526)

    def newtab2():
        frame0 = Frame(root)
        notebook.add(frame0, text="First Input")

    addSheet = Button(root, text="Enter", command=newtab2, borderwidth=1)
    addSheet.place(x=10, y=159, width=41, height=41)

1 ответ

Решение

Несколько слов:

  1. Если вы хотите добавить фрейм в a, используйте его в качестве эталона для фрейма. В вашем коде было указано root

  2. Не нужно использовать новый. Вместо этого установите макет оригинала ttk.Style()

Ниже приведен исправленный код. Обратите внимание, что высота ttk.Notebookизменен мной. Вы можете изменить это позже.

      from tkinter import *
from tkinter import ttk
root=Tk()
tabposition = ttk.Style()
tabposition.configure('TNotebook', sticky='w', tabposition='sw')
notebook = ttk.Notebook(root, width=1450, height=510)
notebook.pack(fill="both",expand=1)
tabposition.layout("Tab",
[('Notebook.tab', {'sticky': 'nswe', 'children':
    [('Notebook.padding', {'side': 'top', 'sticky': 'nswe', 'children':
        #[('Notebook.focus', {'side': 'top', 'sticky': 'nswe', 'children':
            [('Notebook.label', {'side': 'top', 'sticky': ''})],
        #})],
    })],
})]
)
def newtab2():
    frame0 = Frame(notebook)
    notebook.add(frame0, text="First Input")
addSheet = Button(root, text="Enter", command=newtab2, borderwidth=1)
addSheet.place(x=10, y=159, width=41, height=41)
root.mainloop()

Другие вопросы по тегам