Python tkinter notebook.tab:文本(标题)显示不正确
我正在尝试创建一个自己的框架,为此我想在苹果电脑上使用Python tkinter notebook.tab:文本(标题)显示不正确,python,tabs,tkinter,widget,ttk,Python,Tabs,Tkinter,Widget,Ttk,我正在尝试创建一个自己的框架,为此我想在苹果电脑上使用tkinter制作一个GUI 在Mac OS X上,笔记本.选项卡的文本(标题)似乎没有正确显示,如下所示: 正如您所看到的,文本没有水平居中,而是略微向上移动 我的代码如下: #!/usr/bin/env python3 # coding: utf-8 import tkinter as tk from tkinter import ttk class SpiderGUI(): def __init__(self, mast
tkinter
制作一个GUI
在Mac OS X上,笔记本.选项卡的文本(标题)似乎没有正确显示,如下所示:
正如您所看到的,文本
没有水平居中,而是略微向上移动
我的代码如下:
#!/usr/bin/env python3
# coding: utf-8
import tkinter as tk
from tkinter import ttk
class SpiderGUI():
def __init__(self, master):
self.master = master
self.frame = ttk.Frame(self.master, padding=(10, 10, 10, 10))
self.frame.pack(fill="both", expand="True")
self.paned_window = ttk.Panedwindow(self.frame, orient="horizontal")
self.paned_window.pack(fill="both", expand="True")
self.frame_settings = ttk.Frame(self.paned_window, width=75, height=300, relief="sunken")
self.paned_window.add(self.frame_settings)
self.frame_output = ttk.Frame(self.paned_window, width=950, height=300, relief="sunken")
self.paned_window.add(self.frame_output, weight="4")
self.frame_logging = ttk.Frame(self.paned_window, width=175, height=500, relief="sunken")
self.paned_window.add(self.frame_logging)
self.console_notebook = ttk.Notebook(self.frame_output)
self.console_notebook.pack()
self.frame_tab_console = ttk.Frame(self.console_notebook)
self.console_notebook.add(self.frame_tab_console, text="Console", padding=(10))
self.frame_tab_database = ttk.Frame(self.console_notebook)
self.console_notebook.add(self.frame_tab_database, text="MongoDB")
def main():
root = tk.Tk()
app = SpiderGUI(root)
# root.geometry(newGeometry="1200x800+100+100")
root.title('name')
root.resizable(width=True, height=False)
# root.maxsize(width=1280, height=1024)
# root.minsize(width=640, height=480)
root.mainloop()
if __name__ == '__main__':
main()
如果其他人仍然需要解决这个问题。这很有意思,但很有效:
s = ttk.Style()
s.configure('TNotebook.Tab', padding=(20, 8, 20, 0))
最好仅将mrushabh回答的修复应用于OSX,如下所示:
root = tk.Tk()
# a fix for running on OSX - to center the title text vertically
if root.tk.call('tk', 'windowingsystem') == 'aqua': # only for OSX
s = ttk.Style()
# Note: the name is specially for the text in the widgets
s.configure('TNotebook.Tab', padding=(12, 8, 12, 0))
请提供一份适当的草图,说明您希望得到的结果。你想在你的三列设计的中间有那些笔记本标签吗?标签里面的文本不是集中的。标签本身是好的。我现在有了style.configure('TNotebook',tabposition='nw')。但是文本:控制台和MunGDB不在选项卡的中间。我第一次没看到。然而,这似乎是tkinter(Pyhon 3.4.3,Mac OS 10.10.5)中的一个bug,因为我一直在从事的旧项目中也出现了同样的bug。根据的建议,在由提供的新tkinter版本中可能会有一些错误修复。但是,老实说,我不知道如何解决这个问题。