使用 ttk.Notebook 小部件从右到左对齐选项卡

Posted

技术标签:

【中文标题】使用 ttk.Notebook 小部件从右到左对齐选项卡【英文标题】:Align tabs from right to left using ttk.Notebook widget 【发布时间】:2014-01-16 08:03:48 【问题描述】:

我想将ttk.Notebook 小部件内的选项卡(窗格)从右到左对齐(默认为从左到右)。如何做到这一点?

以下是我当前的代码:

import Tkinter as tk
import ttk

root = tk.Tk()
root.minsize(300, 300)
root.geometry("1000x700")

box = ttk.Notebook(root, width=1000, height=650)

tab1 = tk.Frame(root)
tab2 = tk.Frame(root)
tab3 = tk.Frame(root)

box.add(tab1, text="tab1")
box.add(tab2, text="tab2")
box.add(tab3, text="tab3")

box.pack(side=tk.TOP)

root.mainloop()

【问题讨论】:

澄清一下,您希望标签“tab1”、“tab2”和“tab3”按此顺序出现,但在右上角? 【参考方案1】:

实际上有一个样式选项 - tabposition

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.minsize(300, 300)
root.geometry("1000x700")

s = ttk.Style()
s.configure('TNotebook', tabposition='ne') #'ne' as in compass direction

box = ttk.Notebook(root, width=1000, height=650)

tab1 = tk.Frame(root)
tab2 = tk.Frame(root)
tab3 = tk.Frame(root)

box.add(tab1, text="tab1")
box.add(tab2, text="tab2")
box.add(tab3, text="tab3")

box.pack(side=tk.TOP)

root.mainloop()

【讨论】:

谢谢你......我认为没有办法这样做,因为我搜索了几天来解决这个问题没有运气......直到你回答了这个问题...... 任何寻找全宽标签对齐中心的人,使用tabposition=tk.NSEW【参考方案2】:

Oblivion 的台词:

s.configure('TNotebook', tabposition='ne')

“ne”位可以是:

nw => above (north) and to the left (west)
ne => above and to the right (east)
en => to the right (east), at the top
es => to the right (east), at the bottom
se => below (south) and to the right (east)
sw => below (south) and to the left (west)
ws => to the left (west) and to the bottom (south)
wn => to the left (west) and at top

我猜'nw'是更常见的一个,但应用程序可能需要它。

【讨论】:

以上是关于使用 ttk.Notebook 小部件从右到左对齐选项卡的主要内容,如果未能解决你的问题,请参考以下文章

在 UICollectionView 上与内容从右到左对齐

Excel 互操作从右到左文档

有没有办法从右到左对齐视图,因为开发语言是阿拉伯语?

带有从右到左单选按钮的离子警报

从另一个小部件触发检查按钮悬停事件

逻辑运算的优先级