【问题标题】:Unwanted brackets {} in tkinter GUItkinter GUI 中不需要的括号 {}
【发布时间】:2017-05-24 02:23:41
【问题描述】:

代码是

from tkinter import * # Import tkinter

class ChangeLabel:

    def __init__(self):

        window = Tk() # Create a window 
        window.title("Change Label Demo") # Set a title

        # Add a label to frame1
        frame1 = Frame(window) # Create and add a frame to window 
        frame1.pack()        
        self.lbl = Label(frame1, text = "No distance entered yet")
        self.lbl.pack()

        # Add a label, an entry, and a button to frame2
        frame2 = Frame(window) # Create and add a frame to window 
        frame2.pack()
        label = Label(frame2, text = "Enter a distance in kilometres:")
        self.msg = StringVar()
        entry = Entry(frame2, textvariable = self.msg) # Create entry
        btChangeText = Button(frame2, text = "Convert", 
            command = self.processButton) # Button callback method

        label.grid(row = 1, column = 1)
        entry.grid(row = 1, column = 2)
        btChangeText.grid(row = 1, column = 3)

        window.mainloop() # Create an event loop


    def processButton(self):
        calc = float(self.msg.get()) * 0.6214

        self.lbl["text"] = self.msg.get(), "Kilometres is", "%.2f" %calc, "miles"

ChangeLabel() # Create GUI 

当你输入一个数字时,输出会显示

"20 {kilometres is} 12.43 miles"

如何移除 {}?

【问题讨论】:

    标签: python python-3.x tkinter


    【解决方案1】:

    改为使用str.format 方法创建字符串。由于逗号,您当前创建的是tuple

    self.lbl["text"] = '{} Kilometres is {:.2f} miles'.format(self.msg.get(), calc)
    

    它发生的原因是因为这就是小部件呈现元组的方式。详情请见here

    【讨论】:

      【解决方案2】:

      标签的 'text' 属性必须是一个字符串,这就是在 "kilometres is" 周围有 {} 的原因,因为它在该项目列表中包含一个空格。您可以使用" ".join(...) 转换该项目列表,将self.lbl["text"] 更改为:

      self.lbl["text"] = " ".join((self.msg.get(), "Kilometres is", "%.2f" %calc, "miles"))
      

      【讨论】:

        猜你喜欢
        • 2014-08-09
        • 2012-04-02
        • 1970-01-01
        • 1970-01-01
        • 2021-09-22
        • 2011-10-12
        • 2019-10-27
        • 2020-11-04
        • 2023-01-11
        相关资源
        最近更新 更多