python - Tkinter:如何使用按钮切换标签文本
问题描述
import Tkinter
from Tkinter import ttk
root = tk()
root.mainloop()
label = ttk.Label(root, text = "This text I want to change")
label.grid()
def select_label_text():
top = Toplevel()
top.title("Select Name")
def change_name(name):
label.cofigure(text=name)
top.destroy()
label_names = [a,b,c...] #this has undefined strings
for i in range(len(label_names)): #here I made a button for each different name
ttk.button(top, text = label_names[i], command = lambda: change_name(label_names[i])).grid()
当我按下它时,我想将标签文本更改为按钮的名称。有未定义的按钮,所以我无法将每个按钮保存到变量中。
ttk.Button(root, comand = select_label_text()).grid()
解决方案
你有很多错误。这是您的代码的一个版本,用于 Python 3,而不是 Python 2,至少可以运行。它可能不会完全按照您想要的方式执行,但它确实有效,而且它是比您发布的更好的起点。修改后的代码如下:
import tkinter # Tkinter
from tkinter import ttk
def select_label_text():
top = tkinter.Toplevel()
top.title("Select Name")
def change_name(name):
label.configure(text=name)
top.destroy()
label_names = ["a", "b", "c..."] #this has undefined strings
for i in range(len(label_names)): #here I made a button for each different name
ttk.Button(top, text=label_names[i], command=lambda i=i: change_name(label_names[i])).grid()
root = tkinter.Tk()
label = ttk.Label(root, text = "This text I want to change")
label.grid()
ttk.Button(root, command=select_label_text).grid()
root.mainloop()
您应该在您的代码和此版本之间进行差异比较以查看更改。
推荐阅读
- rest - 版本方法的 O365 REST API 错误响应
- c++ - 如何在 C++ 中修复 SFML“无法加载图像”?(垃圾字符)(解决)
- python - 在 numpy 矩阵上应用自定义函数
- java - 如何使用 GridBagLayout 在 Java Swing 中“模拟”一个 12 列网格
- sql - 如何从选择查询更新表中的列?
- javascript - 循环中的 HTTP 请求
- puppeteer - 如何从 ElementHandle 转到 DOM 元素
- django - 使用带多选的中间表与管理员的 Django M2M 关系问题
- c# - 创建一个名称为目录路径的新文件
- rest - Rest 或 RestQL 或 Falcor 或 GraphQl