【问题标题】:How to print the value of a tkinter Scale widget?如何打印 tkinter Scale 小部件的值?
【发布时间】:2013-12-24 15:53:12
【问题描述】:

有人能告诉我为什么这不会打印值吗?我想在每次更改时打印Scale 小部件的输出。

from tkinter import *

master= Tk()
master.geometry('500x500+0+0')

def print_value(val):
    print val

c1 = Scale(master, from_=255, to=0, length =400,width =100, troughcolor = 'blue',command=print_value)
c1.grid(row=1,column=2)

root.mainloop()

【问题讨论】:

  • 你用的是什么版本? tkinter 在 2.7 中不是有效的模块名称,print val 在 3.X 中不是有效的语法。另外,root 是在哪里定义的?请提供显示您的问题的可运行代码。
  • 今后,请提供所有相关信息,包括准确的错误信息。

标签: python tkinter printing tkinter-scale


【解决方案1】:

如果您使用的是Python 3,那么您应该将print val 更改为print(val),因为在Python3 中print 是一个函数,而不是一个运算符。

此外,您可能应该在最后一行将root 替换为master,因为您的代码中没有root 变量。

【讨论】:

    【解决方案2】:

    你必须改变你的最后一行:

    root.mainloop()
    

    通过

    master.mainloop()
    

    【讨论】:

      【解决方案3】:

      在此代码中使用 Python 2.7 效果很好:

      import Tkinter
      
      master= Tkinter.Tk()
      master.geometry('500x500+0+0')
      
      def print_value(val):
          print val
      
      c1 = Tkinter.Scale(master, from_=255, to=0, length =400,width =100, troughcolor = 'blue',command=print_value)
      c1.grid(row=1,column=2)
      
      master.mainloop()
      

      我这里没有 Python 3,但它应该像这样工作:

      from tkinter import *
      
      master= Tk()
      master.geometry('500x500+0+0')
      
      def print_value(val):
          print (val)
      
      c1 = Scale(master, from_=255, to=0, length =400,width =100, troughcolor = 'blue',command=print_value)
      c1.grid(row=1,column=2)
      
      main.mainloop()
      

      【讨论】:

      • 我使用python 3,它说'无效语法'并在打印后引用var。
      • 在python 3中 print 是一个函数,所以它必须是 print(val)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多