2016-12-06 140 views
0

enter image description heretkinter ttk中如何獲得無邊界效應?

要在tkinter tk中獲得按鈕無邊框效果我曾經設置borderwidth=0。按鈕將合併到背景中。但我無法在tkinter ttk中獲得同樣的效果。我在樣式中設置了borderwidth=0。按鈕始終具有邊框寬度。我不知道爲什麼?

回答

1

通過使用ttk樣式將按鈕浮雕設置爲flat或邊框寬度設置爲0,可以實現您想要的效果。但是,某些ttk主題不考慮這些樣式設置,其中一個是Windows中的默認主題。將主題設置爲'clam'或'alt'應該可以解決您的問題。

import tkinter as tk 
from tkinter import ttk 

root = tk.Tk() 

b1 = tk.Button(root, text='tk.Button', borderwidth=0) 
b1.pack() 

s = ttk.Style(root) 
s.theme_use('clam') 
s.configure('flat.TButton', borderwidth=0) 
# s.configure('flat.TButton', relief='flat') gives the same result 

b2 = ttk.Button(root, style='flat.TButton', text='ttk.Button') 
b2.pack() 

root.mainloop() 
+0

謝謝你的回覆,我嘗試你的代碼,沒有效果,ttk按鈕總是有邊框 –

+0

@Pythonrookie它可能取決於系統。在Linux上它工作。 – furas

+0

@Python新手,嘗試添加's.theme_use('clam')'。我認爲效果是主題相關的,並且默認的Windows主題不支持平面按鈕。 –

1

無法刪除窗口或osx上的邊框。在這些平臺上使用ttk按鈕的重點是獲取本地小部件。如果你想要一個沒有邊框的按鈕,使用標準的tk按鈕。