tkinter.Button点一下"sunken"再点一下"raised"的示例
时间: 2023-10-21 07:12:39 浏览: 130
好的,以下是一个示例代码,点击按钮可以切换sunken和raised状态:
```python
import tkinter as tk
class App:
def __init__(self, master):
self.master = master
self.button = tk.Button(self.master, text="Click me", command=self.toggle)
self.button.pack()
def toggle(self):
if self.button['relief'] == 'sunken':
self.button.config(relief='raised')
else:
self.button.config(relief='sunken')
root = tk.Tk()
app = App(root)
root.mainloop()
```
这里我们创建了一个名为`App`的类,它包含一个按钮`button`,初始状态为`raised`。当用户点击按钮时,会调用`toggle`方法,该方法会检查当前按钮的状态,如果是`sunken`则将其设置为`raised`,否则设置为`sunken`。注意,我们可以通过`config`方法设置按钮的`relief`属性来改变按钮的状态。
相关问题
python的tkinter库的button的相关用法
好的,我可以为您解答关于python的tkinter库的button的相关用法的问题。
在Tkinter中,Button是一个用于响应点击事件的小部件,您可以使用它来添加交互性和动作到您的GUI应用程序。
下面是一些常用的Button方法和属性:
- Button():用于创建一个Button部件。
- text:按钮上的文本标签。
- command:指定按钮被点击时执行的函数。
- width 和 height:按钮的宽度和高度。
- bg 和 fg:按钮的背景色和前景色。
- padx 和 pady:按钮文本和按钮边框之间的水平和垂直空间。
- relief:按钮边框的样式,如FLAT、RAISED、SUNKEN等。
下面是一个简单的Button示例:
```python
import tkinter as tk
def button_click():
print("Hello World!")
root = tk.Tk()
button = tk.Button(root, text="Click Me", command=button_click)
button.pack()
root.mainloop()
```
在上面的示例中,我们创建了一个Button部件,并将其放置在窗口上。当用户单击按钮时,`button_click()`函数将被调用,并在控制台上打印“Hello World!”消息。
希望这个回答能帮助到您。
ef load_excel(self, filename,menu_label): self.la=menu_label self.workbook = xl.load_workbook(filename) self.sheet_names = self.workbook.sheetnames # 清空左侧面板 for widget in self.panel_left.winfo_children(): widget.destroy() # 添加工作表按钮 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)) # 添加一个标记,表示该按钮未被使用 button.used = False button.grid(row=i, column=0, sticky="ew", padx=1, pady=1) # 绑定按钮的点击事件 button.bind("<Button-1>", lambda event, button=button: mark_used(button)) def mark_used(button): # 将按钮的标记设置为“已使用” button.used = True # 更改按钮的背景颜色 button.configure(bg="gray") for child in self.panel_left.winfo_children(): # 绑定按钮的点击事件 child.bind("<Button-1>", lambda event, button=child: mark_used(button))在這段代碼中添加在用戶移動鼠標到按鈕上時按鈕有視覺感應
如果您想让按钮在鼠标移动到上面时产生视觉感应,可以使用Tkinter内置的Button组件的relief属性,将按钮的样式设置为“raised”或者“sunken”,然后使用bind方法绑定鼠标事件,当鼠标移动到按钮上时,改变按钮的relief属性,使其产生视觉感应。下面是示例代码:
```
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))
button.used = False
button.grid(row=i, column=0, sticky="ew", padx=1, pady=1)
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))
```
在这段代码中,我们使用bind方法绑定了三个事件,分别是鼠标进入按钮区域、鼠标离开按钮区域和鼠标左键点击按钮。当鼠标进入按钮区域时,将按钮的relief属性设置为“sunken”,使其呈现凹陷的效果;当鼠标离开按钮区域时,将按钮的relief属性设置为“raised”,使其恢复原来的样式。这样就实现了按钮在鼠标移动到上面时产生视觉感应的效果。
阅读全文