繁体   English   中英

如何使用 tkinter python 的条目值

[英]How to use Entry values for tkinter python

我正在自学 python,目前处于初学者水平。 我对 tkinter 模块有点麻烦,而且我对功能的想法也不是很清楚。

我正在尝试使用 tkinter 创建一个复利计算器。 这是我的代码:

from tkinter import *

win = Tk()
    
L1 = Label(win, text = 'Principle amount:').pack()
L2 = Label(win, text = 'Interest rate:').grid(row = 1, column = 0).pack()
L3 = Label(win, text = 'Total time in years:').grid(row = 2, column = 0).pack()
L4 = Label(win, text = 'No of times the compound interest has to be applied per year:').grid(row = 3, column = 0).pack()
E1 = Entry(win).pack()
E2 = Entry(win).pack()
E3 = Entry(win).pack()
E4 = Entry(win).pack()
Res = Label(win, text = 'Result: ' + str(float(L1.get())*(1+(float(L2.get())/100*float(L3.get()))**(float(L3.get())*float(L4.get())))))

我正在尝试在 Label: "Res" 下执行计算。 我在另一个代码中看到.get() 用于使用条目值进行计算(这是一个涉及计算器的更简单的代码,与此不同)。

但是,它显示以下错误:
_tkinter.TclError:不能在内部使用几何管理器网格。 已经有由包管理的奴隶

我不知道上面的错误语句是什么意思,所以请解释我的代码有什么问题。 任何帮助表示赞赏。

该错误的基本含义是您使用 grid() function 将您的小部件放置在您的 windows 中,该小部件已经使用 pack()

您的 label L1 使用 Pack 而 L2 使用网格。 要消除此错误,您必须对 window 中的所有小部件使用 grid() 或 pack()。

另外,你为什么要做grid().pack()? 这些是以不同方式放置小部件的单独功能。

grid() 用于在网格中布置小部件。 另一个答案说它“覆盖了一个图表”,这有点用词不当。 它不覆盖任何东西,它只是沿行和列边界排列小部件。 它非常适合创建表格和其他结构化类型的布局。

pack() 沿着盒子的侧面布置东西。 它擅长在所有内容都在单行或单列中进行布局(想想工具栏或对话框中的按钮行)。 它对于非常简单的布局也很有用,例如左侧的导航器和右侧的主工作区。 它可以用来创建非常复杂的布局,但是在你完全理解打包算法之前它会变得很棘手。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM