ttk.Style().config
时间: 2024-05-11 14:20:14 浏览: 116
ttk.Style()是用于设置tkinter中控件外观的类。config()方法用于配置或修改已经定义的样式。可以传递一个字典作为参数,其中包含需要修改的样式名称和值。例如:
```python
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
style = ttk.Style()
style.configure('TButton', font=('Helvetica', 12))
root.mainloop()
```
上述代码中,我们使用ttk.Style()创建了一个样式对象,并使用configure()方法将TButton控件的字体设置为Helvetica 12号。
相关问题
def show_excel(self): style = ttk.Style() style.configure("MyTreeview1.Treeview", rowheight=25, borderwidth=2, relief="solid", font=('Arial', 10)) style.configure("MyTreeview1.Treeview.Heading", font=('Arial', 10, 'bold')) style.layout("MyTreeview1.Treeview", [('MyTreeview1.Treeview.treearea', {'sticky': 'nswe'})]) # 创建表格用于显示第一个工作表 columns1 = next(self.record_sheet.iter_rows(min_row=1, max_row=1, values_only=True)) treeview1 = ttk.Treeview(self.container1, columns=columns1, show="headings", style="MyTreeview1.Treeview") treeview1.grid(row=1, column=3, rowspan=1, padx=5, pady=5, sticky="nsew") treeview1.config(height=10) # 设置表格列的标题和宽度 for col in columns1: treeview1.heading(col, text=col) treeview1.column(col, width=80, anchor="center") # 显示第一个工作表的内容 for row in self.record_sheet.iter_rows(min_row=2, values_only=True): row_values = [str(cell) if cell is not None else "" for cell in row] if all(not bool(cell) for cell in row_values): continue treeview1.insert("", tk.END, values=row_values) # 创建表格用于显示第二个工作表 columns2 = next(self.data_sheet.iter_rows(min_row=1, max_row=1, values_only=True)) treeview2 = ttk.Treeview(self.container1, columns=columns2, show="headings", style="MyTreeview1.Treeview") treeview2.grid(row=5, column=3, rowspan=1, padx=5, pady=5, sticky="nsew") treeview2.config(height=10) # 设置表格列的标题和宽度 for col in columns2: treeview2.heading(col, text=col) treeview2.column(col, width=80, anchor="center") # 显示第二个工作表的内容 for row in self.data_sheet.iter_rows(min_row=2, values_only=True): row_values = [str(cell) if cell is not None else "" for cell in row] if all(not bool(cell) for cell in row_values): continue treeview2.insert("", tk.END, values=row_values) # 创建滚动条 vsb1 = ttk.Scrollbar(self.container1, orient="vertical", command=treeview1.yview) vsb2 = ttk.Scrollbar(self.container1, orient="vertical", command=treeview2.yview) hsb1 = ttk.Scrollbar(self.container1, orient="horizontal", command=treeview1.xview) hsb2 = ttk.Scrollbar(self.container1, orient="horizontal", command=treeview2.xview) # 将滚动条添加到窗口中 vsb1.grid(row=1, column=4, sticky="ns") vsb2.grid(row=5, column=4, sticky="ns") hsb1.grid(row=2, column=3, sticky="ew") hsb2.grid(row=4, column=3, sticky="ew") # 将表格的 yscrollcommand 和 xscrollcommand 属性设置为对应的滚动条对象的 set 方法 treeview1.config(yscrollcommand=vsb1.set, xscrollcommand=hsb1.set) treeview2.config(yscrollcommand=vsb2.set, xscrollcommand=hsb2.set)
这段代码是用于在 tkinter 界面中显示 Excel 表格的,通过使用 ttk.Treeview 组件来展示表格数据,并使用 ttk.Scrollbar 组件来实现滚动条的功能。其中,第一个工作表的数据会显示在界面的第一行,第二个工作表的数据会显示在界面的第五行。还有一些设置表格列标题、宽度等的操作。
# 添加工作表按钮 for i, sheet_name in enumerate(self.sheet_names): button = tk.Button(self.panel_left, text=sheet_name, command=lambda name=sheet_name: self.show_sheet(name), bg='#D3D3D3', fg='black', font=('Arial', 10, 'bold')) button.used = False button.grid(row=i, column=0, sticky="ew", padx=2, pady=2) button.bind("<Enter>", lambda event, button=button: button.config(relief="sunken")) button.bind("<Leave>", lambda event, button=button: button.config(relief="raised")) button.bind("<Button-1>", lambda event, button=button: mark_used(button))將這段代碼中視覺效果和顔色設置成跟這個代碼一致style = ttk.Style() style.configure('my.TButton', font=('Arial', 10)) style.map('my.TButton', background=[('active', 'blue')]) button = ttk.Button(root, text="保存", style='my.TButton', command=lambda: print("保存")) button.pack(side=tk.LEFT, padx=5, pady=5)
以下是修改后的代码,将按钮的视觉效果和颜色设置成与提供的代码一致:
```
style = ttk.Style()
style.configure('my.TButton', font=('Arial', 10))
style.map('my.TButton', background=[('active', '#007FFF')])
for i, sheet_name in enumerate(self.sheet_names):
button = ttk.Button(self.panel_left, text=sheet_name, command=lambda name=sheet_name: self.show_sheet(name), style='my.TButton')
button.used = False
button.grid(row=i, column=0, sticky="ew", padx=2, pady=2)
button.bind("<Enter>", lambda event, button=button: button.config(relief="sunken"))
button.bind("<Leave>", lambda event, button=button: button.config(relief="raised"))
button.bind("<Button-1>", lambda event, button=button: mark_used(button))
```
阅读全文