-
2021-09-20 09:52:38
写了个脚本,想要把脚本做成图形化界面,在获取Entry的数值时遇到了问题,发现获取的数值没办法调用,请大佬们看一下
import tkinter as tk root = tk.Tk() root.title('爬虫脚本') root.geometry('600x400+400+200') lb1 = tk.Label(root, text="请输入起始页", font=("华文行楷", 15), fg="green") lb1.place(relx=0.1, rely=0.1, relwidth=0.3, relheight=0.1) lb2 = tk.Label(root, text="请输入终止页", font=("华文行楷", 15), fg="green") lb2.place(relx=0.1, rely=0.3, relwidth=0.3, relheight=0.1) min_num = tk.IntVar() max_num = tk.IntVar() inp1 = tk.Entry(root, textvariable=min_num) inp1.place(relx=0.4, rely=0.1, relwidth=0.3, relheight=0.1) inp2 = tk.Entry(root, textvariable=max_num) inp2.place(relx=0.4, rely=0.3, relwidth=0.3, relheight=0.1) min_num = inp1.get() max_num = inp2.get() # print(type(min_num)) a = int(min_num) b = int(max_num) def zhixing(): for i in range(a, b): print(i) pass pass btn1 = tk.Button(root, text='执行', command=zhixing) btn1.place(relx=0.3, rely=0.45, relwidth=0.3, relheight=0.1) root.mainloop()
点击执行,没有办法输出任何值,这个测试代码是为了测试一下怎么调用entry输入的值的
更多相关内容 -
tkinter应知应会(四):Entry控件,获取用户输入
2020-10-19 14:13:48<开篇吐槽> GUI编程的麻烦,不是tkinter独有...本节要介绍的,是Entry控件,它的主要作用就是获取用户的输入。以下的代码,我们会简单涉及到窗口的大小的设定。 # 准备好所需的控件 import tkinter as tk # 换一<开篇吐槽>
GUI编程的麻烦,不是tkinter独有的。计算机语言的特性是“精确”,而要将用户交互界面信息描述准确,是需要许多“废话”的。
在以后的学习中,我们会遇到拖拽式的开发工具,帮我们更有效地进行GUI开发。不过在这之前,我们还是要把基本功练好,理解各个控件的特性和作用。
<聊个正题>
1,
本节要介绍的,是Entry控件,它的主要作用就是获取用户的输入。以下的代码,我们会简单涉及到窗口的大小的设定。# 准备好所需的控件 import tkinter as tk # 换一种方式导入tk font = ('微软雅黑', 12) root = tk.Tk() root.geometry('250x150') # 设定窗口的大小 label = tk.Label(root,text='请输入姓名',font=font,height=2) label.pack() entry = tk.Entry(root,font=font) entry.pack() button = tk.Button(root,text='测试',font=font) button.pack() root.mainloop()
2,
以上,光是把控件位置准备好,就已经不少代码了,而且还特别丑。接下来我们要上一个功能:
01,获取用户输入的信息,并在控制台打印出来;
02,设置一个清空按钮,可以清空Entry里的信息# 准备好所需的控件 import tkinter as tk # 换一种方式导入tk def getEntry(): string = entry.get() # 获取Entry的内容 print(string) def clear(): entry.delete(0,'end') # 删除清空Entry控件的内容 font = ('微软雅黑', 12) root = tk.Tk() root.geometry('250x150') # 设定窗口的大小 label = tk.Label(root,text='请输入姓名',font=font,height=2) label.pack() entry = tk.Entry(root,font=font) entry.pack() button01 = tk.Button(root,text='获取信息',font=font,command=getEntry) button01.pack() button02 = tk.Button(root,text='清空',font=font, command=clear) button02.pack() root.mainloop()
-
[译][Tkinter 教程07] Entry 控件
2020-12-20 21:36:47原系列地址: Python Tkinter简介Entry 是 Tkinter 用来接收字符串等输入的控件. 该控件允许用户输入一行文字. 如果用户输入的文字长度长于 Entry 控件的宽度时, 文字会向后滚动. 这种情况下所输入的字符串无法全部...已获原作者授权. 原系列地址: Python Tkinter
简介
Entry 是 Tkinter 用来接收字符串等输入的控件. 该控件允许用户输入一行文字. 如果用户输入的文字长度长于 Entry 控件的宽度时, 文字会向后滚动. 这种情况下所输入的字符串无法全部显示. 点击箭头符号可以将不可见的文字部分移入可见区域. 如果你想要输入多行文本, 就需要使用 Text 控件. Entry 控件只能使用预设字体.
使用 Entry 控件的语法如下:
w = Entry(master, option, ...)
master 参数为其父控件, 就是用来放置这个 Entry 的控件. 像其他控件一样, 我们可以在创建 Entry 控件之后再为其指定属性. 因此创建方法中的 options 选项可以为空.
下例为一个显示了两个 Entry 控件的应用. 一个用来输入姓氏, 一个用来输入名字. 我们用不带参数的构造方法创建 Entry.
from tkinter import *
master = Tk()
Label(master, text="First Name").grid(row=0)
Label(master, text="Last Name").grid(row=1)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
mainloop( )
上面代码运行后生成如下窗口:
现在我们已经创建了两个 Entry, 用户可以在这个应用中输入数据. 但我们的程序如何得到这些数据呢?
方法很简单, 调用 Entry 类的 get() 方法即可. 我们改进了上面的程序, 添加了 "退出" 和 "显示" 两个按钮. 在 "显示" 按钮上, 我们绑定了 show_entry_fields() 函数, 该函数会调用 Entry 类的 get() 方法. 这样每次 "显示" 按钮被点击, Entry 控件的内容就会打印在终端里.
from tkinter import *
def show_entry_fields():
print("First Name: %s\nLast Name: %s" % (e1.get(), e2.get()))
master = Tk()
Label(master, text="First Name").grid(row=0)
Label(master, text="Last Name").grid(row=1)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Show', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)
mainloop( )
上面的代码运行后显示下面的窗口:
现在我们希望在 Entry 控件上显示默认值. 比如, 我们希望姓氏输入框的默认值为 "Miller", 名字输入框的默认值为 "Jill". 我们只需要在 Entry 控件创建后加入如下两行代码:
e1.insert(10,"Miller")
e2.insert(10,"Jill")
如果要在每次点击 "显示" 按钮输出内容后, 将 Entry 的显示内容清空呢? 没问题! 我们可以使用 Entry 类的 delete() 方法. 该方法的调用方式为 delete(first, last = None), 两个参数都是整型. 如果只传入一个参数, 则会删除这个数字指定位置 (index) 上的字符. 如果传入两个参数, 则表示删除从 "first" 到 "last" 指定范围内的字符. 使用 delete(0, END) 可以删除 Entry 控件已输入的全部字符.
from tkinter import *
def show_entry_fields():
print("First Name: %s\nLast Name: %s" % (e1.get(), e2.get()))
e1.delete(0,END)
e2.delete(0,END)
master = Tk()
Label(master, text="First Name").grid(row=0)
Label(master, text="Last Name").grid(row=1)
e1 = Entry(master)
e2 = Entry(master)
e1.insert(10,"Miller")
e2.insert(10,"Jill")
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Show', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)
mainloop( )
下个例子中, 我们用更优雅的方式为多个字段创建了多个 Entry 控件. 我们用一个 list 来存储每个 Entry 的描述字符串, 这些字符串用 Label 来显示.
#!/usr/bin/python3
from tkinter import *
fields = 'Last Name', 'First Name', 'Job', 'Country'
def fetch(entries):
for entry in entries:
field = entry[0]
text = entry[1].get()
print('%s: "%s"' % (field, text))
def makeform(root, fields):
entries = []
for field in fields:
row = Frame(root)
lab = Label(row, width=15, text=field, anchor='w')
ent = Entry(row)
row.pack(side=TOP, fill=X, padx=5, pady=5)
lab.pack(side=LEFT)
ent.pack(side=RIGHT, expand=YES, fill=X)
entries.append((field, ent))
return entries
if __name__ == '__main__':
root = Tk()
ents = makeform(root, fields)
root.bind('', (lambda event, e=ents: fetch(e)))
b1 = Button(root, text='Show',
command=(lambda e=ents: fetch(e)))
b1.pack(side=LEFT, padx=5, pady=5)
b2 = Button(root, text='Quit', command=root.quit)
b2.pack(side=LEFT, padx=5, pady=5)
root.mainloop()
上面的代码运行后产生如下窗口:
简易计算器
我们并非要写一个功能全面的计算器, 我们要用 Entry 接受一个数学表达式并计算它, 并打印计算结果.
from Tkinter import *
from math import *
def evaluate(event):
res.configure(text = "Ergebnis: " + str(eval(entry.get())))
w = Tk()
Label(w, text="Your Expression:").pack()
entry = Entry(w)
entry.bind("", evaluate)
entry.pack()
res = Label(w)
res.pack()
w.mainloop()
我们的计算器显示如下:
利率计算器
下面的公式可以用来计算余额: 给定本金 B0, 期利率 r, 在 k 期结算后的余额 Bk:
其中:
rate = 百分比表示的利率, 比如 3%
i = rate / 100, 以小数表示的年利率
r = 期利率 = i / 12
B0 = 初始余额, 即本金
Bk = k 期后的余额
k = 期数 (月数)
p = 每月利息
如果要每月结息, 我们就要计算每月应付利息. 我们将公式中的 Bn 设为 0, 得到以下公式:
其中:
n = 总期数 (总月数)
#!/usr/bin/python3
from tkinter import *
fields = ('Annual Rate', 'Number of Payments', 'Loan Principle', 'Monthly Payment', 'Remaining Loan')
def monthly_payment(entries):
# period rate:
r = (float(entries['Annual Rate'].get()) / 100) / 12
print("r", r)
# principal loan:
loan = float(entries['Loan Principle'].get())
n = float(entries['Number of Payments'].get())
remaining_loan = float(entries['Remaining Loan'].get())
q = (1 + r)** n
monthly = r * ( (q * loan - remaining_loan) / ( q - 1 ))
monthly = ("%8.2f" % monthly).strip()
entries['Monthly Payment'].delete(0,END)
entries['Monthly Payment'].insert(0, monthly )
print("Monthly Payment: %f" % float(monthly))
def final_balance(entries):
# period rate:
r = (float(entries['Annual Rate'].get()) / 100) / 12
print("r", r)
# principal loan:
loan = float(entries['Loan Principle'].get())
n = float(entries['Number of Payments'].get())
q = (1 + r)** n
monthly = float(entries['Monthly Payment'].get())
q = (1 + r)** n
remaining = q * loan - ( (q - 1) / r) * monthly
remaining = ("%8.2f" % remaining).strip()
entries['Remaining Loan'].delete(0,END)
entries['Remaining Loan'].insert(0, remaining )
print("Remaining Loan: %f" % float(remaining))
def makeform(root, fields):
entries = {}
for field in fields:
row = Frame(root)
lab = Label(row, width=22, text=field+": ", anchor='w')
ent = Entry(row)
ent.insert(0,"0")
row.pack(side=TOP, fill=X, padx=5, pady=5)
lab.pack(side=LEFT)
ent.pack(side=RIGHT, expand=YES, fill=X)
entries[field] = ent
return entries
if __name__ == '__main__':
root = Tk()
ents = makeform(root, fields)
root.bind('', (lambda event, e=ents: fetch(e)))
b1 = Button(root, text='Final Balance',
command=(lambda e=ents: final_balance(e)))
b1.pack(side=LEFT, padx=5, pady=5)
b2 = Button(root, text='Monthly Payment',
command=(lambda e=ents: monthly_payment(e)))
b2.pack(side=LEFT, padx=5, pady=5)
b3 = Button(root, text='Quit', command=root.quit)
b3.pack(side=LEFT, padx=5, pady=5)
root.mainloop()
在 Python3 中, 上面程序显示如下窗口:
译者水平有限, 如有疏漏, 欢迎指正.
-
【python】【tkinter】如何取出entry中的值,在其他类中做进一步运算
2021-08-11 14:35:441、目标 取出class Page中填入entry的值,用于在class Data中做进一步运算 2、前提 保证Page 和 Data 两个类相互独立。因为实际情况中,大量运算集中在Data,并入可能会导致其他问题 3、问题 在上述前提下如何实现。... -
《tkinter实用教程七》tkinter ttk.Entry控件
2021-10-25 13:54:07简单介绍python可视化模块tkinter的 ttk.Entry控件,主要包括控件的创建、值设置、值监控、密码框等功能。tkinter ttk.Entry 输入控件
ttk.Entry
控件为用户展示一个单行的文本输入框,可以输入一个字符串值,比如名字、地址、手机号等等。如何创建一个
ttk.Entry
对象创建输入框对象,需要使用
ttk.Entry
类,代码使用案例如下:from tkinter import * from tkinter import ttk root = Tk() main = ttk.Frame(root) name = ttk.Entry(main,width=12) main.grid() name.grid() root.mainloop()
代码执行结果,如下图所示:
如何设置并获取
ttk.Entry
控件内容和
ttk.Label
控件一样,ttk.Entry
控件可以通过textvariable
参数设置并获取其内容。示例代码如下:
from tkinter import * from tkinter import ttk def click(): btn['text']=namestr.get() root = Tk() main = ttk.Frame(root) namestr = StringVar() namestr.set("小明") # 设置 Entry 控件内容 name = ttk.Entry(main,width=12,textvariable=namestr) l = ttk.Label(main,width=12,textvariable=namestr) btn = ttk.Button(main,text="Get",command=click) main.grid() name.grid(column=0,row=0) l.grid(column=0,row=1) btn.grid(column=0,row=2) root.mainloop()
代码执行结果如下图所示:
修改
ttk.Entry
中的内容,ttk.Label
会同步展示其中的值,点击按钮之后,按钮中的值也变成了ttk.Entry
中的内容。设置并获取
ttk.Entry
值的另一种方式除了以上通过
textvariable
的方式指定和获取ttk.Entry
的值之外,还可以用get()
方法获取内容,使用insert()
和delete()
方法设置内容。示例代码如下:
from tkinter import * from tkinter import ttk def setvar(): name.insert(0,"小明是个好同志") def delvar(): name.delete(0,1) def getvar(): l['text']=name.get() root = Tk() main = ttk.Frame(root) name = ttk.Entry(main,width=12) l = ttk.Label(main,width=12) btn = ttk.Button(main,text="设置内容",command=setvar) btn_del = ttk.Button(main,text="删除内容",command=delvar) btn_get = ttk.Button(main,text="获取内容",command=getvar) main.grid() name.grid(column=0,row=0) l.grid(column=0,row=1) btn.grid(column=0,row=2) btn_del.grid(column=0,row=3) btn_get.grid(column=0,row=4) root.mainloop()
以上代码,创建了一个可以通过点击按钮设置、修改、获取
ttk.Entry
内容的示例。代码执行结果如下图:
ttk.Entry
值监控我们经常在输入内容时验证输入内容是否合法,这就需要监听
ttk.Entry
的读写操作。以下代码,在
ttk.Entry
被写入,被读取的时候都会触发对应的函数,执行响应的操作。from tkinter import * from tkinter import ttk def written(*args): # 变量写入时执行 l['text']="变量被写入" def readed(*args): # 变量读取时执行 l['text']="变量被读取" def read(): username.get() def remove_trace(): username.trace_remove('write',vw) # 删除追踪操作 root = Tk() main = ttk.Frame(root) username = StringVar() name = ttk.Entry(main,width=12,textvariable=username) vw = username.trace_add("write",written) # 追踪变量值的写变化 vr = username.trace_add("read",readed) # 追踪变量值的读变化 l = ttk.Label(main) btnread=ttk.Button(main,text="read var" ,command=read) btn = ttk.Button(main,text="remove trace",command=remove_trace) main.grid() name.grid(column=0,row=0) l.grid(column=0,row=1) btnread.grid(column=0,row=2) btn.grid(column=0,row=3) root.mainloop()
代码执行结果如下图:
把
ttk.Entry
当作密码框使用代码如下:
from tkinter import * from tkinter import ttk root = Tk() main = ttk.Frame(root) password = StringVar() pwd = ttk.Entry(main,textvariable=password,show="*") main.grid() pwd.grid(column=0,row=0) root.mainloop()
执行结果如下:
-
tkinter学习-- 控件entry
2021-01-29 01:48:28Entry控件Python Tkinter 文本框用来让用户输入一行文本字符串。你如果需要输入多行文本,可以使用Text组件。你如果需要显示一行或多行文本且不允许用户修改,你可以使用Label组件。语法语法格式如下:w =Entry... -
Tkinter Entry返回浮点值,与inpu无关
2021-01-13 16:13:36在root = Tk()label1 = Label(root, text ="Enter String:")userInputString = Entry(root)label1.pack()userInputString.pack()submit = Button(root,text = "Submit", command = root.destroy... -
给Entry控件设置默认值
2020-12-04 02:11:03用Python的tkinter库做GUI程序,Entry控件被我们用来获取用户的输入,不过很多时候,我们希望GUI界面上的Entry控件能有默认值,用户可以修改默认值,也可以不修改。默认值提高了软件的易用性。直接看代码:定义addr... -
python获取文本框里输入的值
2020-11-21 02:57:552016年8月7日 - 获取 text每一行值并存入列表中 05-18 阅读数 817 首先importtkinterastkimport...9982 python-tkinter输入框+验证输入内容(六)一、普通输入框fromtki...2018年10月12日 - 回答:en=Entry(……) val=... -
tkinter中entry输入控件(四)
2019-10-03 06:15:43entry控件 1 import tkinter 2 3 wuya = tkinter.Tk() 4 wuya.title("wuya") 5 wuya.geometry("300x200+10+20") 6 7 text2 = tkinter.Variable() 8 pwd = tkinter.Entry(wuya,textvariable=t... -
Xamarin.Forms 用户界面——控件——Text——Entry
2017-08-29 09:18:23条目 PDF用于离线使用 下载PDF 示例代码: ...Entry API ...单行文本或密码输入 ...Xamarin.Forms Entry用于单行文本输入。Entry像编辑器视图一样,支持多种键盘类型。另外,Entry可以用作密码字段。 -
Tkinter如何获取Entry里输入的内容再进行处理
2015-06-10 16:04:55http://tieba.baidu.com/p/2817124558 ... Tkinter import * def a(): print Entry.get() root = Tk() Label(root,text = "Please input a number:").pack(side = LEFT) Entry(root).pack -
Python弹出输入框并获取输入值的实例 Python中如何获取用户输入?
2020-11-26 02:13:28Python中如何获取输入框Entry输入的内容并输出from Tkinter import *var=StringVar()root=Tk()Entry(root,textvariable=var) #设置输入框对应的文本变量为varprint(var.get()) #var.get()获取小编觉得好遗憾,因为... -
tkinter常用控件演示(Entry)
2020-11-28 14:47:39Entry是 tkinter 中比较常用的控件,它通常用来接收字符串的输入,这个控件使得用户可以输入编辑一行文字;如果输入文字过长(超过Entry的可显示宽度),文字便会自动向后滚动,这种情况下没法在一行内预览全部文字... -
python TKinter.Entry获取文本框内容
2020-11-10 12:30:09print(entry1.get()) # 获取文本框的内容打印 #创建窗口 win = tk.Tk() #初始化 #创建单行可输入文本框 entry1 = tk.Entry(win, width=50) # entry1=tkinter.Entry(win,show="*",width=50,bg="red",fg="black") #... -
Python中tkinter的Entry输入框如何不显示用户所输入字符
2022-05-18 08:43:42Python的tkinter库可以说是一个很强大的GUI库。今天要讲的就是tkinter库中的Entry组件。Entry,本意“入口”,即输入框。输入框如何不显示用户输入的字符,相信这是很多人都有的一个问题。 -
【tkinter模块02】输入控件(Entry)
2020-02-17 02:56:58代码: import tkinter win = tkinter.Tk() win.title('敲你吗') ...输入控件,显示简单的文本内容 show:显示什么(密文) ''' entry = tkinter.Entry(win,show='*') entry.pack() # 进入消息循环 win.... -
python中tkinter入门之Checkbutton,Radiobutton和Entry
2020-12-08 16:28:35继续昨天的,Checkbutton和Radiobutton都可以看作是Button的补充,而Entry是tkinter中的输入框。from tkinter import *root = Tk()CheckbuttonCheckbutton控件用于创建复选框c = Checkbuttona = ['按按我','再按按我... -
Xamarin.Form中使用自定义Entry输入框(只有Android)
2021-07-20 09:05:52第一步:在xamarin.form中添加BorderlessEntry类 这个类继承自Xamarin.Forms.Entry来移除Android平台中Entry控件的边界。. using System; using System.Collections.Generic; using System.Text; using Xamarin.... -
python:TKinter获取Text文本框的输入内容(python图形化界面)
2021-01-21 21:53:41#第6步,获取文本框输入 def getTextInput(): result=textExample.get("1.0","end") #获取文本输入框的内容 print(result) #输出结果 #Tkinter 文本框控件中第一个字符的位置是 1.0,可以用数字 1.0 或字符串"1.0"来... -
Python Tkinter Entry和Text控件用法(包含两者区别)
2020-11-29 12:51:17Entry 和 Text 组件都是可接收用户输入的输入框组件,区别是 Entry 是单行输入框组件,Text 是多行输入框组件,而且 Text 可以为不同的部分添加不同的格式,甚至响应事件。不管是 Entry 还是 Text 组件,程序都提供... -
JS 获取input中的值的方式
2022-03-02 10:07:28%tcWebApi_get("String_Entry","ACLFilterWanHttpPortText","s")%></td> <td><input type='text' name="WanHttpPort" id="WanHttpPort" maxlength='31'></td> </tr> var ... -
Python中GUI设计之tkinter控件的使用 (Button按钮、Entry文本框)
2021-05-21 17:43:55show:常用于隐藏显示密码字段,ps:show= ’ * ’ state: NORMAL正常输入,DISABLE表示禁止输入 xscrollcommand:在x轴显示滚动条 包括方法: get() 获取文本框内的字符串内容:ety.get() insert() 插入字符串到... -
tkinter教学(四)文本框Entry
2022-06-03 08:33:21Entry用于单行输入,可以输入一个字符串,并通过后端函数进行调用。在安安教具中,Entry可以通过这个控件实现变量的输入。 参数介绍如下:二.案例代码 三.运行效果 -
Python tkinter - 第六章 输入控件(Entry)&属性
2019-09-07 10:42:29第6章输入控件(Entry) 输入控件(Entry. 是用来输入或者显示单行字符串的控件。该控件允许用户输入或显示一行文字。 如果用户输入的文字长度大于Entry 控件的可显示范围时, 文字会向后滚动。 这种情况下所输入的字符... -
PythonTkinter 练习6之Entry 验证
2020-02-28 23:38:24PythonTkinter 练习之Entry 验证 #Time: 2020/02/28 #Author: Xiaohong ...功能:验证Entry 输入框是否输入在是数字,若不是,不显示 from tkinter import * main=Tk() v1=StringVar() def CheckVa... -
python3 tkinter 获取输入字符串长度
2020-12-07 11:21:08python 3 获取输入字符长度#-*- coding:utf-8 -*-from tkinter import *from tkinter import messageboxdef get_Tk():top = Tk()return top#定义获取字符长度函数def sum_test(baseNum):return len(baseNum)def show... -
Python ---(六)Tkinter窗口组件:Entry
2020-02-03 19:05:41Entry(输入框)组件通常用于获取用户的输入文本。 ##何时使用 Entry 组件? Entry 组件仅允许用于输入一行文本,如果用于输入的字符串长度比该组件可显示空间更长,那内容将被滚动。这意味着该字符串将不能被... -
tkinter -- entry 关于验证的隐藏功能解释
2022-02-24 22:05:43Entry 组件是支持验证输入内容的合法性的,比如要求输入数字,你输入了字母那就是非法。实现该功能,需要通过设置 validate、validatecommand 和 invalidcommand 选项。 首先启用验证的“开关”是 validate 选项,...