python - 如何在输入 GUI 中获取浮点数
问题描述
我是 python 新手,试图制作一个简单的转换器应用程序,但我的问题是我不知道如何解决 km 到 m 的问题。如果我弄清楚这一点,我可以弄清楚其余的。提前致谢!这是我的代码
import tkinter from tkinter import ttk
window=tkinter.Tk()
window.title("Conversion Unit")
labelOne=ttk.Label(window, text='Enter Value')
labelOne.grid(row=0, column=0)
to_be_converted=ttk.Combobox(
values=('mm', 'cm', 'inches', 'feet', 'yards', 'meter', 'km', 'miles'),
width=10
).grid(row=0, column=2)
labelTwo=ttk.Label(window, text="Equivalent to")
labelTwo.grid(row=1, column=1)
converted=ttk.Combobox(
values=('mm', 'cm', 'inches', 'feet', 'yards', 'meter', 'km', 'miles'),
width=10
).grid(row=1, column=2)
userName=tkinter.DoubleVar()
userEntry=ttk.Entry(window, width=5, textvariable=userName)
userEntry.grid(row=0, column=1)
def convert():
if to_be_converted.get=='km' and converted.get=='m':
labelTwo.configure(text='Value is equivalent to:' + userName.get() * 1000)
btn=ttk.Button(window, text='Convert!', command=convert)
btn.grid(row=0, column=4)
window.mainloop()
解决方案
这是一个工作版本,有一些变化:
import tkinter
from tkinter import ttk
UNITS = ('mm', 'cm', 'inches','feet', 'yards', 'meter', 'km', 'miles')
window = tkinter.Tk()
window.title("Conversion Unit")
labelOne = ttk.Label(window,text='Enter Value')
labelOne.grid(row=0,column=0)
to_be_converted = ttk.Combobox(values=UNITS, width=10)
to_be_converted.grid(row=0, column=2)
labelTwo = ttk.Label(window, text="Equivalent to")
labelTwo.grid(row=1,column=1)
converted = ttk.Combobox(values=UNITS, width=10)
converted.grid(row=1, column=2)
userName = tkinter.DoubleVar()
userEntry = ttk.Entry(window, width=5, textvariable = userName)
userEntry.grid(row=0, column=1)
def convert():
if to_be_converted.get() == 'km' and converted.get() == 'meter':
labelTwo.configure(text='Value is equivalent to:' + str(userName.get()*1000))
btn = ttk.Button(window, text='Convert!', command=convert)
btn.grid(row=0, column=4)
window.mainloop()
.grid() 返回无
所以这一行:
to_be_converted = ttk.Combobox(values=UNITS, width=10).grid(row=0, column=2 )
必须:
to_be_converted = ttk.Combobox(values=UNITS, width=10)
to_be_converted.grid(row=0, column=2)
(与 相同converted
)
.get
是绑定方法,而不是属性
所以这一行:
if to_be_converted.get == 'km' and converted.get == 'meter':
必须:
if to_be_converted.get() == 'km' and converted.get() == 'meter':
(并且'm'必须替换为'meter' - 或者UNITS
必须有'm',而不是'meter')。
无法将字符串与浮点数连接
所以这一行:
labelTwo.configure(text='Value is equivalent to:' + userName.get()*1000)
必须是,例如:
labelTwo.configure(text='Value is equivalent to:' + str(userName.get()*1000))
推荐阅读
- python - 如何从每列中包含字典或列表的数据框中获取信息?
- mysql - 如何对两个表的值求和并按日期分组
- javascript - 如何使用 JSX 突出显示字符串中的匹配项?
- jenkins - Jenkins Blue Ocean 为 Subversion SCM 步骤提供凭证
- javascript - 在不使用禁用属性的情况下禁用按钮 onclick
- xcode - 应用程序的 Info.plist 中没有任何“CFBundleIcons”条目。那么如何解决这个 RIDICULOUS 错误???:错误 ITMS-90032:“无效的图像路径”
- django - django 中的自定义 404 和 500 页面 -> DEBUG = True
- algorithm - 如何增加此 PRNG 的周期?
- composer-php - 为什么composer的autoload.php中有返回值?
- css - Sass 高级嵌套:向上应用一个伪选择器