创建样式 style = ttk.Style() style.configure('my.TButton', font=('Arial', 10)) # 设置鼠标悬停时的颜色 style.map('my.TButton', background=[('active', 'blue')]) self.button = tk.Button(input_frame, text="保存", style='my.TButton', command=self.save_to_excel).pack(side=tk.LEFT, padx=5, pady=5)報這個self.tk.call( _tkinter.TclError: unknown option "-style"怎麽修改
时间: 2023-12-08 13:05:41 浏览: 176
这个错误可能是因为您正在使用的 Tkinter 版本不支持 ttk 样式。您可以尝试在创建窗口时导入 ttk 并使用 ttk.Button 代替 tk.Button,这样就可以使用 ttk 样式了。以下是一个示例代码:
```
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
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)
root.mainloop()
```
如果您仍然想使用 tk.Button 并且使用 ttk 样式,您可以尝试安装更新的 Tkinter 版本或升级您的 Python 版本。
相关问题
# 创建工具栏 toolbar = tk.Frame(master, height=30) # 创建样式 style = ttk.Style() style.configure('my.TButton', font=('Arial', 10)) # 设置鼠标悬停时的颜色 style.map('my.TButton', background=[('active', 'blue')]) # 添加按钮 ttk.Button(toolbar, text="查詢", style='my.TButton', command=lambda: QueryWindow(tk.Toplevel(root))).pack( side=tk.LEFT, padx=2, pady=2) ttk.Button(toolbar, text="關閉", style='my.TButton', command=self.quit_app).pack(side=tk.LEFT, padx=2, pady=2) # 显示工具栏 toolbar.pack(side=tk.TOP, fill=tk.X)將這段代碼中兩個按鈕放到中間
以下是将两个按钮放置在工具栏中间的代码:
```
# 创建工具栏
toolbar = tk.Frame(master, height=30)
# 创建样式
style = ttk.Style()
style.configure('my.TButton', font=('Arial', 10))
# 设置鼠标悬停时的颜色
style.map('my.TButton', background=[('active', 'blue')])
# 添加“查询”按钮
ttk.Button(toolbar, text="查詢", style='my.TButton', command=lambda: QueryWindow(tk.Toplevel(root))).pack(side=tk.LEFT, padx=2, pady=2)
# 添加占位的 Label
tk.Label(toolbar).pack(side=tk.LEFT, fill=tk.X, expand=True)
# 添加“关闭”按钮
ttk.Button(toolbar, text="關閉", style='my.TButton', command=self.quit_app).pack(side=tk.LEFT, padx=2, pady=2)
# 显示工具栏
toolbar.pack(side=tk.TOP, fill=tk.X)
```
我们添加了一个占位的 Label,使得两个按钮被推到了工具栏的中间位置。
class ExcelApp: def __init__(self, master): self.master = master master.title("Excel App") # 获取屏幕的宽度和高度 screen_width = master.winfo_screenwidth() screen_height = master.winfo_screenheight() # 将窗口的大小设置为屏幕的大小 master.geometry("%dx%d" % (screen_width, screen_height)) master.state('zoomed')#窗口最大化# 创建工具栏 toolbar = tk.Frame(master, height=30) # 创建样式 style = ttk.Style() style.configure('my.TButton', font=('Arial', 10)) # 设置鼠标悬停时的颜色 style.map('my.TButton', background=[('active', 'blue')]) # 添加“查询”按钮 ttk.Button(toolbar, text="查詢", style='my.TButton', command=lambda: QueryWindow(tk.Toplevel(root))).pack( side=tk.LEFT, padx=2, pady=2) # 添加占位的 Label tk.Label(toolbar).pack(side=tk.LEFT, fill=tk.X, expand=True) # 添加“关闭”按钮 ttk.Button(toolbar, text="關閉", style='my.TButton', command=self.quit_app).pack(side=tk.LEFT, padx=2, pady=2) # 显示工具栏 toolbar.pack(side=tk.TOP, fill=tk.X)在這個代碼中添加自動獲取本機IP地址和賬號名稱顯示在工具欄中
您可以使用socket模块来获取本机IP地址,使用getpass模块来获取当前用户的用户名。在代码中添加以下行:
```
import socket
import getpass
# 获取本机IP地址
ip_address = socket.gethostbyname(socket.gethostname())
# 获取当前用户的用户名
username = getpass.getuser()
# 在工具栏中显示IP地址和用户名
tk.Label(toolbar, text=f"IP地址:{ip_address} 用户名:{username}").pack(side=tk.LEFT, padx=2, pady=2)
```
这样就可以在工具栏中显示本机IP地址和用户名了。
阅读全文