python-3.x - 使用第二个按钮 Tkinter 启用按钮
问题描述
我正在打开一个主窗口。在这个我打开一个框架。在这个框架中有 2 个按钮。我想让按钮 1 启用以前禁用的按钮 2。
import tkinter as tk
from tkinter import ttk, StringVar
from tkinter.constants import DISABLED
LARGE_FONT =('Verdana',12)
class Auswertung(tk.Tk):
def __init__(self,*args, **kwargs):
tk.Tk.__init__(self,*args,**kwargs)
container = tk.Frame(self)
container.grid(row=0, column=1, padx=10, pady=10)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (Datenwahl,):
frame = F(container,self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky='nsew')
self.show_frame(Datenwahl)
def show_frame(self,cont):
frame = self.frames [cont]
frame.tkraise()
def enable_button2(self):
self.button2["State"]= "NORMAL"
class Datenwahl(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent,)
label=tk.Label(self, text='Start Page', font=LARGE_FONT)
label.grid(row=0, column=1, padx=10, pady=10 ,sticky= 'ew')
button1 = tk.Button(self, text= 'Visit Page 1',
command= lambda : controller.enable_button2)
button1.grid(row=1, column=1, padx=10, pady=10)
button2 = tk.Button(self, text= 'Visit Page 2', state=DISABLED,
command= lambda : controller.show_frame(PageTwo))
button2.grid(row=2, column=1, padx=10, pady=10)
app = Auswertung()
app.mainloop()
代码应该在按下 Button1 的那一刻启用 button2,但它什么也没发生。
我试图切换 self.Button 或类似的东西,但我无法让它像预期的那样工作。
网络上的大多数答案都没有 tkinter 的 Class 方法,我无法将我找到的解决方案适应我的框架。
解决方案
推荐阅读
- asynchronous - 从管道读取 Rust 异步(?)标准输入
- r - 多个电抗滤波器 RShiny
- solidity - Solidity: What does the caret ^ operator do?
- r - Conditional assignment of value - is ifelse() the best when condition and intended return value don't have same features? [R]
- bash - How to update certain positions of a text line (substring in Bash)
- angular - 表单反应返回空
- c# - 带有服务帐户(不是用户帐户)的 SQL Server 集成安全性
- python - how to get a numerical result for exp sympy python
- swift - 无法从 GitLab 访问我的 Swift 包
- amazon-web-services - 从现有安装的 AWS ALB 入口控制器 (v1) 迁移到新的 AWS 负载均衡器控制器 (v2) 的问题