【问题标题】:Problems with creating label in tkinter在 tkinter 中创建标签的问题
【发布时间】:2015-05-30 20:30:52
【问题描述】:

我在 tkinter 中创建了简单的标签,但它是用 {} 创建的,我不想这样做。

gameOver=Label(root, text=('Game over!\nYou scored', number, ' points!'),
                               font=('Arial Black', '26'), bg='red')

这是我的代码,number 是可变的。但它会打印“{游戏结束!你得分} 0 {points!}” 这就是这段代码的结果(0 是number 的值)

欢迎任何解决此问题的想法

【问题讨论】:

    标签: python tkinter label


    【解决方案1】:

    ('Game over!\nYou scored', number, ' points!') 是一个包含三个项目的元组,但 text 可能需要一个字符串,并且对其他类型的参数做了奇怪的事情。使用字符串连接或format 提供单个字符串。

    gameOver=Label(root, text='Game over!\nYou scored' + str(number) + ' points!',
                               font=('Arial Black', '26'), bg='red')
    

    或者

    gameOver=Label(root, text='Game over!\nYou scored {} points!'.format(number),
                               font=('Arial Black', '26'), bg='red')
    

    【讨论】:

    • 我尝试了第一个建议,效果很好。感谢您的帮助。
    • 仅供参考,这里的问题不是您传入了一个元组,而是因为该元组中的字符串有空格。在这种情况下,Tkinter 将各个字符串分组以指示哪个字符串包含该空格。如果你传入一个没有空白的元组,例如text=('few', 'words', 'no', 'spaces'),Tkinter 会自动用元组的每个元素之间的空格填充标签。
    • @Jkdc:比这复杂一点。例如,如果您的数据有一个花括号,您也会得到意想不到的输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    相关资源
    最近更新 更多