【问题标题】:Is using if statements possible with Tkinter Buttons是否可以通过 Tkinter 按钮使用 if 语句
【发布时间】:2018-09-25 01:29:12
【问题描述】:

我想发生的是,当我按下另一个按钮时,第一个标签被破坏,只有相应的标签在 GUI 上。有没有办法将 If 语句合并到这个中,或者我应该以另一种方式处理它?

from tkinter import *

root = Tk()
root.geometry("250x50")
def func1():
    label = Label(root, text = 'Hello', fg="White", bg="Orange" )
    label.pack(fill=BOTH, expand=True)
def func2():
    label = Label(root, text = 'Goodbye', fg="White", bg="Orange" )
    label.pack(fill=BOTH, expand=True)

button1 = Button(root, text = "Button 1", command = func1, fg="White", 
bg="Black", width=10, height=5)
button1.pack(side=LEFT)
button2 = Button(root, text = "Button 2", command = func2, fg="White", 
bg="Black", width=10, height=5)
button2.pack(side=LEFT)
root.mainloop()

【问题讨论】:

  • 在开始时创建一个标签可能会更容易,并让您的两个按钮设置其文本属性。
  • tkinter 运行的命令与 python 中的任何其他命令没有什么不同。他们当然可以使用if 语句。

标签: python if-statement tkinter


【解决方案1】:

这是@jasonsharper 提出的方法:在开始时创建一个标签确实更容易,然后使用两个按钮设置其文本和其他属性。

import tkinter as tk


if __name__ == '__main__':
    root = tk.Tk()
    root.geometry("250x50")

    def set_label(txt):
        label['text'] = txt
        label['fg'] = "White"
        label['bg'] = "Orange"

    button1 = tk.Button(root, text = "Button 1", command = lambda x='hello': set_label(x), fg="White", bg="Black", width=10, height=5)
    button1.pack(side=tk.LEFT)

    button2 = tk.Button(root, text = "Button 2", command = lambda x='bye': set_label(x), fg="White", bg="Black", width=10, height=5)
    button2.pack(side=tk.LEFT)

    label = tk.Label(root, text='')
    label.pack(fill=tk.BOTH, expand=True)

    root.mainloop()

注意:

请避免使用import * --> 为保持命名空间干净,请使用import tkinter as tk

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 2022-01-24
    相关资源
    最近更新 更多